[优秀毕业设计精品]基于单片机的交通灯控制器的设计与实现内容摘要:

B 两干道的公共停车时间。 设 A道比 B 道的车流量大,指示灯燃亮的方案如表 2。 表2 此表2说明:( 1)当为黄灯时 A、 B 两道同时为黄灯;以提示行人或车辆下一个灯色即将到来 时间 3秒。 ( 2)当 A到为红灯, A 道车辆禁止通行, A 道行人可通过; B 道为绿灯, B 道车辆通过,行人禁止通行。 时间为 60 秒。 ( 3)当 A道绿灯, A 道车辆通行; B 道为红灯, B 道车辆禁止通过,行人通行。 时间为 80 秒。 A 道车流大 通行时间长 3 60 3 80 3 60 „„ A 道 黄灯亮 红灯亮 黄灯亮 绿灯亮 黄灯亮 红灯亮 „„ B 道 黄灯亮 绿灯亮 黄灯亮 红灯亮 黄灯亮 绿灯亮 „„ 基于单片机的交通灯控制器的研究与设计 7 ( 4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 ( 5)此表可根据车流量动态设定 系统硬件设计 选用设备 8031 单片机一片选用设备: 8031 弹片 机一片, 8255 并行通用接口芯片一片, 74LS07 两片, MAX692“看门狗”一片,共阴极的七段数码管两个双向晶闸管若干, 7805 三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。 4. 2. 1 系统总框图如下: 图 6 系统总框图 4. 2. 2 交通灯控制线路图 基于单片机的交通灯控制器的研究与设计 8 图 7 交通灯控制线路图 基于单片机的交通灯控制器的研究与设计 9 4. 2. 3 系统工作原理 (1)开关键盘输入交通灯初始时间,通过 8031 单片机 P1 输入到系统 (2)由 8031 单片机的定时器每秒钟通过 P0口向 8255 的数据口送信息,由 8255的 PC 口显示红、绿、黄灯的燃亮情况;由 8255 的 PA、 PB 口显示每个灯的燃亮时间。 (3)8031 通过 设置 各个信号等的燃亮时间、通过 8031 设置,黄、绿、红时间依次为 3 秒、 60 秒、 3秒、 80秒、 3秒循环由 8031 的 P0 口向 8255 的数据口输出。 (4)通过 8031 单片机的 位来控制系统是工作或设置初值,当 为 0就对系统进行初始化,为 1系统就开始工作。 (5)8255PA 口用于输出时间的个位, PB 口用于输出时间的十位,由 74LS07 驱动芯片驱动;.而 PC 口用于输出各个灯的情况,它的末段连接双向晶闸管采用 220V交流电压驱动。 (6)在交通控制程序中加入看门狗指令,当系统出现异常看门狗将发出溢出中断。 通过专用端口输入到 MAX692 看门狗芯片的 WDI 引角引起 RESET 复位信号复位系统 5.系统的软件设计 每秒钟的设定 延时方法可以有两种一中是利用 MCS51 内部定时器才生溢出中断来确定 1 秒的时间,另一种是采用软延时的方法。 计数器硬件延时 计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到 TH 和 TL 中的。 他是以加法记数的,并能从全 1到全 0 时自动产生溢出中断请求。 因此,我们可以把计数器记满为零所需的计数值设定为 C 和计数初值设定为 TC 可得到如下计算通式: TC=MC 式中, M 为计数器摸值,该值和计数器工作方式有关。 在方式 0 时 M 为 213 ;在方式 1 时 M的值为 216;在方式 2和 3为 28 计 算公式 基于单片机的交通灯控制器的研究与设计 10 T=( M- TC) T 计数 或 TC= M- T/ T 计数 T 计数 是单片机时钟周期 TCLK 的 12 倍; TC 为定时初值 如单片机的主脉冲频率为 TCLK 12MHZ ,经过 12分频 方式0 TMAX= 213 * 1微秒= 毫秒 方式1 TMAX= 216 * 1微秒= 毫秒 显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题. 1秒的方法 我们采用在主程序中设定一个初值为 20 的软件计数器和使 T0 定时 50 毫秒.这样每当 T0 到 50 毫秒时 CPU 就响应它的溢出中断请求,进入他的中断服务子程序。 在中断服务子程序中, CPU 先使软件计数器减 1,然后判断它是否为零。 为零表示 1秒已到可以返回到输出时间显示程序。 相应程序代码 (1)主程序 定时器需定时 50 毫秒,故 T0 工作于方式 1。 初值: TC= M- T/ T 计数 = 216 - 50ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, 01H。 令 T0 为定时器方式1 MOV TH0, 3CH。 装入定时器初值 MOV TL0, BOH。 MOV IE, 82H。 开 T0 中断 SEBT TRO。 启动 T0 计数器 MOV RO, 14H。 软件计数器赋初值 LOOP: SJMP $。 等待中断 (2)中断服务子程序 ORG 000BH AJMP BRT0 ORG 00BH BRTO: DJNZ R0, NEXT 基于单片机的交通灯控制器的研究与设计 11 AJMP TIME。 跳转到时间及信号灯显示子程序 DJNZ: MOV R0, 14H。 恢复 R0 值 MOV TH0, 3CH。 重装入定时器初值 MOV TL0, BOH。 MOV IE, 82H RET1 END 软件延时 MCS51 的工作频率为 212MHZ,我们选用的 8031 单片机的工作频率为 6MHZ。 机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时间为 12*( 1/6M) =2us。 我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定 1 秒的时间。 具体的延时程序分析: DELAY:MOV R4,08H 延时 1 秒子程序 DE2:LCALL DELAY1 DJNZ R。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。