交通灯课程设计.docx
- 文档编号:26658115
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:14
- 大小:59.21KB
交通灯课程设计.docx
《交通灯课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
交通灯课程设计
华北水利水电学院
课程设计说明书
课程名称:
单片机应用基础
姓名:
学号:
专业:
指导教师:
设计期限:
2012年04月30日至2012年05月11日
第一章课程设计的的目的和要求
1.1课程设计的目的和要求
《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。
根据给定的任务要求选择合适的单片机和其他电子元器件,进行系统硬件电路设计和软件编程,根据系统制作并调试系统电路板,使之实现任务要求。
有关参数选择要求符合国家标准。
具体设计内容如下:
1.模拟交通灯模块
2.设计系统工作原理图,利用PROTEUS软件绘制系统工作原理图;
3.系统控制程序设计、调试及实现:
(1)根据要求,写出完整的程序流程图;
(2)将设计程序输入、汇编,排除语法错误,生成*.OBJ文件;
(3)按所设计的原理图,在实验平台上连线,检查无误;
(4)将目标文件传送到实验系统,执行并运行调试该程序,最终要求
4.写出设计说明书,3000字左右
1.2课程设计预备知识
LED是发光二极管的英文缩写,LED显示器是由发光二极管构成的,LED显示中的发光二极管共有两种连接方法:
共阳极接法:
把发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V。
这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。
共阴极接法:
把发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地。
这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不亮。
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形.
此次我采用的是共阴级连接,控制电路为动态驱动.其中数码管接线:
P1.0-a,P1.1-b,P1.2-c,P1.3-d,P1.4-e,P1.5-f,P1.6-g,P1.7-DP
显示
dpgfedcba
驱动代码(段码)
0
00111111
3FH
1
00000110
06H
2
01011011
5BH
3
01001111
4FH
4
01100110
66H
5
01101100
6DH
6
01111100
7DH
7
00000111
07H
8
01111111
7FH
9
01101111
6FH
控制数码管驱动级的控制电路有静态式和动态式两类:
静态驱动:
它是指每个数码管都要用一个译码器译码驱动。
动态驱动:
它是所的数码管使用一个专门的译码驱动器,使各位数码管逐个轮流显示,它的扫描速度极快,因此显示效果与静态驱动相同。
采用动态数码管显示,可以大幅度地降低硬件成本和电源的功耗,因为某一时刻只有一个数码管工作,就是所谓的分时显示,显示所需要的硬件电路可分时复用。
控制位码接线是:
P3.0—1,控制十位显示;P3.1--2,控制个位显示.
1.3课程设计任务(详见课程设计书)
第二章总体设计
1.由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故直接在I/O口线上接上按键开关。
由8051单片机的定时器每秒钟通过P0口显示红、绿、黄灯的燃亮情况;由P1口显示每个灯的燃亮时间。
8051通过设置各个信号等的燃亮时间、通过8031设置,绿、红时间分别为40秒、45秒循环由8051的P0口输出。
2.时间的设置
本设计中可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。
本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。
3.紧急处理
交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。
由此在交通控制中增设禁停按键,就可达到想此目的。
据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出.单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。
在此过程中随时调用急停按键中断。
第三章硬件设计
实现本设计要求的具体功能,可以选用80C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,2个LED东西南北各两个构成倒计时显示模块,若干按键组成紧急按钮。
本系统以单片机为核心,系统硬件电路由LED显示,按键组成。
其中P1用于送显两片LED数码管,P0用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3.0与P3.1对数码管进行片选,P3.2即INT0夜间模式黄灯闪烁处理按键,P3.3即INT1接紧急双向禁行中断按键。
P3.6接紧急情况只能南北通行处理按键,P接紧急情况只能东西通行处理按键
系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P0口,将要显示的时间值的个位和十位分别送显P1口,在此同时用定时器计时1秒,到达1s就要将时间值减1,刷新LED数码管。
时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,
第四章软件设计
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软件延时的方法。
在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到可以返回到输出时间显示程序。
相应程序代码
(1)主程序
定时器需定时50毫秒,故T0工作于方式1。
初值:
TC=M-T/T计数 =216 -50ms/1us=15536=3CBOH
ORG1000
START:
MOVTMOD,#01H;令TO为定时器方式1
MOVTH0,#3CH;装入定时器初值
MOVTL0,#BOH ;
MOVIE, #82H;开T0中断
SEBT TRO ;启动T0计数器
MOV RO, #20 ;软件计数器赋初值
LOOP:
SJMP$ ;等待中断
(2)中断服务子程序
WAIT:
JNBP3.6,SW1;南北通行东西禁止
JNBP3.7,SW2;南北禁行东西通行
JNBP3.2,SW3;夜间黄灯闪烁
JNBP3.3,SW4;双向禁行
SJMPLOOP2
SW1:
MOVP0,#11110011B;东西红,南北绿
CLRTR0
SJMPLOOP1
SW2:
MOVP0,#11011110B;东西绿,南北红
CLRTR0
SJMPLOOP1
SW3:
MOVP0,#11101101B;双向黄灯闪烁
CLRTR0
LCALLDELAY2
MOVP0,#11111111B
CLRTR0
LCALLDELAY2
SJMPSTART
SW4:
MOVP0,#11110110B;双向禁行
CLRTR0
SJMPLOOP1
LOOP2:
SETBTR0
LOOP1:
RET
5.3软件延时
DELAY1:
MOVR7,#10;数码管动态显示过程中时间驻留(约1ms)
DL1:
MOVR6,#10
DL2:
MOVR5,#10
DJNZR5,$
DJNZR6,DL2
DJNZR7,DL1
RET
DELAY2:
MOVR7,#100;夜间模式黄灯闪烁时间(约1s)
DE1:
MOVR6,#125
DE2:
MOVR5,#10
DJNZR5,$
DJNZR6,DE2
DJNZR7,DE1
RET
END
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
第五章系统调试
在运用wave6000和proteus进行调试的过程中,出现了很多问题.
本来想要设置红灯亮45s,绿灯亮40s,黄灯亮5s,闪烁三次.数码显示管从45开始倒计时.可是调试时数码管显示44s也就是慢了一秒后绿灯才开始亮.再将上数码管显示00时也算作一秒,故多次循环后显示的倒计时就和实际路况不一致了.因此我把数码管显示的初值为46,此后循环的初值为45,让绿灯亮40s,从45一直倒计时到6,让黄灯显示时间为3s(亮灭各一秒,闪烁三次),从5s倒计时到00s.此后循环时间和状态就显示一直啦.
在进行夜间模式时,闭合SW4后,黄灯一直在闪烁.当断开SW4时,程序从新开始.但是数码管显示的数还停留在中断前.多次调试后感觉自己不能用软件实现,就把控制显示位选的P3.0用双联开关连在了一起,当SW4闭合接通时,P3.0就断开了.夜间模式就只有黄灯在不停的闪烁了.
第六章结束语
经过两周的努力工作,终于完成了自己的单片机课程设计。
虽说忙碌了点,但我觉得这样的生活充实且有成就感,当然,也获益匪浅。
通过课程设计掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法,理解了最单片机的各部分组成及特性,使用了各种计算机辅助设计工具完成设计,充分掌握了这些工具的使用。
参考文献
[1]李广第主编.单片机基础.第一版.北京航空航天大学出版社.北京.1994年6月
[2]王修才主编.单片机接口技术.第一版.复旦大学出版社.上海.1995年10月
[3]周志德主编.单片机原理及应用.第一版.高等教育出版社
[4]李运华主编.机电控制.第一版.北京航空航天大学出版社
[5]秦曾煌主编.电工学上册:
电工技术.第五版.高等教育出版
程序:
ORG0000H;主程序的入口地址
LJMPSTART
ORG000BH;定时器0的中断程序入口地址
LJMPMAIN;跳转到主程序的开始处
ORG0100H
;*************************初始化设置*********************************
START:
MOVP0,#0FFH
MOVTMOD,#01H;设置T1为计数方式,T0为定时方式,且都工作于模式1
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0;启动T0计时器
MOVIE,#82H;CPU开中断,允许T0中断
CLRF0;用户标志位,用来控制南北和东西方向的流向
MOV40H,#0;用户自定义位,用来控制南北(东西)方向绿灯和黄灯的流向
MOV30H,#6;显示的个位数字
MOV31H,#4;现实的十位数字
MOVR0,#0
MOVR2,#0
MOVR3,#0
MOVR4,#0
MOVR5,#0
MOVR6,#0
MOVR7,#0
MOVDPTR,#TAB
LOOP:
LCALLWAIT
LCALLCHANGE
SJMPLOOP
;*******************************处理中断**************************
WAIT:
JNBP3.6,SW1;南北通行东西禁止
JNBP3.7,SW2;南北禁行东西通行
JNBP3.2,SW3;夜间黄灯闪烁
JNBP3.3,SW4;双向禁行
SJMPLOOP2
SW1:
MOVP0,#11110011B;东西红,南北绿
CLRTR0
SJMPLOOP1
SW2:
MOVP0,#11011110B;东西绿,南北红
CLRTR0
SJMPLOOP1
SW3:
MOVP0,#11101101B;双向黄灯闪烁
CLRTR0
LCALLDELAY2
MOVP0,#11111111B
CLRTR0
LCALLDELAY2
SJMPSTART
SW4:
MOVP0,#11110110B;双向禁行
CLRTR0
SJMPLOOP1
LOOP2:
SETBTR0
LOOP1:
RET
;************************数码管动态显示****************************
CHANGE:
MOVR3,#0FDH;数码管位控码
MOVR0,#2FH
XX:
MOVA,R3
MOVP3,A;显示个位
RRA;位码右移,控制显示十位
MOVR3,A
INCR0;加1得到个位所存数字的地址
MOVA,@R0
MOVCA,@A+DPTR
MOVP1,A
LCALLDELAY1
CJNER0,#31H,XX
RET
;*****************************倒计时显示****************************
DIS:
MOVA,30H
CJNEA,#0,AA
MOVA,31H
CJNEA,#0,BB
MOV31H,#4;循环显示
MOV30H,#5;循环显示
SJMPCC
AA:
DEC30H;个位递减
SJMPCC
BB:
DEC31H;十位递减
MOV30H,#9;十进制递减个位为9
CC:
RET
;*****************************主程序*********************************
MAIN:
MOVTH0,#3CH
MOVTL0,#0B0H
INCR2
CJNER2,#20,EXIT;定时器控制实现1s(20*50ms=1s)
MOVR2,#0
LCALLDIS
JBF0,EW2_1;F0控制南北,东西流向,F0=0,南北通行;F0=1,东西通行
MOVA,40H
CJNEA,#0,SN1_2
;******A南北通行①②*********
SN1_1:
MOVP0,#11110011B;①东西红灯,南北绿灯
INCR4
CJNER4,#40,EXIT;绿灯40s
MOVR4,#0
MOV40H,#1
SJMPEXIT
SN1_2:
ORLP0,#11110101B;②东西红灯,南北黄灯
CPLP0.3
CLRP0.1
INCR4
CJNER4,#6,EXIT;黄灯5s
MOVR4,#0
MOV40H,#0
SETBF0
SJMPEXIT
;******B东西通行③④********
EW2_1:
MOVA,40H
CJNEA,#0,EW2_2
MOVP0,#11011110B;③东西绿灯,南北红灯
INCR4
CJNER4,#40,EXIT;绿灯40s
MOVR4,#0
MOV40H,#1
SJMPEXIT
EW2_2:
ORLP0,#11101110B;④东西黄灯,南北红灯
CPLP0.0
CLRP0.4
INCR4
CJNER4,#6,EXIT;黄灯5s
MOVR4,#0
MOV40H,#0
CLRF0;通过改变F0值实现不断循环
EXIT:
RETI
;***********************共阴极数码管段码****************************
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;***数码管动态显示过程中时间驻留(约1ms)**
DELAY1:
MOVR7,#10
DL1:
MOVR6,#10
DL2:
MOVR5,#10
DJNZR5,$
DJNZR6,DL2
DJNZR7,DL1
RET
;**************************夜间模式黄灯闪烁时间(约1s)**************
DELAY2:
MOVR7,#100
DE1:
MOVR6,#125
DE2:
MOVR5,#10
DJNZR5,$
DJNZR6,DE2
DJNZR7,DE1
RET
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 课程设计