单片机十字路口交通灯设计报告含程序讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实训报告
课程名称:单片机小系统设计与制作
系别:电子工程系
专业:移动通信技术
班级:11移动通信301班
学号:
学生姓名:
指导教师:
2012年12月17日
目录
1 概述
1.课题名称……………………………………………………………………………
2.设计任务……………………………………………………………………………
3.设计意义……………………………………………………………………………
2 系统总体方案及硬件设计
1.系统方框图………………………………………………………………………2.工作原理…………………………………………………………………………3.电路原理图………………………………………………………………………4.单片机最小系统…………………………………………………………………5.时间显示电路……………………………………………………………………6.交通灯电路………………………………………………………………………
3 软件设计
1.单片机交通控制系统总体设计………………………………………………… 2.系统流程图……………………………………………………………………… 3.系统仿真电路图………………………………………………………………… 4.仿真结果分析……………………………………………………………………
4 系统软件程序的设计
1.程序主体设计流程............................................... 2.理论基础知识................................................... 3.子程序模块设计.................................................. 4.系统软件调试.................................................... 5.PROFESSIONAL仿真............................................... 6.集成开发环境KEIL ...............................................
5 系统总体原理图
6 系统程序
7 材料清单
概述
1.实训名称
单片机控制的十字路口交通灯数码管显示控制系统设计。
2.设计任务
1)完成交通灯的变化规律,就是一个十字路口分别为东西向和南北向,四个路口均有红黄绿三灯和两位LED数码显示管,及每个路口有一个人行道交通灯。
2)交通灯上电后进入初始状态即东西红灯常亮60s,南北绿灯常亮65s,第一种状态:南北绿灯亮通车,东西红灯亮禁止通行,当东西红灯亮时,东西方向的人行道为绿灯,持续60s后转第二个状态:南北绿灯灭转黄灯闪亮5次,延时5s,东西仍然红灯,东西方向人行道仍为绿灯;5s后转第三个状态:东西绿灯亮通车60s,南北转红灯禁止通行65s,南北方向人行道为绿灯持续60s ;60s后转第四个状态:东西绿灯灭转黄灯闪亮5次,延时5s,南北仍然红灯,南北方向人行道仍为绿灯。
最后循环至第一种状态。
3)用4个两位一体LED数码管(各个方向均有1个两位一体LED数码管,分别表示个位和十位)显示倒计时。
倒计时用于提醒驾驶员和行人信号灯发生变化的时间,以便他们在“停止”和“通行”两者作出合适的选择。
3.设计意义
交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1.两车道的车辆轮流放行时间太短,变化太快,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。
2.没有考虑紧急车通过时,两车道应采取的措施,比如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。
在交通灯控制系统设计过于死板,智能交通灯控制系统的设计就更显示出了它的实用意义,它能根据道路交通拥挤,交叉路口经常出现拥堵的情况。
利用单
片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率。
系统及硬件设计
1.系统方框图
2.工作原理
由软件设置交通灯的初始时间,南北方向通行65秒,东西方向通行60秒,数码管使用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。
采用中断方式实现按键的功能。
AT89C51
交通灯数码
管显示部分
复位电路
时钟电路
交通灯
东西方向EW
G Y R
南北方向NS
G Y R
系统控制
电路
3.电路原理图
RET
123a b c
a
a
1
1
b
2
b
2
c
3
c 3
u
y
r e w q q w e r y u
k k
q w e r y u p24p23
u
y r e w q
w q e r y u
p23p24
q w e r y u
k
p23p24
a
c
a
c
1
a
b
2
1
1
2
1
2
2
b
a
XTAL2
18XTAL1
19
ALE 30EA
31
PSEN 29
RST
9
P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78
P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD
17
P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1
AT89C51
X1R1
10K
C1
33pF
C2
33pF
C3
10uF
D1
LED-RED
D4
LED-RED
D9
LED-RED
D10
LED-RED R2
270
R3
270
R4
270
R5
270
R6
270
R7
270
R8
270
R9
270
R10
270
R11
270
R12
270
R13
270
D2
LED-GREEN
D5
LED-GREEN
D8
LED-GREEN D11
LED-GREEN D12
LED-YELLOW
D3
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW 23456789
1
RP1
RESPACK-8
D13
LED-RED
D14
LED-RED
D15
LED-RED
D16
LED-RED
D17
LED-RED
D18
LED-RED
D19
LED-RED D20
LED-RED D21
LED-GREEN
D22
LED-GREEN
D23
LED-GREEN
D24
LED-GREEN
D25
LED-GREEN
D26
LED-GREEN
D27
LED-GREEN
D28
LED-GREEN
R15
270
R16
270
R17
270
R18
270
R19
270
R20
270
R21
270
R22
270
R23
270
R24
270
R25
270
R26
270
R27
270
R28
270
270270
R30
270
4.单片机最小系统
RET
123a b c
XTAL2
18XTAL1
19
ALE 30EA
31
PSEN 29RST
9
P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78
P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD
17
P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1
AT89C51
X1
R1
10K
C1
33pF
C2
33pF
C3
10uF
单片机最小系统以89C51为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。
89C51单片机系列是MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS 工艺,即互补金属氧化物的HMOS 工艺, CHMOS 是CMOS 和HMOS 的结合,具有HMOS 高速度和高密度的特点,还具有CMOS 低功耗的特点。
时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz 的晶振,一个机器周期为1us,C2,C3为30pF 。
复位电路分为上电自动复位和按键手动复位,RST 引脚是复位信号的输入端,复位信号是高电平有效.上电自动复位通过电容C1和电阻R4来实现,按键手动复位是图中复位键来实现的。
5.时间显示电路
a
1
b
2
c
3
u
y
t r e w q f f
l k
w q
e r t y u
p23p24
R1
10K
D1
LED-RED
D10
LED-RED R2
270
R3
270
R4
270
R8
270
R9
270
R10
270
D2
LED-GREEN
D11
LED-GREEN D12
LED-YELLOW
D3
LED-YELLOW
D1
LED
D1
因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间(如图-4所示)。
数码管使用共阳数码管,需要接上270欧上拉电阻以提供足够大的电流来驱动数码管。
6.交通灯电路
本设计利用单片机的p1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管(如图-5所示)
(如图-4所示)
RET
123a b c
a
a
1
1
b
2
b
2
c
3
c 3
u
y
t r e w q f f
l k
p24p23
u
y r t e w q
w q e r t y u
p23p24
q w e r t y u
l k
a
c
a
c
1
a
b
2
1
1
2
1
2
2
b
a
f
f
XTAL2
18XTAL1
19
ALE 30EA
31
PSEN 29
RST
9
P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78
P P
U1
AT89C51
X1
R1
10K
C1
33pF
C2
33pF
C3
10uF
D1
LED-RED
D4
LED-RED
D9
LED-RED
D10
LED-RED R2
270
R3
270
R4
270
R5
270
R6
270
R7
270
R8
270
R9
270
R10
270
R11
270
R12
270
R13
270
D2
LED-GREEN
D5
LED-GREEN
D8
LED-GREEN D11
LED-GREEN D12
LED-YELLOW
D3
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW D13
LED-RED
D14
LED-RED
D15
LED-RED
D16
LED-RED
D17
LED-RED
D18
LED-RED
D19
LED-RED D20
LED-RED D21
LED-GREEN
D22
LED-GREEN
D23
LED-GREEN
D24
LED-GREEN
D25
LED-GREEN
D26
LED-GREEN
D27
D28
R15
270
R16
270
R17
270
R18
270
R19
270
R20
270
R21
270
R22
270
R23
270
R24
270
R25
270
R26
270
R27
270
R28
270
270270
R30
270
如图-5所示
软件设计
1.单片机交通控制系统总体设计 (1)单片机交通控制系统的通行方案设计
十字路口分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。
其具体状态如
下图所示。
说明:黑色表示亮,白色表示灭。
交通状态从状态1开始变换,直至状态4然后循环至状态1,循环,即如图2.1所示:
图1 交通状态
通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:
◆东西方向红灯亮倒计时65秒,同时绿灯亮倒计时60秒,东西向禁止通行,南北向允许通行。
倒计时到60秒后进入下一个状态。
◆同时南北方向黄灯灭,红灯亮,同时倒计时5秒。
此状态下,东西向禁止通行,南北向允许通行。
◆东西方向绿灯亮倒计时60秒,南北方向红灯亮倒计时65秒,此状态下,东西向允许通行,南北向禁止通行。
◆同时东西方向黄灯亮,南北方向红灯亮,倒计时5秒,东西向允许通行,南北向禁止通行。
除了已经正在通行中的其他所以车辆都需等待状态转换。
下面我们可以用图表表示灯状态和行止状态的关系如下:
表1交通状态及红绿灯状态
状态1 状态2 状态3 状态4
东西向禁行等待变换通行等待变换
南北向通行等待变换禁行等待变换
东西红灯 1 1 0 0
东西黄灯0 0 0 1
东西绿灯0 0 1 0
南北红灯0 0 1 1
南北绿灯 1 0 0 0
南北黄灯0 1 0 0
东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。
状态及红绿灯状态如表1所示。
说明:0表示灭,1表示亮。
(2) 单片机交通控制系统的功能要求
本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示功能。
(1)倒计时显示
倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。
驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。
倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。
(2)时间的设置
本设计中可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。
键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。
前者软件编写简单,但在按键数量较多时特别浪费I/0口资源,一般用于按键数量少的系统。
后者适用于按键数量较多的场合,但是在单片机I/0 口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。
本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。
2.程序流程图
3.系统仿真电路图
RET
1
23a b c
a
a
1
b
b
2
c
3
c
u
y
t r e w q f f
l k
w q
e r t y u
p23p24
1
a
b
1
2
2
b
a
R1
10K
C1
33pF
C3
10uF
D1
LED-RED
D4
LED-RED
D10
LED-RED R2
270
R3
270
R4
270
R8
270
R9
270
R10
270
R11
270
R12
270
R13
270
D2
LED-GREEN
D5
LED-GREEN
D11
LED-GREEN D12
LED-YELLOW
D3
LED-YELLOW
D6
LED-YELLOW
D15
LED-RED
D16
LED-RED
D19
LED-RED D20
LED-RED D21
LED-GREEN
D22
LED-GREEN
D25
LED-GREEN
D26
LED-GREEN
R21
270
R22
270
professional 仿真
4.仿真结果分析
仿真实验实现南北方向车道和东西方向车道两条交叉道路的车辆交替运行,南北方向每次通行时间设为65秒、东西方向通行时间设为60秒,时间可以在程序中修改。
同时能够实现红灯、黄灯、绿灯状态转换,红绿灯转换时间为5秒,转黄期间黄灯亮。
系统软件程序的设计
1.程序主体设计流程
全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序,红绿灯时间调整程序等。
整个软件程序方面主要分两大部分:主程序部分和中断处理程序。
流程图如图9所示。
开始
系统初始化
东西亮绿灯,南北亮红灯
调显示子程序(动态显示)
东西黄灯闪烁,南北亮红灯
东西,南北方向换向
图9 系统总流程图
设计说明:该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。
2. 理论基础知识
5.2.1定时器原理
定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和TL中的。
它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:
TC=M-C
式中,M为计数器模值。
计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=T/T0。
计算通式变为:
T=(M-TC)T0
模值和计数器工作方式有关。
在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。
就此可以算出各种方式的最大延时。
如单片机的主脉冲频率为12MHZ,经过12分频后,若采用方式0最大延时只有8.129毫秒,采用方式1最大延时也只有65.536毫秒。
这就是为什么扫描周期为50ms的原因,若使用软件则会耽搁程序流程,显然不可行。
相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。
5.2.2软件延时原理
MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
3.子程序模块设计
1.状态灯显示及判断
在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。
定义IO端口如下,其中均是低电平有效。
H_RED BIT P1.0
H_YELLOW BIT P1.1
H_GREEN BIT P1.2
L_RED BIT P1.3
L_ YELLOW BIT P1.4
L_ GREEN BIT P1.5
共有4钟状态:东西红灯亮,南北绿灯亮(0F3H);东西红灯亮,南北黄灯亮(0F5H);东西绿灯亮,南北红灯亮(0DEH);东西黄灯亮,南北红灯亮(0EEH)。
括号中是P1端口8个引脚值对应的十六进制码。
用于显示发光二极管时,部分程序如下:
东西红,南北绿,计时时间为65s、60s
mov r4,#00
mov 30h,#65
mov 31h,#60
mov p1,#11110101b
lcall q1
mov r1,31h
cjne r1,#00,w2
2. LED倒计时显示
LED计时每1秒都要刷新1次,采用的是动态显示,首先将b除以10H,整数即十位放在40H中,余数即个位放在41H中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。
具体程序如下:
q1: mov a,30h
mov b,#10
div ab
mov 41h,b
mov 40h,a
mov p2,#00000001b
mov dptr,#e
mov a,40h
movc a,@a+dptr
mov p0,a
lcall dl
mov p2,#00000010b
mov b,41h
mov dptr,#e
mov a,41h
movc a,@a+dptr
mov p0,a
lcall dl
mov a,31h
mov b,#10
div ab
mov 43h,b
mov 42h,a
mov p2,#00000100b
mov dptr,#e
mov a,42h
movc a,@a+dptr
mov p0,a
lcall dl
mov p2,#00001000b
mov b,43h
mov dptr,#e
mov a,43h
movc a,@a+dptr
mov p0,a
lcall dl
ret
4. 系统软件调试
1 professional仿真器
仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。
单片机系统开发中的仿真包括软件仿真和硬件仿真。
软件仿真这种方法主要是使用计算机软件来模拟实际的单片机运行,因此仿真与硬件无关的系统具有一定的优点。
用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。
软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最后的设计;
硬件仿真使用附加的硬件来替代用户系统的单片机并完成单片机全部或大
部分的功能。
使用了附加硬件后用户就可以对程序的运行进行控制,例如单步、全速、查看资源断点等。
2. 集成开发环境KEI L
KEIL IDE Vision3集成开发环境主要由以下部分组成:
◆u Vision2 IDE。
Ision3 IDE包括:一个工程管理器,一个功能丰富并有交互式
错误提示的编辑器选项设置生成工具,以及在线帮助。
使用visio3创建源文件并组成应用工程加以管理。
Vision3可以自动完成编译汇编链接程序的操作;
◆C51编译器和A51汇编器。
Vision3IDE创建的源文件可以被C51编译器或A51
汇编器处理生成可重定位的object文件。
KEIL C51编译器遵照ANSI C语言标准支持C语言的所有标准特性,另外还增加了几个可以直接支持89C51结构的特性。
KEIL A51宏汇编器支持89C51及其派生系列的所有指令集;
◆BL51链接器定位器。
L51链接器使用从库中提取出来的目标模块和由编译器汇
编器生成的目标模块创建一个绝对地址目标模块,绝对地址目标文件或模块包括不可重定位的代码和数据所有的代码和数据都被固定在具体的存储器单元中。
利用KEIL开发和调试系统软件流程大致如下:
◆启动Vision3,进入KEIL软件的集成开发环境;
◆利用KEIL内置的文本编辑器进行程序源文件的编辑,因为KEIL集成的文本编
辑器对中文支持不是很好,可以选择其他的编辑器(本文使用的文本编辑器是Ultraedit—32),Vision3能够自动识别外部改变了的源文件;
◆建立工程,指定针对哪种单片机进行开发,指定对源程序的编译、链接参数,
指定调试方式(本文采用外部硬件仿真器仿真调试的方式,即使TKS仿真器仿真),然后对工程进行相关设置;
◆设置好工程后即可进行编译、链接。
连接仿真器对软件进行调试。
也可以生成下载到单片机存储器上的HEX文件。
3. 系统软件调试
系统的软件调试借助于professional仿真器,在进行系统软件的连续调试
之前要先进行软件的初调,就是要使各个子程序模块运行正确,程序的运行流程
正确。
软件调试主要分以下几个步骤进行:
◆功能子程序的调试。
能子程序的调试包括运算、采样、数字滤波以及PID运算
等子程序的调试。
在调试功能子程序时,许多参数都是未知的,要根据其所需的条件,给出假定的数据,使其运行,如果能完成预定的处理功能或与手工计算的结果相符,就说明该子程序己调试通过。
调试时由小到大,由里到外。
例如,调试PID算法子程序时,先调通其包含的各个运算子程序和参数处理子程序,然后将它们连起来进行通调。
通调时,也是假定一些数据、参数和初始条件,然后运行程序。
当运算结果与手工计算的结果相同时,该算法子程序则调试完成,反之,就要进行相应的修改。
其它子程序的调试同理;
◆程序流程的调试。
序流程的调试主要是查看程序运行的步骤是否正确,在某时
刻程序运行所处的位置是否正确,是否能正确运行各个中断服务程序。
在调试过程中,先将PID算法子程序屏蔽,输出可控硅导通时间用一个固定的常数代替,在各个中断服务子程序设置断点,然后运行程序,查看程序是否能运行到所有的断点,若所有断点都能运行到,则程序流程基本正确。
去掉所
有断点,再一次运行程序,查看可控硅状态,从而判断程序流程正确,反之,若程序流程不正确,做相应的修改后,重新调试; ◆功能程序与算法程序的通调。
完成整个程序流程的调试后,将PID 等算法子程序加入,在算法子程序前或后设置断点,运行整个程序。
当程序在断点处暂停时,查看PID 计算的控制量与手工计算的值是否相同。
多运行几次,若每次的结果都正确,则说明程序各个部分互相没有矛盾,反之,则说明算法子程序和其它子程序之间有影响,需要做相应的修改后重新调。
系统总体原理图
RET
123a b c
a
a
1
1
b
2
b
2
c
3
c 3
u
y
r e w q q w e r y u
k k
q w e r y u p24p23
u
y r e w q
w q e r y u
p23p24
q w e r y u
k
p23p24
a
c
a
c
1
a
b
2
1
1
2
1
2
2
b
a
XTAL2
18XTAL1
19
ALE 30EA
31
PSEN 29
RST
9
P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78
P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD
17
P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1
AT89C51
X1R1
10K
C1
33pF
C2
33pF
C3
10uF
D1
LED-RED
D4
LED-RED
D9
LED-RED
D10
LED-RED R2
270
R3
270
R4
270
R5
270
R6
270
R7
270
R8
270
R9
270
R10
270
R11
270
R12
270
R13
270
D2
LED-GREEN
D5
LED-GREEN
D8
LED-GREEN D11
LED-GREEN D12
LED-YELLOW
D3
LED-YELLOW
D6
LED-YELLOW
D7
LED-YELLOW 23456789
1
RP1
RESPACK-8
D13
LED-RED
D14
LED-RED
D15
LED-RED
D16
LED-RED
D17
LED-RED
D18
LED-RED
D19
LED-RED D20
LED-RED D21
LED-GREEN D22
LED-GREEN
D23
LED-GREEN
D24
LED-GREEN
D25
LED-GREEN
D26
LED-GREEN
D27
LED-GREEN
D28
LED-GREEN
R15
270
R16
270
R17
270
R18
270
R19
270
R20
270
R21
270
R22
270
R23
270
R24
270
R25
270
R26
270
R27
270
R28
270
270270
R30
270
系统程序
org 0000h
ajmp st org 000bh ajmp tt
st: mov tcon ,#00000001b mov th0,#3ch
mov tl0,#0b0h
mov ie,#10000010b
setb tr0
w1: mov r4,#00
mov 30h,#65
mov 31h,#60
w2: mov p1,#11110101b
lcall q1
mov r1,31h
cjne r1,#00,w2
mov r3,#00
s: mov r4,#00h
mov 31h,#05
s1: mov p1,#11110011b
lcall q1
mov p1,#11110111b
lcall q1
mov r7,30h
cjne r7,#00,s1
cjne r3,#05,f
f: mov r4,#00
mov 30h,#65
mov 31h,#60
f1: mov p1,#11101110b
lcall q1
mov r1,31h
cjne r1,#00,f1
mov r3,#00
t: mov r4,#00h
mov 31h,#05
e1: mov p1,#11011110b
lcall q1
mov p1,#11111110b
lcall q1
mov r7,30h
cjne r7,#00,e1
cjne r3,#05,v1
v1: ajmp w1
tt: inc r4
cjne r4,#250,x
mov r4,#00h
dec 31h
dec 30h
x: mov th0,#3ch
mov tl0,#0b0h
reti
q1: mov a,30h
mov b,#10
div ab
mov 41h,b
mov 40h,a
mov p2,#00000001b
mov dptr,#e
mov a,40h
movc a,@a+dptr
mov p0,a
lcall dl
mov p2,#00000010b
mov b,41h
mov dptr,#e
mov a,41h
movc a,@a+dptr
mov p0,a
lcall dl
mov a,31h
mov b,#10
div ab
mov 43h,b
mov 42h,a
mov p2,#00000100b
mov dptr,#e
mov a,42h
movc a,@a+dptr
mov p0,a
lcall dl
mov p2,#00001000b
mov b,43h
mov dptr,#e
mov a,43h
movc a,@a+dptr
mov p0,a
lcall dl
ret
dl:mov r6,#20
d1: mov r5,#250
djnz r5,$
djnz r6,d1
ret
e:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
END
材料清单:
名称型号数量
单片机stc89c51 1
数码管四位一体 1
电阻10k 1
电阻270欧14
排阻9位 1 LED 黄灯4个LED 红灯12个LED 绿灯12个电解电容10uf 1 电容33pf 3 晶振12MHZ 1
Ic插座40引脚 1 排针 4 电路板 1。