您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页单片机交通灯课程设计报告(含电路图,源程序)

单片机交通灯课程设计报告(含电路图,源程序)

来源:华佗小知识
摘 要 .................................................................... 错误!未定义书签。 1. 引言 ................................................................. 错误!未定义书签。 2. 总体设计方案 ................................................................................... 2 2.1.

设计思路 ........................................ 2

2.1.1.设计目的 ........................................ 2 2.1.2.设计任务和内容 .................................. 3 2.1.3.方案比较、设计与论证 ............................ 3 2.1.4.芯片简介 ........................................ 6 2.2.

设计方框图 ..................................... 12

3. 设计原理分析 ................................................................................. 13 3.1. 3.2. 3.3.

交通灯显示时序的理论分析与计算 ................. 13 交通灯显示时间的理论分析与计算 ................. 15 电路模块 ....................................... 16

3.3.1.LED数码管显示模块 ............................. 16 3.3.2.LED红绿灯显示模块 ............................. 19 3.3.3.复位电路 ...................................... 22 3.3.4.晶振电路 ...................................... 23 4. 结束语.............................................................................................. 23

1

5. 参考文献 ........................................................ 错误!未定义书签。 6. 附录 .................................................................................................. 24 6.1. 6.2. 6.3

附录1:程序清单 .................................................................... 24 附录2:电路设计总图 ............................................................ 32 附录3:实物图 ....................................... 错误!未定义书签。

1. 总体设计方案

1.1. 设计思路 1.1.1.

设计目的

