最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于单片机的交通灯的设计报告(汇编语言) (1)

来源:动视网 责编:小OO 时间:2025-09-24 23:36:43
文档

基于单片机的交通灯的设计报告(汇编语言) (1)

交通灯的设计报告摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATC51和74LS47来设计交通灯控制器,实现了能根据实际车流量
推荐度:
导读交通灯的设计报告摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATC51和74LS47来设计交通灯控制器,实现了能根据实际车流量
                                                                         交通灯的设计报告

摘要:    

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATC51和74LS47来设计交通灯控制器,实现了能根据实际车流量通过ATC51芯片的P1口设置红、绿灯熄亮时间的功能;红绿灯循环点亮,绿灯熄灭时黄灯闪烁3秒(交通灯信号通过P1口输出,显示时间直接通过P0、P2口输出至二个对应的双位数码管)。本系统实用性强、操作简单、扩展功能强。 

关键词:

单片机  交通灯  时间

一、课题设计需要实现的系统功能:

1.AB方向亮绿灯60s,然后黄灯闪烁3次,每次一秒(亮灭各40ms),红灯40s,同时CD方向红灯65s,绿灯35s,黄灯闪烁3s

2.各路灯用LED模拟显示,同时用七段数码管显示两路的倒计时时间

3.利用键盘可修改灯亮时间    

4.PC机设置灯亮时间,利用PC与单片机串口通信实现 

二、单片机概述

    单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

    通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

    单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

三、芯片简介

3.1、ATC51芯片简介

ATC51单片机内部结构

ATC51单片机包含处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用

下图是MCS-51系列单片机的内部结构示意图1。

                   图1

单片机的复位及初始化如图2:

图2

3.2、74LS47芯片简介

74LS47的端子功能图如下图3:   

                       图3

74LS47的主要功能端如下:

BI为熄灭输入端,低电平有效,当BI=0时,无论其他输入端状态如何,译码器输出七段同时熄灭;BI=1时,不影响译码器正常译码。

LT为测试输入端,低电平有效,用于检查数码管的七段是否正常发光。当LT=0,同时BI=1时,不管输入的BCD码是什么状态,都可使驱动数码管的七段同时点亮。译码器要正常译码,必须LT输入无效电平。

RBI为灭零输入端,低电平有效。设置灭零输入端的目的是为了能将不希望显示的0熄灭,例如一个四位数码显示电路,整数部分两位,小数部分两位,在显示6.4时,将出现06.40的字样,如果将前、后多余的0熄灭,显示的结果更醒目一些。灭零输入端只能对显示的0进行熄灭,而对其他数字没有影响。

在原理图中,译码器与数码管的连接如图4:

图4

四、系统硬件设计

4.1、交通管理的方案论证

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

车道\时间

60s3s2s35s3s
AB道

绿灯黄灯红灯红灯红灯
CD道

红灯红灯红灯绿灯黄灯
                                  表1

表1说明:(1)当AB道为绿灯,此道车辆通过,行人禁止通行。时间为60秒;CD方向为红灯,此道车辆禁止通行,CD道行人可通过。

(2)当AB方向为黄灯闪烁3秒,警示车辆和行人红、绿灯的状态即将切换;CD方向为红灯,此道车辆禁止通行,CD道行人可通过。

(3)当AB方向为红灯,此道车辆禁止通行,AB道行人可通过;当CD方向为红灯,此道车辆禁止通行,CD道行人可通过。

(4)当AB方向为红灯,此道车辆禁止通行,AB道行人可通过;AB道为绿灯,此道车辆通过,行人禁止通行。时间为35秒。

(5)当AB方向为红灯,此道车辆禁止通行,AB道行人可通过;CD方向为黄灯闪烁3秒,警示车辆和行人红、绿灯的状态即将切换。

(6)此表可根据车流量动态设定红绿灯初始值。

4.2、系统硬件设计

选用设备:ATC51弹片机一片,74LS47芯片二片,电阻排RESPACK-7三个,共阴极的七段数码管7SEG-MPX2-CA两个,红、黄、绿交通灯各四个,开关键盘、连线、电阻、电容若干。

4.2.1、系统总框图如下:

4.2.2、交通灯硬件线路图:见附录Ⅰ

4.2.3、系统工作原理

(1)开关键盘a、改变数码管显示的时间;b、开关控制十字路口十个方向的灯同时显示红灯且数码管显示00。

(2) 由ATC51单片机每秒钟通过P0、P2口向74LS47的数据口送信息,由P1口显示红、绿、黄灯的燃亮情况;由7SEG-MPX2-CA显示每个灯的燃亮时间。

