交通灯的控制设计_第1页
交通灯的控制设计_第2页
交通灯的控制设计_第3页
交通灯的控制设计_第4页
交通灯的控制设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCS-51单片机开放性设计实验交通灯的控制设计一 问题的提出: 设计一组交通灯使十字路口的交通快捷顺畅。二 总体设计:1 .设计题目的功能: 功能是利用两组交通灯,当南北向红灯时,东北向绿灯,当南北向绿灯时,东西向红灯,且有倒计时(期限为30秒)的独特设计。当红灯与绿灯转换时黄灯闪烁,历时5秒。2 总体方案设计: 利用定时器实现计时,用数码管显示数字,利用中断系统实行红绿灯的转换,利用硬件显示方案的功能。三 硬件系统电路: P2.0P1.1P1.28031P1.3P1.5 P2.5P1.6P1.7I01M8155CE 黄 绿 红 黄 绿 红 PB0 PB7 接数码管 PA0 PA7四 软件模块和流程图开始(TIME3) 30(TIMEOUT) 0(P1) EW_G;车辆方向,绿灯亮TL0,TH0是否溢出执行中断程序TIMEOUT 是1或0(TIMES) 5;黄灯亮5秒(P1) 东西黄灯亮EW_Y(LEDMASK) #80H;用来使黄灯闪烁 ( SP) 50H (TH0) T8H;设置TK0初值,5秒 (P1) 0FF; 灯均不亮 产生中断。 (DPTR) 0FF;传送命令寄存器地址 (ET0) 1(A) 30H (EA) 1 (DPTR) (A);设置命令寄存器,使 (TR0) 1;使T/CO开始计时。 AO,BO为输出口 (TMOD) 01H;T/CO为计时器,且 为方式1。 (TL0) 0FCH 溢出发生 中 断 中断返回 是1执行中断程序TL0,TH0,是否溢出 溢出发生TIMEOUT 是0,是1? 中 断 是 0TL0,TH0,是否溢出(TIMES) 30;绿灯亮30秒(P1) 3N_G;南北绿灯 亮 是 1执行中断程序 溢出发生TIMEOUT是1或0 中 断 是 0 中断返回 TL0,TH0,是否溢出(TIMES) 5;黄灯亮5秒(P1) SN_Y;南北黄灯亮(LEDMASK) #08H,完成黄灯 闪烁 执行中断程序 溢出发生TIMEOUT 是1 是0 ? 中 断 是 0 中断返回 返回到开始 是 1 中断流程图:第二十数码管是否亮了INC R0(01H)变为(02H);下次中断时第二个数码亮管(DPTR) ZIXING;B口作为字形输出口(A) #01H (DPTR) (A) 第一个数码管亮( TH0) 0EC(TL0) 078;为新中断赋 初值中断程序 亮了TIME1 减1后判0,使时间间隔为5ms*20=100s准备下次中断使第一个数码管亮 没亮不为0到100ms 为0至100ms TIME2减1后判0使时间间隔为100MS*10=1s如果是黄灯,使之闪烁 不到1sTIME3 减1后判0灯亮时间为0? 到1s 不为0TIMEOUT =1;实现让下一个灯亮中断返回灯亮时间分成两位十位放到DISBUF1中;作为第二个数码管字形个位放到DISBUF0中;作为第一个数码管字形 五 汇编程序: EW_G EQU 10111101B EW_Y EQU 01111101B SN_G EQU 11011011B SN_Y EQU 110101111B LEDMASK EQU 31H TIMES EQU 30H TIME1 EQU 32H TIME2 EQU 33H DISBUF0 EQU 40H DISBUF1 EQU 41H P_DIS EQU 34H POS EQU 35H ZIXING EQU 0FF22H ZIWEI EQU 0FF21H TIMEOUT BIT 20H,0 ORG 0000H LJMP START ORG 000BH LJMP TOSVR ORG 0100H START: MOV SP,#50H MOV P1,#0FFH MOV DPTR,#0FF20H MOV A,#03H MOVX DPTR,A MOV TMOD,#01H MOV TH0,#0ECH MOV TH0,#78H; 5ms MOV TIME1,#20 MOV TIME2,#10 MOV LEDMASK,#0 MOV POS,#01H MOV P_DIS,#40H SETB ET0 SETB EA SETB TR0 REPEAT: MOV P1,#EW_G MOV LEDMASK,#00H MOV TIMES,#30 MOV TIMEOUT L1: JNB TIMEOUT,L1 MOV P1,#EW_Y MOV LEDMASK,#80H MOV TIMES,#5 CLR TIMEOUT L2: JNB TIMEOUT,L2 MOV P1,#SN_G MOV LEDMASK,#00H MOV TIMES,#30 CLR TIMEOUT L3: JNB TIMEOUT,L3 MOV P1,#SN_Y MOV LEDMASK,05H MOV TIMES,#5 CLR TIMEOUT L4: JNB TIMEOUT,L4 SJMP REPEAT TOSVR: PUSH PSN PUSH ACC PUSH RS1 PUSH RS0 MOV TH0,#0ECH MOV TL0,#078H MOV DPTR,#ZIXING MOV R0,P_DIS MOV A,R0 MOVX DPTR,A JNC R0 MOV P_DIS,R0 MOV A,POS MOV DPTR,#ZIWEI MOVX DPTR,A RL A MOV POS,A JNB ACC.2,NEXT MOV POS,#01H MOV P_DIS,#40H NEXT: DJNZ TIME1,TO_2 MOV TIME1,#20; 20*5ms=100ms MOV A,LEDMASK RL P1,A DJNZ TIME2,TO_2 MOV TIME2,#10 DJNZ TIMES,TO_1 SETB TIMEOUT TO_1: MOV A,TIMES MOV B,#10 DIV AB MOV DPTR,#DISCODE MOVC A,A+DPTR MOV DISBUF1,A MOV A,B MOVC A,A+DPTR MOV DISBUF0,A TO_2: POP ACC POP PSW RET DISCODE: DB 000H,0F9H,0A4H,0B0H,99H DB 92H, 82H, 0F8H, 80H,90H DB 88H, 83H, 006H,0A1H,86H,8EH END六 调试方案:运行过程中,曾有无中断的现象,在汇编程序中加入JNB 语句解决此问题;输入程序过程中出现个别输入性错误,如TIMEOUT-“TIME OUT”,已得到修正调试;该设计方案调试时运行良好,无错误出现,感谢老师的指导与帮助。七 结果评价:对于本次设计实验我个人认为,总体上是比较成功的,基本上达到了预期的目的和要求。但是也并非完美,程序还存在一定的缺陷,有待在今后的学习中进一步完善。如果满分是100分的话,那么我给自己75分,这既是对自己一周努力的肯定,同时提醒自己满分还有一段距离,以此作为今后努力的动力.心得:在本次实验当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论