单片机课程设计交通灯.docx
- 文档编号:2359621
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:15
- 大小:144.88KB
单片机课程设计交通灯.docx
《单片机课程设计交通灯.docx》由会员分享,可在线阅读,更多相关《单片机课程设计交通灯.docx(15页珍藏版)》请在冰点文库上搜索。
单片机课程设计交通灯
一,设计任务
(按下时依次红灯全亮,同时数码管显示15S的到计时;东西绿灯亮,南北红灯亮,同时数码管显示30S的到计时;计闪次数8次。
。
。
。
。
。
。
。
。
。
。
。
)
2汇编程序
MIAO EQU30H
ORG0000H
LJMPSTART
ORG000BH
LJMPINTET0
START:
LACALL JS1
MOVP1,#0F6H ;点亮四个红灯
MOVP3,#0DEH
LCALL DE15S ;延时15S
LLL:
MOVP1,#0DBH ;东西绿灯亮,南北红灯亮
MOVP3,#0DEH
LCALL DE30S ;延时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
MOV P2,A
LCALLDELY1S
INCMIAO
MOVA,MIAO
DEC MIAO
MOV A,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
DEC MIAO
MOV A,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
二
89C51单片机交通灯程序 ( 按下时依次红灯全亮,同时数码管显示15S的到计时;东西绿灯亮,南北红灯亮,同时数码管显示30S的到计时;计闪次数8次。
。
。
。
。
。
。
。
。
。
。
。
)
2汇编程序
MIAO EQU 30H
ORG 0000H
LJMP START
ORG 000BH
LJMP INTET0
START:
LACALL JS1
MOV P1,#0F6H ;点亮四个红灯
MOV P3,#0DEH
LCALL DE15S ;延时15S
LLL:
MOV P1,#0DBH ;东西绿灯亮,南北红灯亮
MOV P3,#0DEH
LCALL DE30S ;延时30S
MOV P1,#0FFH ;东西绿灯灭,南北红灯亮
MOV P3,#0DEH
MOV R1,#08H ; 计闪次数8次
DDD:
MOV P1,#0EDH ; 东西黄灯亮,南北红灯亮
MOV P3,#0DEH
ACALL DE02S
MOV P1,#0FFH ; 东西黄灯灭,南北红灯亮
DE6S:
MOV R5,#60 ;延时6S
SJMP DE1
DE02S:
MOV R5,#02H ; 延时0.2S
DE1:
MOV R6,#200
DE2:
MOV R7,#126
DE3:
DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
JS1:
MOV TMOD,#01H ; 50MS定时常数
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R0,#20 ; 1S定时常数
SETB EA
SETB ET0
RET
DE30S:
MOV MIAO,#00H
NEXT:
MOV A,MIAO
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
LCALL DELY1S
INC MIAO
MOV A,MIAO
DEC MIAO
MOV A,MIAO
CJNE A,#30,NEXT
LJMP DE30S
DE15S:
MOV MIAO,#00H
NEXT:
MOV A,MIAO
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
LCALL DELY1S
INC MIAO
MOV A,MIAO
DEC MIAO
MOV A,MIAO
CJNE A,#15,NEXT
LJMP DE15S
DELY1S:
MOV R5,#100
D2:
MOV R6,#20
D1:
MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE:
DB 3FH,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.0~P2.7:
P2口的8个引脚。
一般可作为准双向I/O接口;在接有片外存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用的为高8位地址总线。
P3.0~P3.7:
P3口的8个引脚。
除作为准双向I/O接口使用外,还具有第二功能。
4)RST是复位端。
单片机的振荡器工作时,该引脚上出现两个机器周期的高电平就可实现复位操作,使单片机回复道初始状态。
2.CD40511
CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码-七段码译码器,特点如下:
具有BCD转换,消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED显示器。
BI:
4脚是测试消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段码均处熄灭状态,不显示数字。
LT:
3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。
它主要用来检测数码管是否损坏。
&
四、实验原理
采用两片51系列单片机芯片AT89C51,完成交通信号控制系统。
该系统的技术指标:
主干道通车时间,可任意设置;次干道通车时间,可任意设置;黄灯亮时间,可任意设置;采用倒计时的方式,用两位十进制数字显示红、绿、黄色信号灯的倒计时时间。
备注:
org0000h
movsp,#70h
sjmpmain
org0023h
ljmpsent
main:
mova,#00h
movp2,a
lcalldel1
mova,p2
movr1,a
lcalldel1
mova,#00h
movp2,a
mova,p2
xrla,r1
cjnea,#00h,error;绿灯时间储入r1缺一错误跳转
mova,#00h
movp0,a
mova,p0
anla,#00fh
movr2,a;黄灯时间储入r2
lcalldel1
mova,#00h
movp0,a
mova,p0
anla,#00fh
xrla,r2
cjnea,#00h,error;```
mova,r1
adda,r2
movr3,a;黄灯加红灯时间存入r3
mova,#66h
adda,r3;判断r3是否大于99大于99则出错
jcerror
cus:
movscon,#90h;设置串行口为方式2
setbea;开中断
setbes;允许串行口中断
lcallsout;先发送红灯数据
movr0,#02h
cjner0,#00,$;等待两次中断
start:
mova,r1
mov30h,a;将绿灯时间存入30h单元
mova,r2
mov31h,a;将黄灯时间存入31h单元
mova,r3
mov32h,a;将绿灯加红灯时间存入32h单元
mova,r4
mov33h,a;将红灯时间存入33h单元
main0:
mova,32h;取红灯加黄灯时间
mov2ah,a;存入2ah倒计时显示时间
movr3,#0bfh;数码管控制码绿灯亮其他灭
mova,30h
movr7,a;取延时时间存入r7,即绿灯亮时间
main1:
lcalldel;调用一秒延时子程序并显示倒计时时间
djnzr7,main1;判断延时时间是否到没到则转main1循环
movr3,#0dfh;数码管控制码黄灯亮其他灭
mova,31h
movr7,a;取延时时间存入r7,即黄灯亮时间
main2:
lcalldel
djnzr7,main2;判断时间到否没到则循环
movr3,#7fh;数码管控制码红灯亮其他灭
mova,33h;取红灯时间
mov2ah,a;存入2ah倒计时显示时间
mova,33h
movr7,a;取延时时间存入r7,即红灯亮时间
main3:
lcalldel;调用一秒延时并显示倒计时时间
djnzr7,main3;判断时间是否到没到循环
ajmpmain0;跳转到main循环执行程序
error:
sjmperror
del:
dec2ah;倒计时时间减1
movdptr,#table;1秒延时加到计时显示子程序取表头地址存入dptr
mova,2ah;取倒计时显示时间到a中
movb,#0ah;数字10存入b中
divab;a除以b十位数存入a中个位数存入b中
movca,@a+dptr;代码装换
movr1,a;代码存入r1
mova,b;个位数存入a中
adda,r1;代码与个位相加得显示码存入a
movr2,a;显示码存入r2
disp:
mova,r2;显示码存入r2
movp1,a;送出显示码显示
mova,r3
movp0,a;输出信号灯控制码控制灯亮
t2:
movr6,#10;延时程序0.999秒12mHZ时为0.99秒
d1:
movr5,#200;6mHz时为1.98秒可改r6=#5
d2:
movr4,#248
djnzr4,$
djnzr5,d2
djnzr6,d1
ret;子程序返回
table:
db00h,10h,20h,30h,40h,
db50h,60h,70h,80h,90h
sent:
jnbri,send;不是接收,转向发送
lcallsin;接收,调用接收子程序
reti;中断返回
send:
clrti;清发送中断标志
decr0;r0减1变为1
reti;中断返回
sout:
pushpsw
pushacc;保存pswacc装状态
mova,r3;取黄灯加红灯时间放入a中
movc,p
movtb8,c;取奇偶效验为存入tb8
movsbuf,a;发送数据
popa
poppsw;恢复pswacc状态
ret;子程序返回
sin:
pushpsw
pusha;保存pswacc状态
clrri;清接收中断标志
mova,sbuf;读入缓存区内容
movc,p;取奇偶效验位
jncs1;p=c=0转移到s1
jnbrb8,error;若两次效验位不一样,则出错
ljmps2;正确则转s2
s1:
jbrb8,error;若双方效验位不一样,则出错
s2:
movr4,a;接收到的红灯时间存入r4
decr0;r0减1
popa
poppsw;恢复pswacc状态
ret;子程序返回
del1:
nop;15毫秒延时子程序12m赫兹时
;30毫秒延时子程序6m赫兹时
del2:
movr6,#50
del3:
movr7,#150
del4:
djnzr7,del4
del5:
djnzr6,del3
ret
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 交通灯