(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分

的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正使用。 (3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

(4)提高利用已学知识分析和解决问题的能力。 (5)提高实践动手能力。

2

1.1.2. 设计任务和内容

1.1.2.1. 设计任务

单片机采用用ATS52芯片,使用发光二极管(红,黄,绿)代表各个路口的交通灯,用8段数码管对转换时间进行倒时(东西路口15秒,南北路口25秒,黄灯时间5秒)。 1.1.2.2. 设计内容

(1)设计并绘制硬件电路图 (2)制作PCB并焊接好元器件

(3)编写程序并将调试好的程序固化到单片机中 1.1.3.

方案比较、设计与论证

1.1.3.1. 电源提供方案

为使模块稳定工作,须有可靠电源,采用单片机控制模块提供电源。此方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。 综上所述,我们选择第二种方案。 1.1.3.2. 复位方案

复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免冗长,本设计采用按键复位,在芯片的复位端口外接复位电路,通过按键对单片机输入一个高电平脉冲,达到复位的目的。

3

1.1.3.3. 输入方案 方案一:

采用S52扩展I/O 口及键盘,显示等。该方案的优点是: 使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。 方案二:

直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用2个按键,分别是K1、K2。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二 1.1.3.4. 显示界面方案

该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案: 方案一:

完全采用数码管显示。这种方案只显示有限的符号和数码字符,无法胜任题目要求。 方案二:

完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。

4

方案三:

采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。 设计方框图

整个设计以ATS52单片机为核心,由数码管显示,LED数码管显示,复位电路组成。 硬件模块入图2-1。

ATS52单

片机

数码管显示 LED数码管晶振电路

显示

复位电路

1.1.3.5. 交通管理的方案论证

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。指示灯燃亮的方案如表2。

5

25S 5S 25S 5S „„ 东西红灯红灯绿灯黄灯„„ 道 亮 亮 亮 亮 南北绿灯黄灯红灯红灯„„ 道 亮 亮 亮 亮 表2说明:

(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通

过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为25秒。

(2)黄灯5秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南

北道车辆禁止通过,行人通行。时间为25秒。

(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样

行人和车辆就能安全畅通的通行。 1.1.4.

芯片简介

1.ATS52单片机简介 其引DIP封装的脚图如下:

6

主要性能

与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz~33Hz 、 三级加密程序存储器 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。 功能特性描述

Ats52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得

7

ATS52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 ATS52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,ATS52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash ATS52

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻

辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个

8

TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入

口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2

的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)

P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个

TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入

口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

9

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)

时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用

8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个

TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入

口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为ATS52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1)

10

P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当ATC52由外部程序存储器取指令(或数据)时,

11

每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,

当然这必须是该器件是使用12V编程电压Vpp。

1.2. 设计方框图

各路口红绿灯LED倒计时显示 晶振源 复位 ATS52

12

2. 设计原理分析

2.1. 交通灯显示时序的理论分析与计算

对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量= 车流 / 时间 来表示。 先设定一些标号如图2-1 所示。

说明:

此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西路口灯。

图2-2 所示为一种红绿灯规则的状态图,分别设定为S1、S2、S3、S4,交通灯以这四的状态为一个周期,循环执行(见图2-3)。

13

图2-1

请注意图2-1b和图2-1d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。 依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图2-3 可以看出,相邻路口的灯它们的状态在相位上相差180°。因此最终只需写出一组S1、S2、S3、S4的逻辑状态表。 如表2-1 所示。

14

表2-1

表中的“×”代表是红灯亮(也代表逻辑上的0),“√”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值。 2.2. 交通灯显示时间的理论分析与计算

东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且S1、S2、S3、S4各个状态保持的时间之有严格的对应关系,其公式如下示。

15

T-S1+T-S2=T-S3 T-S2=T-S4 T-S1=T-S3

我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参考 2.3. 电路模块 2.3.1.

(1)

LED数码管显示模块

静态显示方式:静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。

静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占输出线。随着显示器位数的增加,需要的I/O口线也将增加。

(2)动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个

16

数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。 数码管显示子程序:

DISP: MOV A,R2 MOV B,#10 DIV AB MOV 60H,A MOV 61H,B MOV A,R3 MOV B,#10 DIV AB MOV 62H,A MOV 63H,B MOV 40H,#04H MOV R5,#0FEH MOV R0,#60H LLP: MOV A,@R0

17

MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,R5 MOV P2,A LCALL DELAY1

MOV P2, RL A MOV R5,A INC R0 DJNZ 40H,LLP RET

DELAY1: ; MOV R4,#12 DL2: MOV R7,#12 DJNZ R7,$ DJNZ R4,DL2 RET

TABLE:DB 3FH,24H,5dH,75H,66H DB 73H,7bH,25H,7fH,77H END

#0FFH ;令显示器熄灭,以免产生残影延时子程序 18

2.3.2. LED红绿灯显示模块

本实验有四种状态:

状态1, 东西绿灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BBH。 子程序:

ST1: MOV P1,#0EBH ;第一个状态,主干道亮绿灯、支干道亮红灯; CJNE R1,#0FFH,TZ1 MOV R1,#00H DEC 20H DEC 23H TZ1: MOV R2,20H MOV R3,23H

LCALL DISP ;调用显示子程序。 MOV A,20H CJNE A,#00H,ST1 MOV 20H,#25

状态2, 东西黄灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BDH。 子程序:

ST2: MOV P1,#0EDH ;第二个状态,主干道亮黄灯、支干道亮红灯;

19

CJNE R1,#0FFH,TZ2 MOV R1,#00H DEC 21H DEC 23H TZ2: MOV R2,21H MOV R3,23H

LCALL DISP ;调用显示子程序。 MOV A,21H CJNE A,#00H,ST2 MOV 21H,#05

状态3, 东西红灯亮,南北绿灯亮,此时P1.0口—P1.7口的高低电平为#0DEH。 子程序:

ST3: MOV P1,#0BEH ;第三个状态,主干道亮红灯、支干道亮绿灯; CJNE R1,#0FFH,TZ3 MOV R1,#00H DEC 24H DEC 22H TZ3: MOV R2,24H MOV R3,22H

LCALL DISP ;调用显示子程序。

20

MOV A,22H CJNE A,#00H,ST3 MOV 22H,#15

状态4, 东西红灯亮,南北黄灯亮,此时P1.0口—P1.7口的高低电平为#0EEH。再采用显示子程序与延时子程序可使LED显示灯按照要求点亮。 子程序:

ST4: MOV P1,#0DEH ;第四个状态,主干道 亮红灯、支干道亮黄灯; CJNE R1,#0FFH,TZ4 MOV R1,#00H DEC 24H DEC 21H TZ4: MOV R2,24H MOV R3,21H

LCALL DISP ;调用显示子程序。 MOV A,21H CJNE A,#00H,ST4 MOV 21H,#05 MOV 24H,#20 LJMP ST1

21

程序初始化 状态1(S1) 状态2 (S2) 状态3(S3) 状态4(S4)

2.3.3.

复位电路

复位方式有多种,本设计采用按键复位。接线图如图程序3.1复位电路, 框图

在设定的定时时间内,S52必须在RST引脚产生一个由高到低的电平变化,以清内部定时器.

22

2.3.4. 晶振电路

晶振电路原理图如3-2:

3-2 晶振模块原理图

选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取30pF,晶振为30MHz。 3. 结束语

通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。

在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。

综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资

23

料以及和周围同学交流。

由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这需要在实践中进一步完善。

当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。 附录

3.1. 附录1:程序清单 ORG 0000H LJMP MAIN ORG 0003H LJMP INTT0 ORG 0013H LJMP INTT1 ORG 001BH LJMP TT1

24

ORG 0100H

TT1: MOV TH1,#0D8H ;定时器1,定时10us MOV TL1,#0F0H DJNZ R6,EXIT

MOV R6,#100 ; MOV R1,#0FFH EXIT: RETI

INTT0:MOV P1,#0BEH ; JB P3.4,$ RETI

INTT1:MOV P1,#0BBH ; JB P3.4,$ RETI ORG 1000H

MAIN: MOV R6,#100 ; 定时器定时100次外部中断0, 外部中断1, 主程序;

25

MOV R1,#00H

MOV TMOD,#10H ;初始化 MOV TH1,#0D8H MOV TL1,#0F0H MOV IE,#8DH MOV 20H,#25 MOV 21H,#5 MOV 22H,#15 MOV 23H,#30 MOV 24H,#20 SETB TR1

ST1: MOV P1,#0EBH ;道亮红灯;

CJNE R1,#0FFH,TZ1 MOV R1,#00H DEC 20H

第一个状态,主干道亮绿灯、支干26

DEC 23H TZ1: MOV R2,20H MOV R3,23H

LCALL DISP ; MOV A,20H CJNE A,#00H,ST1 MOV 20H,#25

ST2: MOV P1,#0EDH ;亮红灯;

CJNE R1,#0FFH,TZ2 MOV R1,#00H DEC 21H DEC 23H TZ2: MOV R2,21H MOV R3,23H

LCALL DISP ;

调用显示子程序。 第二个状态,主干道亮黄灯、支干道调用显示子程序。

27

MOV A,21H CJNE A,#00H,ST2 MOV 21H,#05 MOV 23H,#30

ST3: MOV P1,#0BEH ;道亮绿灯;

CJNE R1,#0FFH,TZ3 MOV R1,#00H DEC 24H DEC 22H TZ3: MOV R2,24H MOV R3,22H

LCALL DISP ; MOV A,22H CJNE A,#00H,ST3 MOV 22H,#15

第三个状态,主干道亮红灯、支干调用显示子程序。 28

ST4: MOV P1,#0DEH ;第四个状态,主干道亮红灯、支干道亮黄灯;

CJNE R1,#0FFH,TZ4 MOV R1,#00H DEC 24H DEC 21H TZ4: MOV R2,24H MOV R3,21H

LCALL DISP ; MOV A,21H CJNE A,#00H,ST4 MOV 21H,#05 MOV 24H,#20

LJMP ST1 ;DISP: MOV A,R2 ; MOV B,#10

调用显示子程序。 跳转到第一个状态。显示子程序。 29

DIV AB MOV 60H,A MOV 61H,B MOV A,R3 MOV B,#10 DIV AB MOV 62H,A MOV 63H,B MOV 40H,#04H MOV R5,#0FEH MOV R0,#60H LLP: MOV A,@R0 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A

30

MOV A,R5 MOV P2,A LCALL DELAY1

MOV P2, #0FFH; 熄灭,以免产生残影 RL A MOV R5,A INC R0 DJNZ 40H,LLP RET

DELAY1: ; MOV R4,#12 DL2: MOV R7,#12 DJNZ R7,$ DJNZ R4,DL2 RET

注意,这里是程序修改的地方,令显示器延时子程序 31

TABLE:DB 3FH,24H,5dH,75H,66H DB 73H,7bH,25H,7fH,77H END

3.2. 附录2:电路设计总图

51单片机的交通灯控制系统

32

摘要: 在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交

通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由ATC51单片机、开关、LED显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。 关键字: 交通灯,单片机,自动控制 正文:

1.设计概要

1.1设计思路:

利用单片机实现交通灯的控制,该任务分以下几个方面:

1.1.1 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。

1.1.2 用数码管显示倒计时。可以利用静态显示,并行并出实现。

1.1.3 实现急通车。这需要人工实现,编程时利用到中断才能带到目的,只要有按钮K1按下,黄灯闪烁五秒后,四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。

1.1.4 实现交通疏解,当南北红灯但南北车流量大时,按下K2按钮,黄灯闪烁

五秒后南北变绿灯,东西变红灯。同理,当东西红灯但东西车流量大时,按下K3按钮,黄灯闪烁五秒后东西变绿灯,南北变红灯。 1.2总体设计框图:

图1:

紧急疏散控制 交通灯循环 紧急通倒最小系统 车控制 计时显示

图1

2.硬件设计

2.1LED循环电路设计

2.1.1 ATC51单片机概述 ATC51单片机内部结构:

ATC51单片机包含处理器、程序存储器(ROM)、数据存储器(RAM)、

33

定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。 *处理器:

处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。 *数据存储器(RAM):

ATC51内部有128个8位用户数及存储单元和128个寄存器单元,他

们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。

*程序存储器(ROM):

ATC51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

*定时/计数器(ROM):

ATC51有两个16位的可编程定时/计数器,一时想定时或计数产生中

断用于控制程序转向。

*并行输入输出(I/O)口:

ATC51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传

输。

*全双工串行号:

ATC51内置一个全双行串行通信口,用于与其它设备间的串行数据传

输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

*中断系统:

ATC51具备较完善的中断功能,有两个外中断、两个定时/计数器中

断和一个串行中断,客满著不同的控制要求,并具有2级优先级别选择。

*时钟电路:

ATC51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行

的脉冲时序,但ATC51单片继续外置震荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。 MCS-51系统的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直

接DIP结构,图2是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用

34

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 Y1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 PDIP 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA/VPP ALE/PROG PESN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8

图2

51的抚慰方式可以自动复位,也可以是手动复位。除此之外,RESET/Vpd

还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。 2.1.2 LED循环说明

东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。红灯禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。 东西通道 南北通道 55s 5s 55s 5s 红灯亮 红灯亮,黄灯闪 绿灯亮 绿灯亮,黄灯闪 绿灯亮 绿灯亮,黄灯闪 红灯亮 红灯亮,黄灯闪 上表说明东西路口能够灯亮,南北路口绿灯亮,同时开始55s倒计时。55s倒计时结束后开始5s倒计时,黄灯灯闪烁。完成一次这样的循环要60s。60s结束,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。电路图如图3所示。

35

图3

2.2 倒计时显示电路

2.2.1 共阳极数码显示管

这里列出了共阴和共阳数码管的管脚平排列和内部结构。数码管3、8管脚内部连在一起。如果是共阳极则将其接到高电平。如果是共阴极则将其接地。为了数码显示管的安全这里用三个二极管与其串联来降压。本次课程设计用的是共阳极静态显示数码管。

36

图4

2.2.2 倒计时电路

倒计时显示电路如图5。个位的数码管接P2口,十位的数码管接P0口。十位的数码管a,b,c,d,e,f,g依次接P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,个位的数码管a,b,c,d,e,f,g依次接P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,共阳极接Vcc。

图5 2.2.3 急通车和交通疏解电路

为了实现急通车功能,利用单片机中断达到目的。利用一个手动按钮开关K1接至单片机外部中断0,同时在软件设计时将其设为最高优先级。当有按键按下,四周黄灯闪烁五秒,四方全为红灯,同时将终端位置的PSW、ACC进栈保护。当按钮弹起时,将PSW、ACC出栈,回到原来的位置继续执行。

为实现交通疏解功能,当K2或K3按下时,四周黄灯闪烁五秒,东西变绿或南北变绿。电路图如下图。

37

图6

3.软件按设计

3.1 程序流程图: 如图7所示。

38

开始 东西,南北方向换向 N Y 系统初始化 有键按下? 东西准行,南北禁行(55s) 东西亮绿灯,南北亮红扫描键盘 调用键盘子程序 调显示子程序 调显示子程序 扫描键盘 Y 东西亮绿灯,南北亮红灯。 同时黄灯进行闪烁 N 有键按下? 东西准行,南北禁行(5s) 调用键盘子程序

图7

3.2显示子程序流程图

如图8所示。

39

开始 取倒计时数值 提取倒计时数据的十位数 获取十位数字型码并送到P0口 提取倒计时数据的个位数 获取个位数字型码并送到P2口 调1s 延时子程序 返回

图8

3.3 LED红绿灯显示

如图三所示,当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出低电平。至于循环需要软件控制,程序见附录。 3.4倒计时显示

此处采用LED静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器,其数据由RXD端串行输出或输入;而同步移位时钟由TXD端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。

3.5急通车及疏解交通控制

将一按钮接到单片机外部中断0端口。另一端接地,通过在程序里设置外部中断0为最高优先级。当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。在此过程必须利用PUSH、POP指令保护现场,这样当情况解除可以回到原来的地方继续执行。

40

参考文献:

[1] 叶挺秀.应用电子学[M].杭州,浙江大学出版社,1994

[2] 朱承高.电工及电子技术手册[M].北京,高等教育出版社,1990

[3] 阎石.数字电子技术基础(第五版)[M].北京:高等教育出版社,2006 [4] 周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例[M].北京,电子工业出版社,2006

[5] 柴钰.单片机原理及应用[M].西安,西安电子科技大学出版社,2009

设计心得体会

在学习单片机理论课时候就感觉到内容很多,知识点很杂,分繁琐。在老师的讲解下,在通过自己的努力也更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。当然光有理论知识那只是“纸上谈兵”,还需要实际动手去实践。真正把所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机实习,我选的是交通灯设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅大量资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后整合成一个整体。

期间遇到一些困难,这里举例一二。 首先是数码管的接线问题,我用的是单位静态共阳性数码管,这个数码管上下各有五个接口,一开始我按顺序接了七个口,但显示出来的是乱码,最后找了一些书才知道是按一定顺序接的,上下两端的最中间的两个端子不接P口,因为那是要接Vcc的,其余八个出了一个为d.b不接外,刚好七个端口。

还有就是在开关的选择上,我用的开关有六个接线端,刚开始不知道用哪个两个,最后用万用表调到二极管端,测试导通与截止,确定使用哪两个。

在老师验收的时候,老师问了我一些问题,从老师的问题中我发现其实自己还有很多的不足,以前以为自己还可以的地方其实并不怎么样。尤其是我们学电的,要熟练的用好万用表等一些常用工具。

在还有一些其他小问题,就不再一一叙述了。

通过这次实习,我们要对所做的事情有耐性,在编程的时候会有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做。

在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。

附录

附录一:总原理图

41

附录二:系统程序

ORG 0000H

LJMP MAIN

ORG 001BH ;定时器T1中断入口 RET

ORG 0100H ;主程序入口

MAIN: MOV SP,#60H

MOV TMOD,#10H ;定时器T1工作在方式1 MOV TH1,#9EH ;给定时器T1赋初值 MOV TL1,#58H

SETB EA ;开中断系统总开关 SETB ET1 ;开定时器T1中断开关 SETB TR1 ;启动定时器T1 HERE:

42

MOV 58H,#15H ;设置中断循环次数 MOV 33H,#3DH ;设置倒计时显示数值 MOV P1,#0F3H ;使交通灯东西绿,南北红 MOV R7,#37H MM:

LCALL DISP

MOV A,P3 ;键盘扫描 CJNE A,#0FFH,READKEY DJNZ R7,MM

MOV P1,#0E1H ;交通灯东西绿,南北红同时加亮黄灯 MOV 20H,#02H NN:

MOV A,P3

CJNE A,#0FFH,READKEY

SETB P1.1 ;黄灯进行5s闪烁 SETB P1.4 LCALL DISP CLR P1.1 CLR P1.4

LCALL DISP ;调显示子程序 DJNZ 20H,NN SETB P1.1 SETB P1.4 LCALL DISP

MOV P1,#0DEH ;交通灯南北绿,东西红 MOV R7,#37H PP:

LCALL DISP MOV A,P3

CJNE A,#0FFH,READKEY DJNZ R7,PP

MOV P1,#0CCH ;交通灯南北绿,东西红同时加亮黄灯 MOV 20H,#02H QQ:

MOV A,P3 ;键盘扫描 CJNE A,#0FFH,READKEY SETB P1.1 SETB P1.4 LCALL DISP CLR P1.1 CLR P1.4 LCALL DISP DJNZ 20H,QQ SETB P1.1

43

SETB P1.4 LCALL DISP LCALL QW QW:

SJMP HERE RET

DELAY: MOV R1,#0AH DELAY0: MOV R2,#0C8H DELAY1: MOV R3,#0F8H NOP

DELAY2: DJNZ R3,DELAY2 DJNZ R2,DELAY1 DJNZ R1,DELAY0 RET READKEY:

MOV A,#0FFH MOV P3,A MOV A,P3

JNB ACC.0,K1 JNB ACC.1,K2 JNB ACC.2,K3 RET K1:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY

SJMP READKEY K2:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY1

SJMP READKEY K3:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY2

SJMP READKEY XX:

MOV 20H,#03H LCALL BB

;判断K1键是否按下 ;判断K2键是否按下 ;判断K3键是否按下 ;关闭倒计时显示装置 44

;关闭倒计时显示装置 ;关闭倒计时显示装置 RET BB:

SETB P1.1 SETB P1.4

LCALL DELAY CLR P1.1 CLR P1.4

LCALL DELAY DJNZ 20H,BB RET YY:

MOV P1,#0F6H MOV A,#0FFH MOV P3,A

JNB ACC.0,YY LCALL QW YY1:

MOV P1,#0F3H MOV A,#0FFH MOV P3,A MOV A,P3

JNB ACC.1,YY1 LCALL QW YY2:

MOV P1,#0DEH MOV A,#0FFH MOV A,#0FFH MOV P3,A MOV A,P3

JNB ACC.2,YY2 LCALL QW RET DISP:

DEC 33H MOV A,33H

CJNE A,#01H,DIR1

MOV 33H,#3DH DIR1:

MOV B,#0AH

DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV 30H,A MOV A,B

;四个路口均变成红灯 K1键是否仍然按下 ;东西方向亮绿灯,南北方向亮红灯 ;判断K2键是否仍然按下 ;南北方向亮绿灯,东西方向亮红灯 ;判断K2键是否仍然按下 ;重新给倒计时数赋初值 ;提取出倒计时数值的十位数和个位数 ;字形表的入口地址

;查表获得十位数的字型码 45

;判断 MOVC A,@A+DPTR ;查表获得个位数的字型码 MOV 31H,A MOV A,30H

MOV P0,A ;将十位数字型码送到P0口 MOV A,31H

MOV P2,A ;将个位数字型码送到P2口 LCALL DELAY RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H; 字型码 END

附录三:原器件清单

元器件型号 单位共阳性LED数码管 4.7K欧电阻 330欧电阻 绿发光二极管 红发光二极管 黄发光二极管 按键开关 个数 2 12 16 4 4 4 3

51单片机的交通灯控制系统

摘要: 在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交

通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由ATC51单片机、开关、LED显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。 关键字: 交通灯,单片机,自动控制 正文:

1.设计概要

1.1设计思路:

利用单片机实现交通灯的控制,该任务分以下几个方面:

1.1.1 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。

1.1.2 用数码管显示倒计时。可以利用静态显示,并行并出实现。

1.1.3 实现急通车。这需要人工实现,编程时利用到中断才能带到目的,只要有按钮K1按下,黄灯闪烁五秒后,四个方向全部显示红灯,禁止以诶车辆通行。当情况解除,让时间回到只能隔断处继续进行。

1.1.4 实现交通疏解,当南北红灯但南北车流量大时,按下K2按钮,黄灯闪烁

五秒后南北变绿灯,东西变红灯。同理,当东西红灯但东西车流量大时,按

46

下K3按钮,黄灯闪烁五秒后东西变绿灯,南北变红灯。 1.2总体设计框图:

图1:

紧急疏散控制 交通灯循环 紧急通倒最小系统 车控制 计时显示

图1

2.硬件设计

2.1LED循环电路设计

2.1.1 ATC51单片机概述 ATC51单片机内部结构:

ATC51单片机包含处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。 *处理器:

处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。 *数据存储器(RAM):

ATC51内部有128个8位用户数及存储单元和128个寄存器单元,他

们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。

*程序存储器(ROM):

ATC51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

*定时/计数器(ROM):

ATC51有两个16位的可编程定时/计数器,一时想定时或计数产生中

断用于控制程序转向。

*并行输入输出(I/O)口:

47

ATC51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传

输。

*全双工串行号:

ATC51内置一个全双行串行通信口,用于与其它设备间的串行数据传

输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

*中断系统:

ATC51具备较完善的中断功能,有两个外中断、两个定时/计数器中

断和一个串行中断,客满著不同的控制要求,并具有2级优先级别选择。

*时钟电路:

ATC51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行

的脉冲时序,但ATC51单片继续外置震荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。 MCS-51系统的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直

接DIP结构,图2是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 Y1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 PDIP 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 EA/VPP ALE/PROG PESN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8

图2

48

51的抚慰方式可以自动复位,也可以是手动复位。除此之外,RESET/Vpd

还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。 2.1.2 LED循环说明

东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。红灯禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。 东西通道 南北通道 55s 5s 55s 5s 红灯亮 红灯亮,黄灯闪 绿灯亮 绿灯亮,黄灯闪 绿灯亮 绿灯亮,黄灯闪 红灯亮 红灯亮,黄灯闪 上表说明东西路口能够灯亮,南北路口绿灯亮,同时开始55s倒计时。55s倒计时结束后开始5s倒计时,黄灯灯闪烁。完成一次这样的循环要60s。60s结束,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。电路图如图3所示。

49

图3

2.2 倒计时显示电路

2.2.1 共阳极数码显示管

这里列出了共阴和共阳数码管的管脚平排列和内部结构。数码管3、8管脚内部连在一起。如果是共阳极则将其接到高电平。如果是共阴极则将其接地。为了数码显示管的安全这里用三个二极管与其串联来降压。本次课程设计用的是共阳极静态显示数码管。

图4

2.2.2 倒计时电路

倒计时显示电路如图5。个位的数码管接P2口,十位的数码管接P0口。十位的数码管a,b,c,d,e,f,g依次接P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,个位的数码管a,b,c,d,e,f,g依次接P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,共阳极接Vcc。

图5 2.2.3 急通车和交通疏解电路

为了实现急通车功能,利用单片机中断达到目的。利用一个手动按钮开关K1接至单片机外部中断0,同时在软件设计时将其设为最高优先级。当有按键按

50

下,四周黄灯闪烁五秒,四方全为红灯,同时将终端位置的PSW、ACC进栈保护。当按钮弹起时,将PSW、ACC出栈,回到原来的位置继续执行。

为实现交通疏解功能,当K2或K3按下时,四周黄灯闪烁五秒,东西变绿或南北变绿。电路图如下图。

图6

3.软件按设计

3.1 程序流程图: 如图7所示。

51

开始 东西,南北方向换向 N Y 系统初始化 有键按下? 东西准行,南北禁行(55s) 东西亮绿灯,南北亮红扫描键盘 调用键盘子程序 调显示子程序 调显示子程序 扫描键盘 Y 东西亮绿灯,南北亮红灯。 同时黄灯进行闪烁 N 有键按下? 东西准行,南北禁行(5s) 调用键盘子程序

图7

3.2显示子程序流程图

如图8所示。

52

开始 取倒计时数值 提取倒计时数据的十位数 获取十位数字型码并送到P0口 提取倒计时数据的个位数 获取个位数字型码并送到P2口 调1s 延时子程序 返回

图8

3.3 LED红绿灯显示

如图三所示,当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出低电平。至于循环需要软件控制,程序见附录。 3.4倒计时显示

此处采用LED静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器,其数据由RXD端串行输出或输入;而同步移位时钟由TXD端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。

3.5急通车及疏解交通控制

将一按钮接到单片机外部中断0端口。另一端接地,通过在程序里设置外部中断0为最高优先级。当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。在此过程必须利用PUSH、POP指令保护现场,这样当情况解除可以回到原来的地方继续执行。

53

参考文献:

[1] 叶挺秀.应用电子学[M].杭州,浙江大学出版社,1994

[2] 朱承高.电工及电子技术手册[M].北京,高等教育出版社,1990

[3] 阎石.数字电子技术基础(第五版)[M].北京:高等教育出版社,2006 [4] 周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例[M].北京,电子工业出版社,2006

[5] 柴钰.单片机原理及应用[M].西安,西安电子科技大学出版社,2009

设计心得体会

在学习单片机理论课时候就感觉到内容很多,知识点很杂,分繁琐。在老师的讲解下,在通过自己的努力也更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。当然光有理论知识那只是“纸上谈兵”,还需要实际动手去实践。真正把所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机实习,我选的是交通灯设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅大量资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后整合成一个整体。

期间遇到一些困难,这里举例一二。 首先是数码管的接线问题,我用的是单位静态共阳性数码管,这个数码管上下各有五个接口,一开始我按顺序接了七个口,但显示出来的是乱码,最后找了一些书才知道是按一定顺序接的,上下两端的最中间的两个端子不接P口,因为那是要接Vcc的,其余八个出了一个为d.b不接外,刚好七个端口。

还有就是在开关的选择上,我用的开关有六个接线端,刚开始不知道用哪个两个,最后用万用表调到二极管端,测试导通与截止,确定使用哪两个。

在老师验收的时候,老师问了我一些问题,从老师的问题中我发现其实自己还有很多的不足,以前以为自己还可以的地方其实并不怎么样。尤其是我们学电的,要熟练的用好万用表等一些常用工具。

在还有一些其他小问题,就不再一一叙述了。

通过这次实习,我们要对所做的事情有耐性,在编程的时候会有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做。

在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。

附录

附录一:总原理图

54

附录二:系统程序

ORG 0000H

LJMP MAIN

ORG 001BH ;定时器T1中断入口 RET

ORG 0100H ;主程序入口

MAIN: MOV SP,#60H

MOV TMOD,#10H ;定时器T1工作在方式1 MOV TH1,#9EH ;给定时器T1赋初值 MOV TL1,#58H

SETB EA ;开中断系统总开关 SETB ET1 ;开定时器T1中断开关 SETB TR1 ;启动定时器T1 HERE:

55

MOV 58H,#15H ;设置中断循环次数 MOV 33H,#3DH ;设置倒计时显示数值 MOV P1,#0F3H ;使交通灯东西绿,南北红 MOV R7,#37H MM:

LCALL DISP

MOV A,P3 ;键盘扫描 CJNE A,#0FFH,READKEY DJNZ R7,MM

MOV P1,#0E1H ;交通灯东西绿,南北红同时加亮黄灯 MOV 20H,#02H NN:

MOV A,P3

CJNE A,#0FFH,READKEY

SETB P1.1 ;黄灯进行5s闪烁 SETB P1.4 LCALL DISP CLR P1.1 CLR P1.4

LCALL DISP ;调显示子程序 DJNZ 20H,NN SETB P1.1 SETB P1.4 LCALL DISP

MOV P1,#0DEH ;交通灯南北绿,东西红 MOV R7,#37H PP:

LCALL DISP MOV A,P3

CJNE A,#0FFH,READKEY DJNZ R7,PP

MOV P1,#0CCH ;交通灯南北绿,东西红同时加亮黄灯 MOV 20H,#02H QQ:

MOV A,P3 ;键盘扫描 CJNE A,#0FFH,READKEY SETB P1.1 SETB P1.4 LCALL DISP CLR P1.1 CLR P1.4 LCALL DISP DJNZ 20H,QQ SETB P1.1

56

SETB P1.4 LCALL DISP LCALL QW QW:

SJMP HERE RET

DELAY: MOV R1,#0AH DELAY0: MOV R2,#0C8H DELAY1: MOV R3,#0F8H NOP

DELAY2: DJNZ R3,DELAY2 DJNZ R2,DELAY1 DJNZ R1,DELAY0 RET READKEY:

MOV A,#0FFH MOV P3,A MOV A,P3

JNB ACC.0,K1 JNB ACC.1,K2 JNB ACC.2,K3 RET K1:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY

SJMP READKEY K2:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY1

SJMP READKEY K3:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY2

SJMP READKEY XX:

MOV 20H,#03H LCALL BB

;判断K1键是否按下 ;判断K2键是否按下 ;判断K3键是否按下 ;关闭倒计时显示装置 57

;关闭倒计时显示装置 ;关闭倒计时显示装置 RET BB:

SETB P1.1 SETB P1.4

LCALL DELAY CLR P1.1 CLR P1.4

LCALL DELAY DJNZ 20H,BB RET YY:

MOV P1,#0F6H MOV A,#0FFH MOV P3,A

JNB ACC.0,YY LCALL QW YY1:

MOV P1,#0F3H MOV A,#0FFH MOV P3,A MOV A,P3

JNB ACC.1,YY1 LCALL QW YY2:

MOV P1,#0DEH MOV A,#0FFH MOV A,#0FFH MOV P3,A MOV A,P3

JNB ACC.2,YY2 LCALL QW RET DISP:

DEC 33H MOV A,33H

CJNE A,#01H,DIR1

MOV 33H,#3DH DIR1:

MOV B,#0AH

DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV 30H,A MOV A,B

;四个路口均变成红灯 K1键是否仍然按下 ;东西方向亮绿灯,南北方向亮红灯 ;判断K2键是否仍然按下 ;南北方向亮绿灯,东西方向亮红灯 ;判断K2键是否仍然按下 ;重新给倒计时数赋初值 ;提取出倒计时数值的十位数和个位数 ;字形表的入口地址

;查表获得十位数的字型码 58

;判断 MOVC A,@A+DPTR ;查表获得个位数的字型码 MOV 31H,A MOV A,30H

MOV P0,A ;将十位数字型码送到P0口 MOV A,31H

MOV P2,A ;将个位数字型码送到P2口 LCALL DELAY RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H; 字型码 END

附录三:原器件清单

元器件型号 单位共阳性LED数码管 4.7K欧电阻 330欧电阻 绿发光二极管 红发光二极管 黄发光二极管 按键开关 个数 2 12 16 4 4 4 3

59

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务