单片机课程设计交通灯.doc_第1页
单片机课程设计交通灯.doc_第2页
单片机课程设计交通灯.doc_第3页
单片机课程设计交通灯.doc_第4页
单片机课程设计交通灯.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

一,设计任务( 按下时依次红灯全亮,同时数码管显示15S的到计时;东西绿灯亮,南北红灯亮,同时数码管显示30S的到计时;计闪次数8次。)2汇编程序MIAOEQU 30HORG 0000HLJMP STARTORG 000BHLJMP INTET0START: LACALL JS1MOV P1,#0F6H;点亮四个红灯MOV P3,#0DEHLCALLDE15S ;延时15SLLL: MOV P1,#0DBH ;东西绿灯亮,南北红灯亮MOV P3,#0DEHLCALLDE30S ;延时30SMOV P1,#0FFH ;东西绿灯灭,南北红灯亮MOV P3,#0DEHMOV R1,#08H; 计闪次数8次DDD: MOV P1,#0EDH ; 东西黄灯亮,南北红灯亮MOV P3,#0DEHACALL DE02SMOV P1,#0FFH ; 东西黄灯灭,南北红灯亮DE6S: MOV R5,#60 ;延时6SSJMP DE1DE02S: MOV R5,#02H ; 延时0.2SDE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3DJNZ R6,DE2DJNZ R5,DE1RETJS1: MOV TMOD,#01H ; 50MS定时常数MOV TH0,#3CHMOV TL0,#0B0HMOV R0,#20 ; 1S定时常数SETB EASETB ET0RETDE30S: MOV MIAO,#00HNEXT: MOV A,MIAOMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,BMOVC A,A+DPTRMOV P2,ALCALL DELY1SINC MIAOMOV A,MIAODEC MIAOMOVA,MIAOCJNE A,#30,NEXTLJMP DE30SDE15S: MOV MIAO,#00HNEXT: MOV A,MIAOMOV B,#10DIV ABMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,BMOVC A,A+DPTRMOV P2,ALCALL DELY1SINC MIAOMOV A,MIAODEC MIAOMOVA,MIAOCJNE A,#15,NEXTLJMP DE15SDELY1S: MOV R5,#100D2: MOV R6,#20D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND二89C51单片机交通灯程序(按下时依次红灯全亮,同时数码管显示15S的到计时;东西绿灯亮,南北红灯亮,同时数码管显示30S的到计时;计闪次数8次。) 2汇编程序 MIAOEQU30H ORG0000H LJMPSTART ORG000BH LJMPINTET0 START:LACALLJS1 MOVP1,#0F6H;点亮四个红灯 MOVP3,#0DEH LCALLDE15S;延时15S LLL:MOVP1,#0DBH;东西绿灯亮,南北红灯亮 MOVP3,#0DEH LCALLDE30S;延时30S MOVP1,#0FFH;东西绿灯灭,南北红灯亮 MOVP3,#0DEH MOVR1,#08H;计闪次数8次 DDD:MOVP1,#0EDH;东西黄灯亮,南北红灯亮 MOVP3,#0DEH ACALLDE02S MOVP1,#0FFH;东西黄灯灭,南北红灯亮 DE6S:MOVR5,#60;延时6S SJMPDE1 DE02S:MOVR5,#02H;延时0.2S DE1:MOVR6,#200 DE2:MOVR7,#126 DE3:DJNZR7,DE3 DJNZR6,DE2 DJNZR5,DE1 RET JS1:MOVTMOD,#01H;50MS定时常数 MOVTH0,#3CH MOVTL0,#0B0H MOVR0,#20;1S定时常数 SETBEA SETBET0 RET DE30S:MOVMIAO,#00H NEXT:MOVA,MIAO MOVB,#10 DIVAB MOVDPTR,#TABLE MOVCA,A+DPTR MOVP0,A MOVA,B MOVCA,A+DPTR MOVP2,A LCALLDELY1S INCMIAO MOVA,MIAO DECMIAO MOVA,MIAO CJNEA,#30,NEXT LJMPDE30S DE15S:MOVMIAO,#00H NEXT:MOVA,MIAO MOVB,#10 DIVAB MOVDPTR,#TABLE MOVCA,A+DPTR MOVP0,A MOVA,B MOVCA,A+DPTR MOVP2,A LCALLDELY1S INCMIAO MOVA,MIAO DECMIAO MOVA,MIAO CJNEA,#15,NEXT LJMPDE15S DELY1S:MOVR5,#100 D2:MOVR6,#20 D1:MOVR7,#248 DJNZR7,$ DJNZR6,D1 DJNZR5,D2 RET TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END 三、单片机控制交通灯说明书运行成功一、设计思路 如何使主干道通车时间 ,可任意设置;次干道通车时间 ,可任意设置;黄灯亮时间 ,可任意设置;怎样采用倒计时的方式,用两位十进制数字显示红、绿、黄色信号灯的倒计时时间。二、电路图 二、 使用材料1、单片机89c51 两片2、CD4072 一片3、LED七段吗数码管 四个4、CD4511 四片5、红,绿,黄发光二极管 各两个三、元器件结构与工作原理1、单片机89c51 89C51包含了运算器、控制器、片内存储器、四个I/O 接口,串行接口、定时器和计数器、中断系统、振荡器。 1)主电源引脚Vcc接+5V电源正端Vss接+5V电源地端 2)外接晶体引脚XTAL1:片内反相放大器输入端XTAL2:片内反相放大器输出端。外接晶体时,XTAL1与XTAL2各接晶体的一端,接外接晶体与片内反相器构成振荡器。3)输入输出引脚 本电路运用了P1.0-P1.7:P1口的8个引脚。可作为准双向I/O接口使用。P2.0P2.7:P2口的8个引脚。一般可作为准双向I/O接口;在接有片外存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用 的为高8位地址总线。P3.0P3.7:P3口的8个引脚。除作为准双向I/O接口使用外,还具有第二功能。4)RST是复位端。单片机的振荡器工作时,该引脚上出现两个机器周期的高电平就可实现复位操作,使单片机回复道初始状态。2. CD 40511 CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码-七段码译码器,特点如下:具有BCD转换,消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。 BI:4脚是测试消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段码均处熄灭状态,不显示数字。 LT:3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。 &四、实验原理采用两片51系列单片机芯片AT89C51,完成交通信号控制系统。该系统的技术指标:主干道通车时间 ,可任意设置;次干道通车时间 ,可任意设置;黄灯亮时间 ,可任意设置;采用倒计时的方式,用两位十进制数字显示红、绿、黄色信号灯的倒计时时间。备注: org 0000h mov sp,#70h sjmp main org 0023h ljmp sentmain: mov a,#00h mov p2,a lcall del1 mov a,p2 mov r1,a lcall del1 mov a,#00h mov p2,a mov a,p2 xrl a,r1 cjne a,#00h,error ;绿灯时间储入r1 缺一错误跳转 mov a,#00h mov p0,a mov a,p0 anl a,#00fh mov r2,a ;黄灯时间储入r2 lcall del1 mov a,#00h mov p0,a mov a,p0 anl a,#00fh xrl a,r2 cjne a,#00h,error ; mov a,r1 add a,r2 mov r3,a ;黄灯加红灯时间存入r3 mov a,#66h add a,r3 ;判断r3是否大于99大于99则出错 jc errorcus: mov scon, #90h ;设置串行口为方式2 setb ea ;开中断 setb es ;允许串行口中断 lcall sout ;先发送红灯数据 mov r0,#02h cjne r0,#00,$ ;等待两次中断start: mov a, r1 mov 30h, a ;将绿灯时间存入30h单元 mov a, r2 mov 31h, a ;将黄灯时间存入31h单元 mov a, r3 mov 32h, a ;将绿灯加红灯时间存入32h单元 mov a, r4 mov 33h, a ;将红灯时间存入33h单元main0: mov a, 32h ;取红灯加黄灯时间 mov 2ah, a ;存入2ah 倒计时显示时间 mov r3, #0bfh ;数码管控制码 绿灯亮其他灭 mov a, 30h mov r7, a ;取延时时间存入r7,即绿灯亮时间main1: lcall del ;调用一秒延时子程序 并显示倒计时时间 djnz r7,main1 ;判断延时时间是否到 没到则 转main1循环 mov r3,#0dfh ;数码管控制码 黄灯亮其他灭 mov a, 31h mov r7, a ;取延时时间存入r7, 即黄灯亮时间main2: lcall del djnz r7,main2 ;判断时间到否 没到则循环 mov r3,#7fh ;数码管控制码 红灯亮其他灭 mov a,33h ;取红灯时间 mov 2ah,a ;存入 2ah 倒计时显示时间 mov a,33h mov r7,a ;取延时时间存入r7,即红灯亮时间 main3: lcall del ;调用一秒延时 并显示倒计时时间 djnz r7,main3 ;判断时间是否到没到循环 ajmp main0 ;跳转到main循环执行程序error: sjmp errordel: dec 2ah ;倒计时时间减1 mov dptr , # table ;1秒延时加到计时显示 子程序 取表头地址存入dptr mov a,2ah ; 取倒计时显示时间到a中 mov b,#0ah ;数字10存入b中 div ab ;a除以b 十位数存入a中 个位数存入b中 movc a,a+dptr ;代码装换 mov r1,a ;代码存入r1 mov a,b ;个位数存入a中 add a,r1 ;代码与个位相加 得显示码 存入a mov r2,a ;显示码存入r2disp: mov a,r2 ;显示码存入r2 mov p1,a ;送出显示码 显示 mov a,r3 mov p0,a ;输出信号灯控制码控制灯亮t2: mov r6,#10 ;延时程序 0.999秒 12mHZ时为0.99秒d1: mov r5,#200 ;6mHz时为1.98秒 可改r6=#5d2: mov r4,#248 djnz r4,$ djnz r5,d2 djnz r6,d1 ret ;子程序返回table: db 00h,10h,20h,30h,40h, db 50h,60h,70h,80h,90hsent: jnb ri,send ;不是接收,转向发送 lcall sin ;接收,调用接收子程序 reti ;中断返回send: clr ti ;清发送中断标志 dec r0 ;r0减1变为1 reti ;中断返回sout: push psw push acc ;保存 psw acc装状态 mov a,r3 ;取黄灯加红灯时间放入a中 mov c,p mov tb8,c ;取奇偶效验为存入tb8 mov sbuf,a ;发送数据 pop a pop psw ;恢复 psw acc状态 ret ;子程序返回sin: push psw push a ;保存 psw acc状态 clr ri ;清接收中断标志 mov a,sbuf ;读入缓存区内容 mov c,p ;取奇偶效验位 jnc s1 ;p=c=0转移到s1 jnb rb

温馨提示

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

最新文档

评论

0/150

提交评论