基于单片机的交通模拟控制设计(编辑修改稿)内容摘要:

是一个确定数值,究竟多少为多,多少为少,这就必须设定算法,划定几个值域范围,分别对应到具体的调整时间上,系统就调用具体的输出值了。 子程序模块设计 ( 1)按键扫描程序 首先程序不断扫描模式设置键,分别记为: S 键, J 键, F 键对应I /O端口的P ,低电平有效,按键顺序是指定的,若直接按 F 键,则为自动调整模式,然后进入下一程序;若先按 S 键,再按 J 键, F 键则为设置时间模式,然后进入下一程序。 程序的开始要判断是否有键按下,可以不断将 S 键值和 F 键值相与,与值为 1 则表示没有键按下,为 0 则表示有键按下,程序如下: K1: MOV C, ANL C, MOV 03H,C JB 03H, K1 „„ 接下来要判断具体是哪个键,若为 F 键,则将自动标志位置 1,进入下一程序,否则为 S 键,则表示设置南北绿灯时间,用 R0 存值,按 1 下加 1,同时还需判断此时 J 键是否按下,若按下,则表示南北绿灯时间设置完毕,开始设置东西绿灯时间,用 R1存值,同样按 1 下加 1 ,同时判断此时 F 键是否按下,若按下,则表示时间设置完毕,进入下一程序。 在这个过程中, S, J 键的计数是循环的,从初值 20 开始,加到 40 则循环回到 20。 如判断 S 键程序如下: CJNZ R0, 40, V1 MOV R0, 20 V1: INC R0 …… ( 2)状态 灯显示及判断 在本设计中,实际控制的灯只有 6 个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。 定义 I/O 端口如下,其中均是低电平有效。 H_RED BIT H_GREEN BIT H_YELLOW BIT L_RED BIT L_GREEN BIT L_YELLOW BIT 共有 4 钟状态:东西红灯亮,南北绿灯亮( 11101011/EBH) ;东西红灯亮, 南北黄灯亮( 11100111/E7H);东西绿灯亮,南北红灯亮( 11011101/DDH);东西黄灯亮,南北红灯亮( 10111101/BDH)。 括号中是 P2 端口 8 个引脚值 ,, 以基于单片机的交通控制系统模拟设计 14 及对应的十六进制码。 在用于显示发光二极管时,直接由 MOV 指令将十六进制码送入 P2 口。 刚才的 4 个状态是依次变换的,这就要涉及到状态的判断和衔接了。 先把 P2 端口的值与所有的 4 个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显 P2即可。 程序如下: MOV A, P2 D0: CJNE A, 0DDH,D1 MOV P2, 0BDH MOV R4, 5 SJMP DULY D1: CJNE A, 0BDH,D2 MOV P2, 0EBH MOV 30H,R1 MOV R4,30H CLR 01H D2: CJNE A, 0EBH,D3 MOV P2, 0E7H MOV R4, 5 JNB 00H, DULY2 LCALL RV SJMP DULY2 „„ ( 3) LED 倒计时显示 LED 计时每 1 秒都要刷新 1 次,那么计时满 1 秒时就要将存储时间的工作寄存器 R4 减 1,然后送入 LED 显示程序中显示。 下面要将时间数据 R4 的十位,个位分开送显 P1, P0 端口,首先将 R4 除以 10,整数即十位放在 A 中,余数即个位放在 B 中,设置 7 段 LED 显示数据的数据表,用数据指针寄存器DPTR 指向数据表的首地址,再加上 A 中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。 具体程序如下: MOV A, R4 MOV B, 10 DIV A, B MOV DPTR, LEDMAP MOVC A, @A+DPTR MOV P1, A MOV A, B MOVC A, @A+DPTR MOV P3, A LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH …… ( 4)车流量检测中断服务子程序 车流量检测是用外部中断引脚 即 INT1 捕获到一个低电平,则进入相应的中断服务子程序,在子程序中,用 R5 计南北向车流量,用 R6 计东西向车流量,设车向标志位为 01H,判断车向,程序如下: JNB 01H, U 基于单片机的交通控制系统模拟设计 15 INC R5 SJMP U1 U: INC R6 „„ ( 5)紧停及违规中断服务子程序 紧停按键和违规信号传感器均连接到外部中断引脚 ,即 INT0 捕获到一个低电平,则进入该中断,中断程序中先把蜂鸣器 端口置 0,启动蜂鸣。 并且等待恢复键 F 键 按下,然后关闭蜂鸣返回。 程序如下: IINT0: SETB MOV P2,0EDH JB , $ LCALL DELAY CLR RETI …… ( 6)红绿灯时间调整程序 根据红绿灯时间调整原理,一个周期下来, R5, R6中分别存储着南北,东西向的车流量,接下来求单位时间车流量,此时南北向时间,东西向时间分别存储在 R0, R1 中,则两个方向的流量比例为( R5/R0) /( R6/R1) =(R5*R1)/ (R6*R0),显然该比例是 1 左右带小数的值,然而单片机程序中只取整数,重要的数 据信息就会丢失,所以本设计中首先将 (R5*R1)乘以 10,比例就变为 10 左右的值,将该比例值放在 A,然后进行时间调整。 由于受到多方面的限制,时间调整在此只划定 3 个范围:比例 0 到 为一个范围; 到 为一个范围; 以上为一个范围。 第一范围显然表明东西向交通严重,应将时间调长;第二范围表明两向相当,可设置一样的时间;第三范围表明南北向交通严重,应将该向时间调长。 具体设置如下表 . 表 3 比例及调整时间 南北与东西向比例 0— — 调整南北向时间 20 30 40 调整东西向时间 40 30 20 由表可知,对应的时间调整也只有三种,分别是 20, 40; 30, 30; 40,但在此处,本设计只是模拟大致的调整过程,以上要求的程序如下: CJNE A, 3, M1 M2: MOV R0, 20 MOV R1, 40 SJMP OUT M1: MOV 03H,C JB 03H,M2 CJNE A,30,N1 N2: MOV R0,30 MOV R1,30 基于单片机的交通控制系统模拟设计 16 SJMP OUT N1: MOV 03H,C JB 03H,N2 MOV R0,40 MOV R1,20 …… ( 7)消抖动程序 在按键计数的过程中,还存在机械抖动与软件方面的矛盾,即当程序检测到了有按键按下,则会计一次数,但是实际上,按键闭合后在微观上还会弹起,然后闭合,一直到达稳定,显然后面的弹落是无效的,为了使程序避免这个问题,可以在检测到首次闭合时,调用一定时间的延时程序。 此处延时程序完全用软件完成,利用程序执行一条指令的时间,再加上两次累减嵌套,程序如下: DELAY: MOV R2,14H A1: MOV R7,0FFH DJNZ R7,$ DJNZ R2,A1 RET SJMP $ END 程序中部分端口说明: P2 状态灯 P0 LED 个位 P1 LED 十位 F 键 自动调整模式 / 时间设置模式确认 S 键 设置南北向通行时间 J 键 设置东西向通行时间 / 紧停 车流量检测 红外对管 蜂鸣器 R3 存 20 用于乘以 50ms 计时 1s R4 暂存状态灯持续时间 R0 存南北向通行时间 R1 存东西向通行时间 R5 计南北向车流量 R6 计东西向车流量 R2,R7 用于软件延时 00H 自控标志位 01H 车向标志 结 论 交通灯控制在交通运输领域有着非常重要的作用。 本文完成了基于单片基于单片机的交通控制系统模拟设计 17 机的交通灯控制系统的设计与模拟。 包括通行方案的设计,系统的硬件开发、软件编程与仿真调试等。 在论文完成过程中,主要做的工作有: ( 1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配, 以及要求其他多功能的实现。 ( 2)以 ATMEL 公司的 AT89C52 单片机为核心进行系统硬件设计,输入量包括:车流量,按键状态和违规检测传感信号;输出控制交通信号灯亮灭状态及时间,以及 LED 数码管倒计时显示。 ( 3)在车流量检测系统中采用模糊控制方法,这需要知道被控对象的数学模型,进行清晰化,具体化。 因此,必须实施调查确定车流量少,中,多所要求的具体数量,然后经过单片机控制器的相关算法及处理确定红绿灯亮灭时间。 ( 4)采用汇编对系统的软件编程,在开发过程中可使用了 TKS 仿真器,这些都大大缩短了软件的开发周期。 为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。 参考文献 [l]边海龙,孙永奎 . 单片机开发与典型工程项目实例详解 [J].电子工业出版社, 2020, (10): 143160. [2]王为青,邱文勋 . 51 单片机开发案例精选 [J].人民邮电出版社, 2020,(5): 4547. [3]张鑫,华臻,陈书谦 . 单片机原理及应用 [J].电子工业出版社, 2020(5). [4]张洪润,张亚凡 .单片机原理及应用 [J]. 清华大学出版社, 2020, (4). [5]黄智伟 .凌阳单片机课程设计指导 [J]. 北京航空航天大学出版社 , 2020,(6) [6]蒋辉平,周国雄 . 基于 Proteus 的单片机系统设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。