(3)ATC51 P3.3为低电平时,P1口对应的红灯即四个方向的红灯亮,数码显示为00.

(4 ATC51 P3.2有下降沿触发时,时间暂停,进入时间显示状态,当P3.6为低电平时,时间显示以240ms的速度进行加1;当P3.7为低电平时,时间显示以240ms的速度进行减1;当P1.0为低电平时,时间暂停消除,恢复正常。

(5)初始状态AB方向绿灯60秒CD方向红灯65秒。

(6)当AB方向绿灯60秒倒计时完了。进入下一阶段,AB方向黄灯3秒,且黄灯以40ms的速度闪烁;CD方向红灯5秒。

(7)当AB方向黄灯3秒倒计时完。进入第三阶段,AB方向红灯40秒;CD方向红灯2秒。

(8)当CD方向红灯2秒倒计时完。进入第四阶段,AB方向红灯38秒;CD方向绿灯35秒。

(9)当CD方向绿灯35秒倒计时完。进入第五阶段,AB方向红灯3秒;CD方向黄灯3秒,且黄灯以40ms的速度闪烁。

(10)AB方向红灯和CD方向黄灯3秒同时倒计时完毕,重新循环。

五、软件设计

5.1、每秒钟的设定

    延时方法可以有两种一中是利用ATC51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。

5.2、1秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序.

5.3、相应程序代码

(1)主程序 

   定时器需定时10毫秒,故T0工作于方式1。 初值:

    T0初值=216-fose/12Xt=216-(12X106X0.01)/12=55536D=D8F0H

                ORG 0000H

        MAIN:     MOV TMOD,#01H   

                  MOV TL0,#0F0H     

                  MOV TH0,#0D8H

                  SETB EA           

                  SETB ET0          

SETB TR0         

                  SETB EX0          

                  SETB EX1         

                  SETB IT0          

                  CLR IT1           

                  SETB PT0

(2)中断服务子程序

                ORG 000BH

      ZHD2:    MOV TL0,#0F0H      ;重先赋值

                  MOV TH0,#0D8H

                  CLR P3.4

                  RETI

5.4、键盘显示流程图

5.5、 软件延时

    MCS-51的工作频率为2-12MHZ,我们选用的ATC51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

  具体的延时程序分析:

DEL:     MOV R7,#40     ; ;延时10ms

DEL1:    MOV R6,#123

                   NOP

DEL2:    DJNZ R6,DEL2

                   DJNZ R7,DEL1

                   RET 

5.6、软件流程图:见附录Ⅱ

5.7、源程序代码

     ORG 0000H      ;伪指令、程序开始、中断入口地址

     LJMP MAIN

     ORG 0003H

     LJMP ZHD1

     ORG 000BH

     LJMP ZHD2

     ORG 0013H

     LJMP ZHD3

     ORG 1000H

;主程序

MAIN:MOV TMOD,#01H     ;设工作方式

     MOV TL0,#0F0H      ;设初值 ,单片机晶振12M,定时10ms

     MOV TH0,#0D8H

     SETB EA           ;开放总中断

     SETB ET0          ;开放T0中断

     SETB TR0          ;启动T0定时

     SETB EX0          ;开放外中断0

     SETB EX1          ;开放外中断1

     SETB IT0          ;设外中断0为边沿触发

     CLR IT1           ;设外中断1为低电平有效

     SETB PT0

CYCLE:MOV R0,#60        ;AB方向绿灯显示时间

     MOV R1,#65        ;CD方向红灯显示时间

     MOV R2,#25        ;为延时1秒而用

;CD红灯 AB绿灯

LOOP1:SETB P3.4

      MOV P1,#01H

      SETB P1.7        ;点亮红灯

      SETB P1.4        ;点亮绿灯

      LCALL DISPLAY    ;调用显示程序

      DJNZ R2,LOOP1

      MOV R2,#25

      DEC R1

      DJNZ R0,LOOP1

      MOV R0,#3        ;AB方向黄灯显示时间

;CD红灯 AB黄灯

LOOP2:MOV P1,#01H

      SETB P1.7        ;点亮红灯

      SETB P1.3        ;点亮黄灯

LLJ:  LCALL DISPLAY     ;调用显示程序

      CPL P1.3

      DJNZ R2,LLJ

      DEC R1

      MOV R2,#25

      DJNZ R0,LOOP2

      MOV R0,#40       ;AB方向红灯显示时间

;CD红灯 AB红灯

LOOP3:MOV P1,#01H

      SETB P1.7        ;点亮红灯

      SETB P1.2        ;点亮红灯

      LCALL DISPLAY    ;调用显示程序

      DJNZ R2,LOOP3

      MOV R2,#25

      DEC R0

      DJNZ R1,LOOP3

      MOV R1,#35       ;CD方向绿灯显示时间

;CD绿灯  AB红灯

LOOP4:MOV P1,#01H

      SETB P1.5         ;点亮绿灯

      SETB P1.2         ;点亮红灯

      LCALL DISPLAY     ;调用显示程序

      DJNZ R2,LOOP4

      MOV R2,#25

      DEC R0

      DJNZ R1,LOOP4

      MOV R1,#3          ;CD方向黄灯显示时间

;CD黄灯  AB红灯

LOOP5:MOV P1,#01H

      SETB P1.6          ;点亮黄灯

      SETB P1.2          ;点亮红灯

LLJ1: LCALL DISPLAY       ;调用显示程序

      CPL P1.6

      DJNZ R2,LLJ1

      MOV R2,#25

      DEC R0

      DJNZ R1,LOOP5

      LJMP CYCLE

;键盘中断程序

ZHD1: LCALL DISPLAY

      JB P3.6,Q2

      INC R1

      INC R0

      CJNE R1,#99,TIAO2

      MOV R1,#00H

TIAO2:CJNE R0,#99,TIAO3

      MOV R0,#00H

TIAO3:LCALL DISPLAY                                          

      LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

      JNB P1.0,Z2

Q2:   JB P3.7,WAIT1

      DEC R1

      DEC R0

      CJNE R1,#00H,TIAO

      MOV R1,#99

TIAO: CJNE R0,#00H,TIAO1

      MOV R0,#99

TIAO1:LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

      LCALL DISPLAY

WAIT1:JNB P1.0,Z2

WAIT: LJMP ZHD1

Z2:   RETI

;时间中断程序

ZHD2: MOV TL0,#0F0H      ;重先赋值

      MOV TH0,#0D8H

      CLR P3.4

      RETI

;应急通道中断程序

ZHD3:MOV P1,#85H

     MOV P0,#30H        

     MOV P2,#30H

     JNB P3.3,ZHD3

     RETI

;数显显示

DISPLAY:MOV A,R0      ;AB方向时间的显示

        MOV B,#10

        DIV AB        ;把要显示的数的十位存放在A中,个位存放在B中

        ADD A,#10H    ;位选通十位

        MOV P0,A      ;显示十位数字

TI0:    JNB P3.4,TT

        SJMP TI0

TT:     SETB P3.4

        MOV A,B

        ADD A,#20H    ;位选通个位

        MOV P0,A      ;显示个位数字

TI1:    JNB P3.4,TT1

        SJMP TI1

TT1:    SETB P3.4

;CD方向的显示

        MOV A,R1       ;CD方向时间的显示

        MOV B,#10

        DIV AB

        ADD A,#10H     ;位选通十位

        MOV P2,A       ;显示十位数字

TI2:    JNB P3.4,TT2

        SJMP TI2

TT2:    SETB P3.4

        MOV A,B

        ADD A,#20H     ;位选通个位

        MOV P2,A       ;显示个位数字

TI3:    JNB P3.4,TT3

        SJMP TI3

TT3:    SETB P3.4

   RET

参考文献:

1、《单片微机原理与接口技术》主编:曾一红  副主编:刘虹、李寿强

2、《数字电子技术》蒋正萍、刘虹、张松、李小平编著

3、http://www.dz3w.com/articlescn/mcu/6162.html(来自于电子天下)

后记:

    在做本实验期间遇到了诸多的问题:1、从P1口连接出来的那一个数码管无法显示数字,解决:通过询问老师,了解到P1口内部不存在上拉电阻,输出的电流较小,无法驱动数码管显示。2、在对数码管的显示时间做设置时,进入设置状态后,二个数码管只有一个数显亮了,经过对软硬件的多方调试,最终发现在进入设置状态时,没有对二个数码管进行循环显示。3、黄灯无法闪烁,解决问题:首先我对软件的显示程序进行不同的设置,对显示部分每循环一次就对黄色对应单片机口求反,而此时出现了黄灯显示后一直无法熄灭。而最终我把显示部分的程序改为只循环一次,而增加了主程序中的循环次数。4、这是最重要的一步,也就是首先提出在做此实验时要完成的目标四。到目前为此,我就还无法找出如何用PC机去控制单片机。

附录

附录Ⅰ:交通灯硬件线路图

附录Ⅱ:软件流程图

文档

基于单片机的交通灯的设计报告(汇编语言) (1)

交通灯的设计报告摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATC51和74LS47来设计交通灯控制器,实现了能根据实际车流量
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top