交通灯课程设计.docx
- 文档编号:3776561
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:32
- 大小:195.39KB
交通灯课程设计.docx
《交通灯课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
交通灯课程设计
仿真图(上)、接线图(下)
功能确定键
加
减
确定键
中断
注:
设定各路时间时,先按下中断,再按功能确定键,再按加减键实现相应的时间加减,结束时按确定键。
单片机主控制单元
主控制单元是单片机选用市场上常见的美国ATMEL公司的AT89C51作为控制元件,以下是一些AT89C51的介绍:
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如下所示
主要特性:
·与MCS-51兼容
·4K字节可编程FLASH存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24MHz
·三级程序存储器锁定
·128×8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P1口可作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口可接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
在设计中只用到单片机的基本功能,未使用到P3口,所用单片机AT89C51见下图3.1所示:
图3.1AT89C51
(1)时钟电路:
如下图3.2连接即可构成自激振荡电路,振荡频率取决于适应晶体的振荡频率,范围可取1.2~12MHZ,C1、C2主要起频率微调和稳定作用,电容可取5~30pF。
图3.2时钟电路
(2)复位电路:
如下图3.3,单片机的复位是靠外部电路实现的,在时钟电路工作后,只要在RESET端加上大于10MS的高电平,就能使单片机复位。
图3.3复位电路
(3)电源模块:
稳压电源单元的核心器件是目前常用的三端固定式稳压管——7805。
7805是一个有三个管脚的稳压管,Vint、GND和Vout。
在本设计中,工频电压220V通过变压器得到15V—20V伏的交流电压。
接着进入整流桥D1和滤波电容C4通过整流桥整流滤波后得到的直流输入电压接在7805的输入端Vint,这时从Vout端输出的电压就是5V,其中滤波电容C4的典型值一般取470pF。
电源模块主要为单片机的工作提供电源。
但在仿真中不需要使用电源。
图3.4电源模块
交通灯与交通工具
从最早的手牵皮带到20世纪50年代的电气控制,从采用计算机控制到现代化的电子定时监控,交通信号灯在科学化、自动化上不断地更新、发展和完善。
交通指挥灯是非裔美国人加莱特?
摩根在1923年发明的。
此前,铁路交通已经使用自动转换的灯光信号有一段时间了。
但是由于火车是按固定的时刻表以单列方式运行的,而且火车要停下来不是很容易,因此铁路上使用的信号只有一种命令:
通行。
公路交通的红绿灯则不一样,它的职责在很大程度上是要告诉汽车司机把车辆停下来。
开车的人谁也不愿意看到停车信号。
美国夏威夷大学心理学家詹姆斯指出,人有一种将刹车和油门与自尊相互联系的倾向。
他说:
驾车者看到黄灯亮时,心里便暗暗作好加速的准备。
如果此时红灯亮了,马上就会产生一种失望的感觉。
他把交叉路口称作“心理动力区”。
如果他的理论成立的话,这个区域在佛罗伊德心理学理论中应该是属于超我(superego)而非本能(id)的范畴。
新式的红绿灯能将闯红灯的人拍照下来。
犯事的司机不久就会收到罚款单。
有的红绿灯还具备监测车辆行驶速度的功能。
程序:
ORG0000H
LJMPMAIN
ORG0003H
LJMPWITE
ORG000BH
LJMPSERVE
ORG0013H
LJMPTIME
ORG001BH
LJMPWW
ORG0100H
MAIN:
MOV30H,#20;主红置初值
MOV31H,#30;主绿
MOV32H,#06;主黄
MOV33H,#04;支黄
MOV70H,#100
MOV71H,#0FFH;调整标志
MOV72H,#12
MOV73H,#00
MOV74H,#00
MOV75H,#00
MOV76H,#00
MOV77H,#00
MOV78H,#00
MOV79H,#00
MOVTMOD,#11H
MOVTL0,#0F0H
MOVTH0,#0D8H
MOVTL1,#0F0H
MOVTH1,#0D8H
SETBET0;开放T0中断
SETBET1
CLRIT0;外中断电平有效
CLRIT1
SETBEX0;开外中断0
SETBEX1
SETBEA;开中断总开关
SETBPT0
SETBPX1
MOVP2,#0FFH;按键输入状?
SETBTR0
LOOP1:
MOV26H,#0FFH
MOVP1,#0FFH
MOVA,32H
ADDA,30H;支绿=主红+支黄
MOV41H,A;将支路显示计数减的数存入41H中
MOVR0,41H;置入计数时间
CLRP1.2;主红灯开
CLRP1.4;///支绿灯开
MOV40H,30H;将主路显示计数减的数存入40H中
LX1:
MOV41H,R0
MOVR1,#100;1S时间中断次数
L1:
SETBTR1;开定时
MOV25H,#0FFH;判断中断标志
LCALLLOOP;调用显示子程序
MOVA,26H
CJNEA,#00H,Y1
SJMPLOOP1
Y1:
MOVA,40H
DECA
MOV40H,A;1S时间到主红显存减1
CJNEA,#00H,L11;支红显示完置入支黄
MOV40H,32H;主红时间到置入主黄时间
SETBP1.0;关主红灯
CLRP1.2;开主黄灯
L11:
DJNZR0,LX1;本状态时间未到跳回
;///主红支绿-->主黄支绿状态结束
MOVA,31H;
SUBBA,33H;支红=主绿-支黄
MOV41H,A;将支红显存入41H中
SETBP1.2;关主黄
SETBP1.4;关支绿
CLRP1.1;开主绿
CLRP1.3;开支红
MOV40H,31H;
MOVR0,40H;置入主绿时间
LX2:
MOV40H,R0
MOVR1,#100;1S时间中断次数
MOV25H,#0FFH
SETBTR0;开定时
LCALLLOOP;调用显示子程序
MOVA,26H
CJNEA,#00H,Y2
SJMPLOOP1
Y2:
MOVA,41H
DECA
MOV41H,A;1S时间到支红显存减1
CJNEA,#00H,LM2;
MOV41H,33H;支红时间到置入支黄
SETBP1.3;关支红灯
CLRP1.5;开支黄灯
LM2:
DJNZR0,LX2;本状态时间未到跳回
SETBP1.1;关主绿
SETBP1.5;关支黄
LJMPLOOP1
;夜间模式
WAN:
CLRTR1
MOVP1,#0CH
MOVP0,#80H
MOVP2,#0F0H
LCALLD1S
MOVP1,#0FFH
MOVP2,#0FFH
LCALLD1S
JNBP1.6,WAN
SJMPR11
R11:
SETBTR1
MOV26H,#00H
RET
LOOP:
JBP2.0,LG1
LCALLD5MS
JNBP2.0,$
LCALLD5MS
LCALLSET1;闹钟设置时间开启
LG1:
JBP2.3,LG2
LCALLD5MS
JNBP2.3,$
LCALLD5MS
LCALLCL1;闹钟设置关时间
LG2:
MOVA,79H
JNZJ1;闹钟没有设置关时间自动置一分钟
MOV77H,75H
MOVA,76H
INCA
MOV78H,A
J1:
MOVA,77H
XRLA,72H
CJNEA,#00H,LM3
MOVA,78H
XRLA,73H
CJNEA,#00H,LM3
SETBP1.6;关闹钟
LM3:
MOVA,75H
XRLA,72H
CJNEA,#00H,LM1
MOVA,76H
XRLA,73H
CJNEA,#00H,LM1
CLRP1.6;开闹钟
LM1:
MOVDPTR,#TAB;指向显示表
MOVA,72H;时显
MOVB,#10
DIVAB
MOVCA,@A+DPTR;
MOVP0,A;
SETBP3.0;
LCALLD1MS
CLRP3.0
MOVA,B
MOVCA,@A+DPTR;
MOVP0,A
SETBP3.1
LCALLD1MS
CLRP3.1
MOVA,73H;分显
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP0,A
SETBP3.4
LCALLD1MS
CLRP3.4
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
SETBP3.5
LCALLD1MS
CLRP3.5
MOVA,74H;秒显
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP0,A
SETBP3.6
LCALLD1MS
CLRP3.6
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
SETBP3.7
LCALLD1MS
CLRP3.7
;时间显示结束
;//显示子程序
JBP1.6,H0
LCALLD5MS
LJMPWAN
H0:
MOVA,25H;交通灯1秒时间到标志
CJNEA,#00H,BB
RET
BB:
JNBP1.6,RE1
MOVDPTR,#TAB;指向显示表
MOVA,40H;主显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR;输出主显高位
MOVP0,A;段选输出
SETBP2.4;位选开通
LCALLD1MS
CLRP2.4
MOVA,B
MOVCA,@A+DPTR;输出主显低位
MOVP0,A
SETBP2.5
LCALLD1MS
CLRP2.5
;///主显示结束
MOVA,41H;支显示置入
MOVB,#10
DIVAB
MOVCA,@A+DPTR;输出支显示高位
MOVP0,A;段选输出
SETBP2.6;位选开通
LCALLD1MS
CLRP2.6
MOVA,B
MOVCA,@A+DPTR;输出支显示低位
MOVP0,A
SETBP2.7
LCALLD1MS
CLRP2.7
LJMPLOOP
RE1:
RET
WITE:
MOVP2,#0FFH;使P2口低四位成输入状态高四位显管开通
MOVP3,#0FFH
MOVP1,#0C0H;所以灯亮
MOVP0,#80H;所有显示八
JBP2.3,X0;有按下就跳出中断结束
LCALLD5MS
RETI
X0:
JBP2.0,WITE;无功能选项则跳回扫描
LCALLD5MS
JNBP2.0,$
LCALLD5MS
CLRP2.6;关支显示管
CLRP2.7;
W0:
MOVP1,#0FEH;开主红灯亮
MOVDPTR,#TAB;指向显示表
MOVA,30H;主红灯时间显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR;输出主显高位
MOVP0,A;段选输出
SETBP2.4;位选开通
LCALLD1MS
CLRP2.4
MOVA,B
MOVCA,@A+DPTR;输出主显低位
MOVP0,A
SETBP2.5
LCALLD1MS
CLRP2.5
JBP2.1,X1;加无按动跳转到减
LCALLD5MS
JNBP2.1,$
LCALLD5MS
MOVA,30H
INCA
MOV30H,A;加1调整
X1:
JBP2.2,X2
LCALLD5MS
JNBP2.2,$
LCALLD5MS
MOVA,30H
DECA
MOV30H,A;
X2:
JBP2.3,X3
LCALLD5MS
MOV26H,#00H
RETI
X3:
JBP2.0,W0;
LCALLD5MS
JNBP2.0,$
LCALLD5MS;///主绿灯时间设置
W1:
MOVP1,#0FDH;开主红灯亮
MOVDPTR,#TAB;指向显示表
MOVA,31H;主红灯时间显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR;输出主显高位
MOVP0,A;段选输出
SETBP2.4;位选开通
LCALLD1MS
CLRP2.4
MOVA,B
MOVCA,@A+DPTR;输出主显低位
MOVP0,A
SETBP2.5
LCALLD1MS
CLRP2.5
JBP2.1,XX1;加无按动跳转到减
LCALLD5MS
JNBP2.1,$
LCALLD5MS
MOVA,31H
INCA
MOV31H,A;加1调整
XX1:
JBP2.2,XX2
LCALLD5MS
JNBP2.2,$
LCALLD5MS
MOVA,31H
DECA
MOV31H,A;
XX2:
JBP2.3,XX3
LCALLD5MS
MOV26H,#00H
RETI
XX3:
JBP2.0,W1;
LCALLD5MS
JNBP2.0,$
LCALLD5MS
;///主黄灯时间设置
W2:
MOVP1,#0FBH;开主黄灯亮
MOVDPTR,#TAB;指向显示表
MOVA,32H;主红灯时间显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR;输出主显高位
MOVP0,A;段选输出
SETBP2.4;位选开通
LCALLD1MS
CLRP2.4
MOVA,B
MOVCA,@A+DPTR;输出主显低位
MOVP0,A
SETBP2.5
LCALLD1MS
CLRP2.5
JBP2.1,XY1;加无按动跳转到减
LCALLD5MS
JNBP2.1,$
LCALLD5MS
MOVA,32H
INCA
MOV32H,A;加1调整
XY1:
JBP2.2,XY2
LCALLD5MS
JNBP2.2,$
LCALLD5MS
MOVA,32H
DECA
MOV32H,A;
XY2:
JBP2.3,XY3
LCALLD5MS
MOV26H,#00H
RETI
XY3:
JBP2.0,W2;
LCALLD5MS
JNBP2.0,$
LCALLD5MS
;///支黄灯时间设置
W3:
MOVP1,#0DFH;开主红灯亮
MOVDPTR,#TAB;指向显示表
MOVA,33H;主红灯时间显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR;输出主显高位
MOVP0,A;段选输出
SETBP2.6;位选开通
LCALLD1MS
CLRP2.6
MOVA,B
MOVCA,@A+DPTR;输出主显低位
MOVP0,A
SETBP2.7
LCALLD1MS
CLRP2.7
JBP2.1,XZ1;加无按动跳转到减
LCALLD5MS
JNBP2.1,$
LCALLD5MS
MOVA,33H
INCA
MOV33H,A;加1调整
XZ1:
JBP2.2,XZ2
LCALLD5MS
JNBP2.2,$
LCALLD5MS
MOVA,33H
DECA
MOV33H,A;
XZ2:
JBP2.3,XZ3
LCALLD5MS
MOV26H,#00H
RETI
XZ3:
JBP2.0,W3;
LCALLD5MS
JNBP2.0,$
LCALLD5MS
LJMPW0
;时间及时、
SERVE:
PUSHPSW
PUSHACC
MOVTL0,#0F0H
MOVTH0,#0D8H
DJNZ70H,RE
MOV70H,#100
MOVA,74H
INCA
MOV74H,A
CJNEA,#60,RE;秒满60
MOV74H,#00H
MOVA,73H
INCA
MOV73H,A
CJNEA,#60,RE
MOV73H,#00H;分满60
MOVA,72H
INCA
MOV72H,A
CJNEA,#24,RE;时满24
RE:
POPACC
POPPSW
RETI
;时间设置
TIME:
MOVP3,#0FFH
MOVP0,#80H;所有显示八
MOVP2,#0FFH
JBP2.3,X11;有按下就跳出中断结束
LCALLD5MS
LJMPBACK1
X11:
JBP2.0,TIME;无功能选项则跳回扫描
LCALLD5MS
JNBP2.0,$
LCALLD5MS
MOVP3,#0CH;关所有显示
W00:
MOVDPTR,#TAB;指向显示表
MOVA,72H;时显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP0,A
SETBP3.0
LCALLD1MS
CLRP3.0
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
SETBP3.1
LCALLD1MS
CLRP3.1
JBP2.1,X12;加无按动跳转到减
LCALLD5MS
JNBP2.1,$
LCALLD5MS
MOVA,72H
INCA;时加1
MOV72H,A
X12:
JBP2.2,X21
LCALLD5MS
JNBP2.2,$;时减1
LCALLD5MS
MOVA,72H
DECA
MOV72H,A
X21:
JBP2.3,X33;确定跳回
LCALLD5MS
LJMPBACK1
X33:
MOVA,72H
CJNEA,#24,C0
MOV72H,#00H
SJMPXC1
C0:
CJNEA,#0FFH,XC1
MOV72H,#23
XC1:
JBP2.0,W00
LCALLD5MS
JNBP2.0,$
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 课程设计