智能交通灯的设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十届
长通杯电子设计大赛论文D组:智能交通灯
组长:
组员:
联系方式:
目录
第一章单片机介绍 (2)
1.1单片机简述 (2)
1.2 单片机主要性能特点 (2)
1.3 引脚功能介绍 (2)
1.3.1 电源及时钟引脚 (2)
1.3.2 控制引脚 (2)
1.3.3 并行I/O口引脚 (3)
1.3.4 AT89S51单片机的中断系统 (3)
1.3.5 AT89S51单片机的定时器 (4)
第二章理论分析与设计 (4)
2.1 课题分析 (4)
2.2 方案选择 (5)
2.3 程序框图 (6)
2.4 理论计算 (7)
2.4.1 P1口显示状态编码 (7)
2.4.2 定时器原理 (8)
2.5 硬件分析 (8)
2.5.1 AT89S51单片机的最小应用系统 (8)
2.5.2 显示部分 (9)
2.5.3 按钮部分 (9)
2.6 软件分析 (9)
2.6.1 系统基本功能 (9)
2.6.2 主程序分析 (10)
第三章系统调试与测试结果 (10)
3.1、软硬件调试 (10)
第四章个人感想 (11)
参考文献 (11)
附录1 电路原理图图 (12)
附录2 程序 ......................................................... 错误!未定义书签。
第一章单片机介绍
1.1单片机简述
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP (In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛
应用。
1.2 单片机主要性能特点
1、4k Bytes Flash片内程序存储器;
2、128 bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、5个中断优先级、2层中断嵌套中断;
5、6个中断源;
6、2个16位可编程定时器/计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
1.3 引脚功能介绍
1.3.1 电源及时钟引脚
VCC:AT89S51 电源正端输入,接+5V。
VSS:电源地端。
XTAL1:片内振荡器反相放大器和时钟发生器电路输入端。
用片内振荡器时,该脚接外部石英晶体和微调电容。
外接时钟源时,该脚接外部时钟振荡器的信号
XTAL2:片内振荡器反相放大器的输出端。
当使用片内振荡器,该脚连接外部石英晶体和微调电容。
当使用外部时钟源时,本脚悬空
1.3.2 控制引脚
RST:复位输入端,高电平有效。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
EA/Vpp:外部程序存储器访问允许。
当/EA保持低电平时,则在此期间外部程序存储
器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定
为RESET;当/EA端保持高电平时,此间内部程序存储器。
在对片内FLASH编程期间,Vpp
引脚接入12V编程电源。
ALE/PROG:ALE为CPU访问外部ROM或外部RAM提供一个地址锁存信号,将低8位地址
锁存在片外的地址锁存器中。
此外,单片机正常运行时,ALE端一直有一个正脉冲信号输出,频率为时钟振荡器频率的1/6。
因此可以用来驱动其他周边晶片的时钟输入。
/PROG为该引脚第二功能,在对片内FLASH编程时,作为编程脉冲输入端。
PSEN:片外程序存储器的选通信号,低电平有效。
1.3.3 并行I/O口引脚
P0口:8位,漏极开路的双向I/O口。
当外扩存储器及I/O接口芯片时,P0口作为低8
位地址总线及数据总线的分时复用端口。
P0口也可用作通用的I/O口,需加上拉电阻,这时
为准双向口。
作为通用I/O输入,应先向端口写入1。
可驱动8个LS型TTL负载。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL
门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:8位,准双向I/O口,具有内部上拉电阻。
当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址。
P2口也可作为普通的I/O口使用。
当作为通用I/O输入时,应先向端口输出锁存器写1。
P2口可驱动4个LS型TTL负载。
P3口:8位,准双向I/O口,具有内部上拉电阻,可作为通用的I/O口使用。
作为通用
I/O输入,应先向端口输出锁存器写入1。
可驱动4个LS型TTL负载。
P3口还可提供第二功能。
第二功能定义见表1.0
表1.0 P3口第二功能定义
1.3.4 AT89S51单片机的中断系统
本次设计的交通灯的模式切换是利用外部中断使单片机处理中断程序,以实现模式切换
的功能。
当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执
行的主程序,转到中断服务处理程序处理中断服务请求。
中断程序处理完后,再回到原来被中断处(断点),继续执行被中断的主程序AT89S51有5个中断源对应的入口地址见表1.1.
表1.1 5个中断源的入口地址
1.3.5 AT89S51单片机的定时器
定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。
由于时钟频率是定值,所以可根据计数值计算出定时时间。
工作方式控制寄存器TMOD 用于选择定时器/计数器的工作模式和工作方式,字节地址为89H,不能位寻址,格式见图1.1。
其中M1、M0共有4种编码,对应于4种工作方式的选择,见表1.2
图1.1 TMOD格式表1.2 M1、M0工作方式选择
第二章理论分析与设计
2.1 课题分析
使用单片机作为核心进行控制。
单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
本方案以单片机为核心器件,设计一个十字路口交通灯控制电路,分别用红、黄、绿三种颜色的发光二极管表示红灯、绿灯、黄灯。
用数码管显示四个路口的倒计时,设定好的允许通行时间为30S,即某方向的绿灯亮27S,允许该方向的车辆通行,接着黄灯闪烁3S,在此期间另一个方向显示红灯,该方向的车辆禁行。
根据车流量的实际状况通过控制按钮来调整各个方向的允许通行时间,减少交通拥挤堵塞现象。
同时本交通控制系统具有紧急模式的启动功能,当发生交通事故时,两个方向均亮红灯,事故处理后,恢复正常模式。
晚23点到次日凌晨4点为夜间模式,双向黄灯闪烁,不切换红灯和黄灯,且数码管停止倒计时。
模式的切换通过按钮控制。
当按钮被按下相应的I/O口变为低电平,向CPU发出中断请
求,中断允许后,执行中断子程序,即切换到相应的模式,中断程序执行后返回。
通过设置中断优先级寄存器IP来控制四个中断的优先级。
紧急模式由中断0控制,优先级最高,夜间模式、增加倒计时和减少倒计时由中断1控制,通过判断查询P2.0、P2.1、P2.2来决定相应的优先级。
2.2 方案选择
使用单片机的并行口直接驱动发光二极管,电路见图2.0。
由于I/O口内部有30kΩ左右的上拉电阻。
如高电平输出,则强行从I/O口输出的电流I d会造成单片机端口的损坏,如图(a)所示。
如端口引脚为低电平,能使电流I d从单片机外部流入内部,则将大大增加流过的电流值,如图(b)所示。
所以,当I/O口驱动LED发光二极管时,应该采用低电平驱动。
P0口与P1、P2、P3口相比,驱动能力较大,每位可驱动8个LSTTL输入,而P1、P2、P3口的每一位的驱动能力,只有P0口的一半。
当P0口某位为高电平时,可提供400 A的电流;当P0口某位为低电平(0.45V)时,可提供3.2mA的灌电流。
故本方案用P0口低电平输出的方式,以获得较大的驱动能力。
(a)不恰当的连接:高电平驱动(b)恰当的连接:低电平驱动
图2、0 发光二极管与AT89S51并行口的直接连接
2.3 程序框图
图2.1 主程序循环图图2.3 中断流程图
图2.2 运行过程流程图
2.4 理论计算
2.4.1 P1口显示状态编码
本设计方案的程序中通过改变P1的值来控制交通灯的状态及数码管位选端的状态。
表2.1 P1口显示状态编码
2.4.2 定时器原理
本设计方案采用6MHZ晶振,定时器采用方式1,1个机器周期为2us,我们可以把计
数器记满为零所需的计数值,即所要求的计数值设定为C,定时器计数脉冲的周期为T0,把计数初值设定为X 可得到如下计算通式,(216-X)*2*10-6=T0
初值和计数器工作方式有关。
采用方式1计时10ms,则初值X为EC78H,循环100
次为1S。
改变循环的次数则会相应地改变计时的时间。
2.5 硬件分析
2.5.1 AT89S51单片机的最小应用系统
单片机的最小系统就是让单片机能正常工作并发挥其功
能时所必须的组成部分,也可理解为是用最少的元件组成的
单片机可以工作的系统。
对51 系列单片机来说, 最小系统一
般应该包括: 单片机、时钟电路、复位电路、输入/ 输出设
备等。
以下简介时钟电路及复位电路。
1、时钟电路
XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
在XTAL1、XTAL2 的引脚上外接定时元件(一个
石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2 ~ 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。
本设计方案采用
6MHZ的晶振、两个20pF的电容及XTAL1(19引脚)和XTAL2(18引脚)构成时钟电路
2、复位电路
在单片机系统中,复位电路是非常关键的,当程序跑飞或死机时,就需要进行复位。
复位引脚RST出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST 持续为高
电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:上电自动复位和开关复位。
本设计方案采用10K的电阻,22uF的电容及Vcc组成组成复位电路。
2.5.2 显示部分
1、数码管
四个方向的共阳极数码管A~DP接单片机的P0口,通过改变P0的值来改变共阳极数码管的段码,以显示不同的数字。
位选线分别接P1.6、P1.7。
为节省I/O口采用动扫描的方式显
示倒计时,由于四个方向的倒计时显示相同,故可用P0口同时控制段码的输入。
2、LED灯
采用红、黄、绿三个颜色的LED灯代表三个颜色的交通灯,用四节1.5V的干电池通过稳压管供电,同时每个LED灯都要加330欧姆的上拉电阻。
由于同一方向的交通灯显示状态相同,南北方向的红、黄、绿灯分别接P1.0、P1.1、P1.2,东西方向的红、黄、绿灯分别接
P1.3、P1.4、P1.5。
2.5.3 按钮部分
交通灯各个模式的切换通过相应的按钮控制,各个按钮接10K的上拉电阻,再接Vcc。
当按钮按下后,相应的I/O口变为低电平,触发中断,启动相应的模式。
按钮KEY1接P3.2口,采用外部中断0控制紧急模式的切换,每启动一次双向红灯亮30S。
按钮KEY2、KEY3、KEY4
通过与门接P3.3口,分别由P2.0、P2.1、P2.2判断哪个按钮触发了中断1,进而控制夜间
模式、增加倒计时、减少倒计时的切换。
其中KEY2按下进入夜间模式,双向黄灯闪烁;KEY3按下实现倒计时加5S;KEY4按下实现倒计时减5S。
2.6 软件分析
2.6.1 系统基本功能
本系统需要采用AT89C52单片机作为中心器件来设计智能交通灯,实现以下功能:
1、初始南北绿灯亮,东西红灯亮,南北方向通车。
2、延时27s,南北方向绿灯熄灭,黄灯闪烁3次,时间为3秒。
3、黄灯闪烁后,南北方向红灯亮同时东西方向绿灯亮,东西方向开始通车。
4、延时27s,东西方向绿灯熄灭,黄灯闪烁3次,然后又切换成南北方向通车,如此重复。
5、当发生交通意外时,按下按钮KEY1,P3.2变为低电平,中断1产生,双向红灯亮,
进行交通事故的处理,30S结束后,中断返回继续执行主程序。
6、夜间模式启动后,双向黄灯每1S闪烁一次,同时数码管关闭倒计时,每启动一次持
续时间为5小时。
7、当车流量大时,通过按按钮KEY3可以将倒计时增加5S,延长允许通行时间,当车流
量小时,通过按按钮KEY4可以将倒计时减少5S,缩短允许通行时间,结束后返回正常状态。
2.6.2 主程序分析
左图为倒计时显示的部分程序,通过改变P1的值来控制LED灯和数码管的状态。
给R3赋
值30,即默认倒计时时间,调用定时器程序和数码管显示程序。
具体程序见附录2
第三章系统调试与测试结果
因本设计本身要求稳定性高、免维护、
抗干扰力强等功能,系统调试扯了验证数据
处理的精度,确保判断的准确性外,同时必
须确认各项的功能的正常运行。
3.1、软硬件调试
打开Keil软件,将生成的.hex文件加载
到protues仿真软件中,编译运行程序。
电路安装完成后,首先进行检查,即确定电路无虚焊、无短路、无断路,集成元器件是否安装正确,在确定无误后通过STC-ISP软件将刚才生
成的hex文件通过串口线烧入单片机,然后在进行调试检测系统是否正常工作。
以下为protues仿真图
图 3.1.1 正常模式仿真图图3.1.2 黄灯闪烁仿真图
图3.1.3 紧急模式仿真图图3.1.4 夜间模式仿真图
图3.1.5 增加倒计时模式仿真图
第四章个人感想
陈士玉:主要负责程序的编写。
本设计项目充分结合数字电子、模拟电子以及单片
机的相关知识,采用汇编语言编写程序。
经过不断完善,程序能准确实现系统功能。
刘璐华:主要负责论文的撰写。
通过查找相关资料,我对AT89S51单片机及相关器
件有了更深入的了解,同时也能更加熟练的使用Office软件。
王丽丽:主要负责电路板的焊接。
参加本次竞赛大大提高了我的动手能力,同时更
加深入了解了各个芯片的引脚功能。
参考文献
[1]张毅刚.单片机原理及其应用[M]. [M]北京:高等教育出版社,2004.
[2]何立民. MCS--51系列单片机应用系统设计[M].北京:北京航空航天大学出版社,1990.
[3]林志琦. 基于Protues的单片机可视化软硬件仿真[M].北京:北京航空航天大学出版社,
1990.
[4] 吴洪潭,肖艳萍,赵伟国.单片机原理及应用系统设计[M].北京:国防工业出版社,2005.
[5]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996.
[6] 周润景,张丽娜. 基于Protues的电路及单片机系统设计与仿真[ M ] . 北京:航空航天大学出版社,2006.
[7]华成英、童诗白主编,《模拟电子技术基础》(第四版)[M].高等教育出版社,2006.
[8] 于孟尝 .数字电子技术基础简明教程(第三版)[M]. 北京:高等教育出版社,2006.
附录1 电路原理图图
附录2 程序
ORG 0000H
SJMP MAIN
ORG 0003H ;中断0入口地址
LJMP TT1
ORG 0013H ;中断1入口地址
LJMP TT2
MAIN:SETB IT0
SETB EA ;打开中断SETB EX0
SETB EX1
SETB IT1
SETB PX0 ;外部中断0
设置为高优先级
CLR PX1 ;外部中断1设置为低优先级
MOV R2,#0
EE1:MOV R3,#30
FF1:MOV P1,#35H
;南北方向绿灯亮,东西
方向红灯亮
L00P1:LCALL TIMER1 ;启动定时器1程序,开始
计时
LCALL Z1 ;每10ms将
数码管扫描一次
INC R2
CJNE R2,#100,L00P1 ;计
时1s倒计时减1
MOV R2,#0
DEC R3
CJNE R3,#30,BB1 ;小于5
被设成30后,跳到下一个状态
LJMP EE2
BB1:CJNE R3,#0,BB2 ;在6,7,8时中断减5和正常倒计时到3时,保证跳
到黄灯闪烁的程序
BB2:CJNE R3,#1,BB3
LJMP L00P2
BB3:CJNE R3,#2,BB4
LJMP L00P2
BB4:CJNE R3,#3,L00P1 ;
判断是否为最后3S
L00P2:CJNE R3,#30,BB5 ;
若R3小于5被设成30
后,跳到下一个状态
LJMP EE2
BB5:MOV P1,#33H ;南
北方向黄灯亮,东西方
向红灯
CJNE R3,#30,BB6 ; 若
R3小于5被设成30后,
跳到下一个状态
LJMP EE2
BB6:CJNE R3,#6,BB7 ;R3
在倒计时最后3秒被加5
变成6,7,8时,跳转到该
状态的前27S循环体内
LJMP FF1
BB7:CJNE R3,#7,BB8
LJMP FF1
BB8:CJNE R3,#8,BB9
LJMP FF1
BB9:LCALL Z2
CJNE R3,#30,BB10 ; 若
R3小于5被设成30后,
跳到下一个状态
LJMP EE2
BB10:CJNE
R3,#6,BB11 ;R3在倒计
时最后3秒被加5变成
6,7,8时,跳转到该状态
的前27S循环体内
LJMP FF1
BB11:CJNE R3,#7,BB12
LJMP FF1
BB12:CJNE R3,#8,BB13
LJMP FF1
BB13:MOV P1,#37H ;
南北方向黄灯灭,东西
方向红灯
CJNE R3,#30,BB14 ;
若R3小于5被设成30
后,跳到下一个状态
LJMP EE2
BB14:CJNE
R3,#6,BB15 ;R3在倒计
时最后3秒被加5变成
6,7,8时,跳转到该状态
的前27S循环体内
LJMP FF1
BB15:CJNE R3,#7,BB16
LJMP FF1
BB16:CJNE R3,#8,BB17
LJMP FF1
BB17:LCALL Z2
CJNE R3,#30,BB18 ; 若
R3小于5被设成30后,
跳到下一个状态
LJMP EE2
BB18:CJNE
R3,#6,BB19 ;R3在倒计
时最后3秒被加5变成
6,7,8时,跳转到该状态
的前27S循环体内
LJMP FF1
BB19:CJNE R3,#7,BB20
LJMP FF1
BB20:CJNE R3,#8,BB21
LJMP FF1
BB21:DJNZ R3,L00P2
;南北方向红灯亮,东西
方向绿灯亮
EE2:MOV R3,#30
FF2:MOV P1,#2EH
L00P3:LCALL TIMER1
LCALL Z1
INC R2
CJNE R2,#100,L00P3
MOV R2,#0
DEC R3
CJNE R3,#30,CC1 ;小于5
被设成30后,跳到下一个状态
LJMP EE1
CC1:CJNE R3,#0,CC2 ;在6,7,8时中断减5和正常
计时到3时,跳到黄灯
闪烁程序
LJMP EE1
CC2:CJNE R3,#1,CC3
LJMP L00P5
CC3:CJNE R3,#2,CC4
LJMP L00P5
CC4:CJNE R3,#3,L00P3
L00P5:CJNE R3,#30,CC5 LJMP EE1
CC5:MOV P1,#1EH ;东西方向黄灯亮,南北方向
红灯
CJNE R3,#30,CC6 ;小于5被设成30后,跳到下一个状态
LJMP EE1
CC6:CJNE R3,#6,CC7 ;R3在倒计时最后3秒被加5变成6,7,8时,跳转到该状态的前27S循环体内LJMP FF2
CC7:CJNE R3,#7,CC8
LJMP FF2
CC8:CJNE R3,#8,CC9
LJMP FF2
CC9:LCALL Z2
CJNE R3,#30,CC10 ;小于5被设成30后,跳到下一个状态
LJMP EE1
CC10:CJNE
R3,#6,CC11 ;R3在倒计
时最后3秒被加5变成6,7,8时,跳转到该状态
的前27S循环体内
LJMP FF2
CC11:CJNE R3,#7,CC12
LJMP FF2
CC12:CJNE R3,#8,CC13
LJMP FF2
CC13:MOV P1,#3EH ;东
西方向黄灯灭,南北方
向红灯
CJNE R3,#30,CC14 ;小
于5被设成30后,跳到
下一个状态
LJMP EE1
CC14:CJNE
R3,#6,CC15 ;R3在倒计
时最后3秒被加5变成
6,7,8时,跳转到该状态
的前27S循环体内
LJMP FF2
CC15:CJNE R3,#7,CC16
LJMP FF2
CC16:CJNE R3,#8,CC17
LJMP FF2
CC17:LCALL Z2
CJNE R3,#30,CC18 ;小
于5被设成30后,跳到
下一个状态
LJMP EE1
CC18:CJNE
R3,#6,CC19 ;R3在倒计
时最后3秒被加5变成6,
7,8时,跳转到该状态
的前27S循环体内
LJMP FF2
CC19:CJNE R3,#7,CC20
LJMP FF2
CC20:CJNE R3,#8,CC21
LJMP FF2
CC21:DJNZ R3,L00P5
LJMP MAIN
;紧急模式中断0程序
TT1:MOV 42H,P1
MOV 40H,R2 ;保护现场
MOV 41H,R3
MOV R0,#0
MOV R3,#30 ;每启动一
次持续30S
MOV P1,#36H ;双向红
灯
L00P6: MOV
TMOD,#01H ;启动定时器
MOV TH0,#0ECH
MOV TL0,# 78H
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
LCALL Z1
INC R2
CJNE R2,#100,L00P6
MOV R2,#0
DEC R3
CJNE R3,#0,L00P6
MOV R2,40H ;恢复现
场
MOV R3,41H
MOV P1,42H
RETI
;外部中断1包括夜间模
式,增加倒计时,减少
倒计时
TT2:JB P2.0,NEXT1 ;夜间
模式
LJMP INT_IR3
NEXT1:JB P2.1,NEXT2 ;增
加倒计时
LJMP INT_IR2
NEXT2:LJMP INT_IR1 ;减
少倒计时
ORG 1000H ;夜间模
式中断入口地址
INT_IR3:MOV R0,#0
MOV R1,#0
MOV P1,#1BH ;双向黄灯亮
LCALL Z3
MOV P1,#3FH ;双向黄灯灭
LCALL Z3
INC R0
CJNE R0,#200,INT_IR3 ;每启动一次黄灯闪烁5小时
MOV R0,#0
INC R1
CJNE R1,#18,INT_IR3 INC R4
CJNE R4,#5,INT_IR3 MOV R3,#30H
RETI
ORG 1100H ;倒计时增加5秒
INT_IR2:INC R3
INC R3
INC R3
INC R3
INC R3
RETI
ORG 1200H ;倒计时减少5秒
INT_IR1:CJNE R3,#1,LL1 MOV R3,#30
LJMP LL6
LL1:CJNE R3,#2,LL2 MOV R3,#30
LJMP LL6
LL2:CJNE R3,#3,LL3 MOV R3,#30
LJMP LL6
LL3:CJNE R3,#4,LL4 MOV R3,#30
LJMP LL6
LL4:CJNE R3,#5,LL5 MOV R3,#30
LJMP LL6
LL5:DEC R3 ;减5秒DEC R3
DEC R3
DEC R3 DEC R3
LL6:RETI
;定时器1定时10MS子
程序
TIMER1:MOV TMOD,#10H
MOV TH1,#0ECH
MOV TL1,# 78H
SETB TR1
JNB TF1,$
CLR TF1
CLR TR1
RET
;数码管显示倒计时子程
序
Z1:CLR P1.6
CLR P1.7
MOV A,R3
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
SETB P1.6
LCALL DL1MS
CLR P1.6
MOV A,B
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
SETB P1.7
LCALL DL1MS
CLR P1.7
RET
;黄灯闪烁时调用数码管
显示程序
Z2:LCALL TIMER1
LCALL Z1
INC R2
CJNE R2,#50,Z2
MOV R2,#0
RET
;延时0.5S
Z3:LCALL TIMER1
INC R2
CJNE R2,#50,Z3
MOV R2,#0
RET
;延时1MS
DL1MS:MOV R6,#250
DJNZ R6,$
RET
TAB:DB
0C0H,0F9H,0A4H,0B0H,99
H,92H,82H,0F8H,80H,90H
END。