单片机课程设计简易交通灯控制系统Word文件下载.docx
- 文档编号:7260878
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:16
- 大小:189.94KB
单片机课程设计简易交通灯控制系统Word文件下载.docx
《单片机课程设计简易交通灯控制系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计简易交通灯控制系统Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
目录
一、绪言1
二、系统设计1
1设计任务1
2方案比较与论证1
2.1系统整体流程图2
2.2时钟电路方案论证2
2.3单片机的选择方案论证2
2.4键盘选择方案论证3
2.5显示模块的选择方案论证3
三硬件电路设计4
3.1日历时钟总体电路图4
3.2独立按键模块设计4
3.3蜂鸣器驱动电路的设计5
3.4主要元器件选择5
四、程序流程图6
4.1系统主程序流程图6
4.2定时器设计7
五、c语言程序设计7
5.1系统初始化程序7
5.2闹钟比较函数8
5.3按键处理函数8
5.4状态切换函数9
六、电子密码锁控制器仿真9
6.1Keil调试10
6.2Proteus调试10
七、结束语11
八、参考文献11
一、绪言
1.交通红绿灯的发展历史
红绿灯的历史其实并不复杂。
从最初发明时的手牵皮带转动灯箱,到20世纪开始的电气控制,从采用计算机控制到电子监控感应,其发展不超过150年。
美国人带来红绿灯的主要技术进步,3年内有60项与交通信号灯有关的发明获得专利。
2.道路交通控制的必要性
近年来随着科技的飞速发展,十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然有序呢?
靠的就是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本系统采用AT89S52单片机为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P3口设置红、绿灯燃亮时间的功能:
红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。
本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。
二系统设计
1设计任务
2方案比较与论证
2.1交通信号灯的控制方案论证
根据设计任务与要求,我们可以知道这个交通灯的设计是分主次干道的,两个方面的时间是不同的,东西方向通行30s,南北方向30s,这就要求我们要有两个计数器,根据我自己的经验,东西方向通行30s完,倒计时数字显示器会显示到0,然后切换到南北方向通行30s完之后,倒计时数字显示器也会显示到0之后然后切换到东西方向,这样如此循环,这样的话我们就要设计一个16进制和一个11进制的计数器,根据我们所学和知识,可以用两片74192芯片来构成对应进制的计数器,由于是30和30之间循环切换,我们可以用利用JK触发器的翻转功能来实现两种进制计数器之间的切换;
当然还有每个方向倒计时只有5s时,绿灯闪,计时到最后2秒时,路口黄灯亮,一直到0为止,由于黄灯是当两个计数器倒计时到2时开始闪,我们就可以在这时发出一个脉冲然后一直保持到0,或者是接收0~2这段时间的脉冲都可以控黄灯只在到了这段时间才亮;
还有就是一个紧急开关,我们可以控制在出现紧急情况时使用清零端使之清零,并且红灯直接接到电源,使之一直处于亮的状态。
2、单片机的控制方案论证
根据设计任务书中的设计要求,可选用Atmel公司的89系列单片机AT89S52,但考虑到将来控制功能的扩充,用AT89S52来完成本次设计。
控制方案如下:
单片机采用用AT89S52芯片,使用发光二极管(红,黄,绿)代笔各个路口的交通灯,用8段数码管对转换时间进行倒计时(东西、南北路口各30秒,黄灯2秒)。
三、硬件电路设计
2、主要元器件选择
主要元器件选用型号和数量如表2-1所示:
表2-1主要元器件清单
序号
材料名称
规格型号
数量
元件代号
1
单片机
74LS07
U1
2
晶振
6MHz
X1
3
数码管
共阳极
4
LED灯
红
黄
绿
(二)程序流程图
1、内存单元分配
AT89C51片内RAM存储单元分配如表2-2所示:
表2-2片内RAM存储单元分配表
存储单元
用途
2AH
堆栈区
R1
秒数个位字形码寄存器
R2
中断服务程序的延时计数初值
R3
信号灯控制码寄存器
5
R4
LED显示器位码寄存器
6
R5
LED显示器段码寄存器
2、主程序流程图
按交通灯控制方案要求,主程序应是完成正常情况下使A、B两车道轮流放行。
主程序流程图如下:
五、汇编语言程序设计
5.1计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
式中,M为计数器摸值,该值和计数器工作方式有关。
在方式0时M为213;
在方式1时M的值为216;
在方式2和3为28
5.2.2计算公式
T=(M-TC)T计数
或TC=M-T/T计数
T计数是单片机时钟周期TCLK的12倍;
TC为定时初值
如单片机的主脉冲频率为TCLK12MHZ ,经过12分频
方式0 TMAX=213 *1微秒=8.192毫秒
方式1 TMAX=216 *1微秒=65.536毫秒
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.
3、中断服务程序流程图
(1)紧急状态时,采用中断方式,通过按钮,使单片机执行中断服务程序,让干线红灯、支线红灯同时亮。
中断服务子程序如下:
ORG 000BH
AJMP BRT0
ORG 00BH
BRTO:
DJNZR0,NEXT
AJMPTIME;
跳转到时间及信号灯显示子程序
DJNZ:
MOV RO,#14H ;
恢复RO值
MOVTH0,#3CH;
重装入定时器初值
MOVTL0,#BOH ;
MOVIE, #82H
RET1
END
(三)汇编语言程序设计
1、主程序
ORG0000H;
主程序的入口地址
LJMPMAIN;
跳转到主程序的开始处
ORG0003H;
外部中断0的中断程序入口地址
ORG000BH;
定时器0的中断程序入口地址
LJMPT0_INT;
跳转到中断服务程序处
ORG0013H;
外部中断1的中断程序入口地址
MAIN:
MOVSP,#50H
MOVIE,#8EH;
CPU开中断,允许T0中断,T1中断和外部中断1中断
MOVTMOD,#51H;
设置T1为计数方式,T0为定时方式,且都工作于模式1
MOVTH1,#00H;
T1计数器清零
MOVTL1,#00H
SETBTR1;
启动T1计时器
SETBEX1;
允许INT1中断
SETBIT1;
选择边沿触发方式
MOVDPTR,#0003H
MOVA,#80H;
给8255赋初值,8255工作于方式0
MOVX@DPTR,A
AGAIN:
JBP3.1,N0;
判断是否要设定东西方向红绿灯时间的初值,若P3.1为1则跳转
MOVA,P1
JBP1.7,RED;
判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间
MOVR0,#00H;
R0清零
MOVR0,A;
存入东西方向绿灯初始时间
MOVR3,A
LCALLDISP1
LCALLDELAY
AJMPAGAIN
RED:
MOVA,P1
ANLA,#7FH;
P1.7置0
MOVR7,#00H;
R7清零
MOVR7,A;
存入东西方向红灯初始时间
;
-------------------------------------------
N0:
SETBTR0;
启动T0计时器
MOV76H,R7;
红灯时间存入76H
N00:
MOVA,76H;
东西方向禁止,南北方向通行
MOVR3,A
MOVDPTR,#0000H;
置8255A口,东西方向红灯亮,南北方向绿灯亮
MOVA,#0DDH
N01:
JBP2.0,B0
N02:
SETBP3.0
CJNER3,#00H,N01;
比较R3中的值是否为0,不为0转到当前指令处执行
------黄灯闪烁5秒程序------
N1:
MOVR3,#05H
置8255A口,东西,南北方向黄灯亮
MOVA,#0D4H
MOVX@DPTR,A
N11:
MOVR4,#00H
N12:
CJNER4,#7DH,$;
黄灯持续亮0.5秒
N13:
置8255A口,南北方向黄灯灭
N14:
黄灯持续灭0.5秒
CJNER3,#00H,N1;
闪烁时间达5秒则退出
------------------------------------------------------------
N2:
MOVR7,#00H
MOVA,R0;
东西通行,南北禁止
置8255A口,东西方向绿灯亮,南北方向红灯亮
MOVA,#0EBH
N21:
JBP2.0,T03
N22:
CJNER3,#00H,N21
N3:
MOVA,#0E2H
N31:
N32:
N33:
CJNER3,#00H,N3;
SJMPN00
2、1S延时子程序
N7:
RETI
T0_INT:
MOVTL0,#9AH;
给定时器T0送定时10ms的初值
MOVTH0,#0F1H
INCR4
INCR5
CJNER5,#0FAH,T01;
判断延时是否够一秒,不够则调用显示子程序
MOVR5,#00H;
R5清零
DECR3;
倒计时初值减一
DECR2;
报警初值减一
T01:
ACALLDISP;
调用显示子程序
RETI;
中断返回
3、显示子程序
DISP:
JNBP2.4,T02
DISP1:
MOVB,#0AH
MOVA,R3;
R3中值二转十显示转换
DIVAB
MOV79H,A
MOV7AH,B
DIS:
MOVA,79H;
显示十位
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#0002H
MOVDPTR,#0001H
MOVA,#0F7H
DS2:
MOVA,7AH;
显示个位
MOVDPTR,#TAB
MOVA,#0FBH
RET
三、交通信号灯控制器仿真
(一)系统仿真
在完成了交通灯控制器硬件设计和软件设计以后,便进入系统的调试阶段。
系统的调试步骤和方法基本上是相同的,但具体细节和所采用的开发系统以及用户系统选用的单片机型号有关,如可选用Keil软件进行软件调试,用Proteus软件完成硬件调试。
1、Keil调试
图3-1程序调试完成图
2、Proteus调试
图3-2交通信号灯联调效果图
七、结束语
一分耕耘,一分收获。
只有亲自用实践来验证这句话,在能得其要领。
经过这次单片机课程设计,我从一个单片机实践的门外汉,已经越升为略知一二的新手。
虽然还有很多有关单片机的应用有待学习,但万变不离其宗,只要深入了解单片的原理,全部知识点,各个细节,一切设计皆有可能。
八、参考文献
[1]何立民主编.MCS-51系列单片机应用系统设计[M].北京:
北京航空航天大学出版社,1995
[2]薛钧义,张彦斌.MCS-51系列单片微型计算机及其应用[M].西安:
西安交通大学出版社,1997
[3]丁元杰.单片微机原理及应用[M].北京:
机械工业出版社,1994
[4]张毅坤,陈善久,裘雪红.单片微型计算机原理及应用[M].西安:
西安电子科技大学出版社,1998
[5]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,1992
[6]彭介华.电子技术课程设计指导[M].北京:
高等教育出版社,1996.15-18
[7]谢自美.电子线路设计实验测试[M].武汉:
华中理工大出版社,1992.62-64
[8]彭志刚.利用单片机改进交通灯控制系统[J].湖南工业职业技术学院学报,2003,2
(2):
25-27.
[9]李广弟.单片机基础[M].北京:
北京航空航天大学出版社.2001.45-47
[10]张毅坤.单片微型计算机原理及应用[M].西安:
西安电子科技大学出版社,1998.52-57
[11]胡宴如.模拟电子技术[M].北京:
高等教育出版社,2004.121-134
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 简易 交通灯 控制系统