- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
基于C51单片机的交通灯控制系统
1、实验方案论证:
进行十字路口的交通信号灯控制电路设计,画出电路原理图及实验
电路图,进行软件编程、以及使用说明文档的建立等一整套工作任务。
进行十字路口的交通信号灯控制程序设计,提交一个符合上述功能要求
的十字路口的交通信号灯控制系统设计。
2、控制流程分析:
对设计要求进行分析后可得出以下交通工作状态表:
3、硬件设计概要:
根据设计要求,可用6个LED灯分别模拟东西、南北的交通灯。具
体接法如下:AT89C51的P1口接LED灯,P1.0、P1.1、P1.2分别接
东西方向红、绿、黄交通灯,P1.3、P1.4、P1.5分别接南北方向的红、
绿、黄交通灯。P1口和LED灯之间要接限流保护电阻。两位数码管段
选接P2口,位选接P0口低两位,P0口低两位接上拉电阻使其可以输
出高电平。紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复
正常按钮一端接地,另一端与外中断0引脚相连。
三、原理图设计
1、LED显示部分电路设计:
把单片机AT89C51的P1口作为红黄绿灯显示部分,用6个LED灯
分别模拟东西、南北的交通灯。P1.0、P1.1、P1.2各通过一个300Ω的
限流保护电阻接东西方向的红、绿、黄LED灯;P1.3、P1.4、P1.5各通
过一个300Ω的限流保护电阻接南北方向的红、绿、黄LED灯。LED
灯的一端接电源,另一端经电阻接P1口,因此当P1口引脚输出低电平
时LED灯发光,即此方案采取低电平驱动方式。具体电路如下:
2、紧急情况处理电路设计:
紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按
钮一端接地,另一端与外中断0引脚相连。在程序设计时,我会将其设
置为下降沿触发方式。具体电路如下:
3、数字显示电路设计:
选用共阴极两位数码管。两位数码管A~G引脚各通过一个300Ω的
限流保护电阻分别接P2.0~P2.6,位选1引脚和2引脚分别接P0.0口低
两位,P0口低两位接5kΩ的上拉电阻使其可以输出高电平。
4、其他部分电路:
XTAL1端和XTAL2端之间接一个12MHz的晶振,再各接一个30pF
的普通电容后接地;RST复位端一端经10uF的电解电容接+5V电源,
一端经一个10K的电阻接地。具体电路如下:
4、系统电路总图:
四、程序设计:
1、定时器初值的计算:
由于要求定时时间相当精确,我用定时器T0进行定时。根据公式可
知若已知要求的定时时间为t,则定时器的初值为x(其中fosc=12MHz)
:
需要定时器的定时时间为50ms,根据公式计算得出X=15536,因此
定时器初值的低位TL0=(0B0H),高位TH0=(3CH)。
2、程序流程图:
2.1主程序流程
主程序主要是对单片机进行初始化。初始化首先要开放总中断、定
时器T0中断以及外部中断0和外部中断1。其次是设置中断优先级,
把外中断0设置为高优先级,外中断1设置为低优先级。再次是给定时
器T0装顶初值,然后后是启动定时器,是使定时器开始定时。最后是
等待中断。
2.2紧急情况中断处理流程
紧急情况中断处理包括两部分,第一部分是出现紧急情况可以手动
使东西、南北方向红灯全亮,而且直到紧急状况解除后才能恢复正常通
车。这就要求紧急状况解除前不能退出外中断1处理程序,因此要在外
中断1处理程序处设置一无限循环。第二部分是紧急状况解除。为了使
外中断1处理程序退出无限循环,可用中断嵌套使机器转去执行外中断
0处理程序,而外中断0处理程序修改了寄存器R2的值,中断返回后
由于寄存器R2的值的改变使外中断1处理程序跳循环。
2.2.1外中断1处理程序(低优先级)
2.2.2外中断0处理程序(高优先级)
1.3定时器中断处理流程
Y
Y
3、程序源代码:
ORG0000H
AJMPSTART
ORG0003H;外中断0入口AJMPSERV0
ORG000BH
AJMPSERV1
ORG0013H
AJMPSERV2
ORG0030H
START:MOVIE,#87H
MOVIP,#0
文档评论(0)