最新文章专题视频专题问答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
当前位置: 首页 - 正文

单片机交通灯设计

来源:动视网 责编:小OO 时间:2025-09-25 07:17:31
文档

单片机交通灯设计

单片机课程设计报告交通灯控制系统姓名:学号:专业班级:指导老师:所在学院:电气工程与自动化学院摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用ATC51单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。硬件的设计采用ATC51单片机为核心器件。并辅助复位电路,驱动电路,数码管及晶体管显示部分。通过中断扩展
推荐度:
导读单片机课程设计报告交通灯控制系统姓名:学号:专业班级:指导老师:所在学院:电气工程与自动化学院摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用ATC51单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。硬件的设计采用ATC51单片机为核心器件。并辅助复位电路,驱动电路,数码管及晶体管显示部分。通过中断扩展
单片机课程设计报告

交通灯控制系统

姓    名:            

学    号:         

专业班级:      

指导老师:          

所在学院:电气工程与自动化学院

摘要

本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用ATC51单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。

硬件的设计采用ATC51单片机为核心器件。并辅助复位电路,驱动电路,数码管及晶体管显示部分。通过中断扩展实现交通灯系统特殊情况的转换。

软件设计部分分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A(东西道)、B(南北道)两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即让东西道放行;假如南北道有车东西道无车,长按K1可以控制交通灯系统能立即南北道放行。

十字路口的交通灯在工作时应具有如下特点:红灯表示该条道路禁止通行;黄灯表示该条道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。

本设计利用单片机控制可以实现以下功能:

(1)A道和B道上均有车辆要求通过时,A,B道轮流放行。A道放行5分钟(调试时改为5秒钟),B道放行4分钟(调试时改为4秒钟)。

(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。

(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A,B道均为红灯,紧急车由K2开关模拟。

(4)绿灯转换为红灯时黄灯亮1秒钟

1 概述

1.1 设计任务书

设计个单片机控制的交通灯控制系统,可以实现以下功能:

(1)A道和B道上均有车辆要求通过时,A,B道轮流放行。A道放行5分钟(调试时改为5秒钟),B道放行4分钟(调试时改为4秒钟)。

(2)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。

(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A,B道均为红灯,紧急车由K2开关模拟。

(4)绿灯转换为红灯时黄灯亮1秒钟。

1.2 设计思路

硬件设计部分,为实现所要求的功能,首先参考多种参考资料,选用ATC51单片机为硬件设计的核心器件。它具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。其次采用74LS245驱动电路驱动LED晶体管显示部分,用数码管显示黄、红、绿灯。通过中断扩展实现交通灯系统特殊情况的转换。

软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。

2 系统总体方案及硬件设计

2.1 系统总体方案

(1)硬件设计部分

为实现所要求的功能,首先参考多种参考资料,选用ATC51单片机为硬件设计的核心器件。它具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。其次采用74LS245驱动电路驱动LED晶体管显示部分, 由ATC51的P2.1口控制北边和东边剩余时间的十位数的显示,P2.0控制北边和东边剩余时间的个位数的显示。用P1端口作为输出端口,用P1.2到P1.7端口分别控制东和北两组灯的状态,低电平点亮,用数码管显示黄、红、绿灯。通过中断扩展实现交通灯系统特殊情况的转换。

(2)软件设计部分

软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。

2.2 硬件设计

(1)ATC51简介 

功能:

ATC51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。具有128*8位内部RAM,有32根可编程I/O线、两个16位定时器/计数器·5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。 

管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为ATC51的一些特殊功能口,如下表所示:

口管脚 备选功能

P(串行输入口)

P(串行输出口)

P(外部中断0)

P(外部中断1)

P(记时器0外部输入)

P(记时器1外部输入)

P(外部数据存储器写选通)

P(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节

PSEN:外部程序存储器的选通信号。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。当/EA端保持高电平时,此间内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,ATC51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

(2)复位部分:

采用上电+按钮电平复位,复位电容采用,电阻,连接如图:

(3)显示部分:

数码管显示部分

采用四位一体共阴数码管,分别显示西和北的剩余时间,A到G为码段控制端口,1到4为片选端口。数码段显示部分通过74LS245接单片机管脚的P0口,片选部分由P2.0到P2.1提供,具体的共阴数码管见图。其中P2.1控制北边和西边剩余时间的十位数的显示;P2.0控制北边和西边剩余时间的个位数的显示。

        

         

晶体管显示部分

由于对称性,设计时只设计了西北两个方向。由红黄绿按要求显示。用P1端口作为输出端口,用P1.2到P1.7端口分别控制西和北两组灯的状态,低电平点亮,具体端口功能如下:

P1.2控制北边红灯的亮灭;

P1.3控制北边黄灯的亮灭;

P1.4控制北边绿灯的亮灭;

P1.5控制东边红灯的亮灭;

P1.6控制东边黄灯的亮灭;

P1.7 控制东边绿灯的亮灭。

(4) 驱动部分:74LS245

                         

3 软件设计

3.1 程序流程图

(1) T0中断服务程序

(2)外部中断零服务程序

(3)主程序

3.2 软件系统设计

(1)主程序

P0口作为字形码输出口P2口输出为选信号用P1口控制交通灯的亮灭

23H为标示位,当23H为0时南北红灯亮东西绿灯亮,并进入计时;当23H为1时东西南北黄灯亮,并进入计时;当32H为2时南北绿灯亮东西红灯亮,并进入计时;当23H为1时东西南北黄灯亮,并进入计时。27H为特殊情况标示位,当27H为0时南北红灯东西绿灯亮。当27H为2时南北绿灯东西红灯亮。还有通过标示位2FH.0来判断是否进入东西南北都红的紧急状态。

ORG    0100H

MAIN:MOV SP,#50H

MOV TCON,#05H ;定义中断方式

MOV 20H,#05H  ;时间计数单元,A道放行时间

MOV    21H,#02H      ;黄灯亮时间

   MOV    22H,#05H    ;B道放行时间

   MOV 23H,#00H ;交通灯转换标示位 

MOV 24H,#05H  ;时间欲存区,A道放行时间

   MOV  25H,#02H   ;黄灯亮时间

   MOV  26H,#05H   ;B道放行时间

MOV  27H,#0FFH  ;特殊情况下转换标示位

   MOV  28H,#01H   ;

   MOV  30H,#05H   ;显示缓存区

   MOV  31H,#00H

   MOV  TMOD,#01H   ;16位计数器

MOV      TH0,#03CH

MOV      TL0,#0B0H

MOV   IE,#10000111B

SETB    TR0         ;T0启动计数

   MOV   R2,#13H

MOV     P2,#0FFH

ML1:  ACALL   DISP

         MOV  A,23H

         CJNE A,#00H,X1

         SETB P1.2

         CLR  P1.3

         CLR  P1.4

        CLR  P1.5

        CLR  P1.6

        SETB  P1.7

X1:     CJNE A,#01H,X2

        CLR  P1.2

        SETB  P1.3

        CLR  P1.4

        CLR  P1.5

        SETB P1.6

        CLR  P1.7

X2:     CJNE A,#02H,X3

        CLR  P1.2

        CLR  P1.3

        SETB  P1.4

        SETB P1.5

        CLR  P1.6

        CLR  P1.7

X3:     CJNE A,#03H,X4

        CLR  P1.2

        SETB  P1.3

        CLR  P1.4

        CLR  P1.5

        SETB P1.6

        CLR  P1.7

X4:     JNB   2FH.0,ML2

        SETB  P1.2

        CLR   P1.3

        CLR   P1.4

        SETB  P1.5

        CLR   P1.6

        CLR   P1.7

        AJMP  X4

ML2:    JB    TR0,ML1

        ACALL DISP

        MOV   A,27H

        CJNE  A,#00H,X11

        SETB  P1.2

        CLR   P1.3

        CLR   P1.4

        CLR   P1.5

        CLR   P1.6

        SETB  P1.7

X11:    CJNE  A,#01H,X21

 CLR   P1.2

        SETB  P1.3

        CLR   P1.4

        CLR   P1.5

        SETB  P1.6

        CLR   P1.7

X21:    CJNE  A,#02H,X31

        CLR   P1.2

        CLR   P1.3

        SETB  P1.4

        SETB  P1.5

        CLR   P1.6

        CLR   P1.7

X31:    JB P1.0,M1

M1:     MOV C,P1.0           ;按键消振

        JC M2

M2:     LCALL DELAY

        MOV C,P1.0

        JC ML10

STOP1:  MOV C,P1.0

        JNC STOP1

        LCALL DELAY

        MOV C,P1.0

        JNC STOP1

        MOV R0,#20H

        MOV R1,#24H

        MOV A,27H   ;加一

        MOV 23H,A

        CLR C

        ADD A,R1

        MOV R1,A

        CLR C

        MOV A,23H

        ADD A,R0

        MOV R0,A

        INC @R1

        MOV A,@R1

        CJNE A,#100,H1

        MOV A, #00H

        MOV @R1,A

H1:     MOV @R0,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        ACALL  DISP

ML10:   JB P1.1,M3

M3:     MOV C,P1.1           ;按键消振

        JC M4

M4:     LCALL DELAY

        MOV C,P1.1

        JC  ML2

STOP2:  MOV C,P1.1

        JNC STOP2

        LCALL DELAY

        MOV C,P1.1

        JNC STOP2

        MOV R0,#20H

        MOV R1,#24H

        MOV A,27H   ; 减一

        MOV 23H,A

        CLR C

        ADD A,R1

        MOV R1,A

        CLR C

        ADD A,R0

        MOV R0,A

        DEC @R1

        MOV A,@R1

        CJNE A,#0FFH,H2

        MOV A, #99

        MOV @R1,A

H2:     MOV @R0,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        ACALL  DISP

        LJMP   ML1

DELAY:MOV R4,#14H

DL00: MOV R5,#0FFH

DL11: DJNZ R5,DL11

      DJNZ R4,DL00

      RET

(2)T0中断服务程序

T0主要是完成计时,和标示位更值得功能。

当23H 为0时按20H内的初值计时,当23H为1和3时按21H内的初值计时,当23H为2时按22H内的的初值计时。

*********TIME PROCESS******

TIME:   PUSH ACC

PUSH PSW

MOV      TH0,#03CH

MOV      TL0,#0B0H

DJNZ  R2,RET0

MOV   R2,#13H

MOV   A,23H

CJNE  A,#00H,L1

MOV      A,20H

CLR   C

DEC   A

CJNE  A,#0FFH,GO11

MOV   A,23H

CLR   C

INC   A

MOV  23H,A

MOV  A,24H

MOV    20H,A

        LJMP    L1

GO11:    MOV    20H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        LJMP    RET0

L1:     MOV    A,23H

        CJNE    A,#01H,L2

         MOV    A,21H

         CLR C

         DEC  A

         CJNE     A,#0FFH,GO12

        MOV     A,23H

        CLR     C

        INC     A

        MOV     23H,A

        MOV     A,25H

          MOV    21H,A

        LJMP    L2

 GO12:    MOV    21H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        LJMP    RET0

L2:     MOV    A,23H

        CJNE    A,#02H,L4

          MOV    A,22H

          CLR C

          DEC  A

         CJNE     A,#0FFH,GO13

        MOV     A,23H

        CLR     C

        INC     A

        MOV     23H,A

        MOV     A,26H

         MOV    22H,A

        LJMP    L4

 GO13:  MOV    22H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

 RET0:  POP PSW

        POP ACC

        RETI

 L4:    MOV    A,23H

CJNE    A,#03H,RET0

MOV    A,21H

CLR C

DEC  A

CJNE     A,#0FFH,GO14

MOV     A,#00H

MOV     23H,A

MOV     A,25H

MOV    21H,A

LJMP    RET0

 GO14:      MOV    21H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        LJMP  RET

(3)外部中断零服务程序

外部中断零服务程序主要完成的是特殊情况下交通灯状态标示位的转换当P3.0和P3.1有键按下式停T0中断,进入相应键的处理,当第二次有键按下式,若是相同键即推出中断服务程序,若是相异键,就改变特殊情况状态标示位。

SECTION1:PUSH    ACC

        PUSH    PSW

QQQ:    MOV C,P3.0         ;按键消振

        JC JJJ

        ACALL DELAY

        MOV C,P3.0

        JC JJJ

STOP3:  MOV C,P3.0

        JNC STOP3

        ACALL DELAY

        MOV C,P3.0

        JNC STOP3

        CLR TR0

        MOV A,27H

        CJNE A,#00H,PPP1

MOV A,#0FFH

        MOV 27H,A

        MOV 28H,#01H

        SETB TR0

        AJMP PP1

PPP1:   CJNE A,#02H,PPP

        MOV 27H,#00H

        MOV 28H,#01H

        AJMP PP1

PPP:    INC 27H

        MOV 28H,#01H

PP1:    POP     PSW

        POP     ACC

        RETI

JJJ:   MOV C,P3.1          ;按键消振

       JC QQQ

       ACALL DELAY

        MOV C,P3.1

        JC QQQ

STOP4:  MOV C,P3.1

        JNC STOP4

        ACALL DELAY

        MOV C,P3.1

        JNC STOP4

        CLR TR0

        MOV A,28H

        CJNE A,#02H,GGG1

MOV A,#01H

        MOV 27H,A

        MOV 28H,A

        SETB TR0

        LJMP PP1

GGG1:   CJNE A,#00H,GGG

        MOV 27H,#02H

        MOV 28H,#02H

        LJMP PP1

GGG:    INC 28H

        MOV 27H,28H

        LJMP PP1

其他程序段都只是完成特定简单功能只须说明器完成功能即可。

4 Proteus软件仿真

4.1 初始状态0仿真图

东边绿灯亮,北边红灯亮。

4.2 状态1

北边和东边黄灯闪烁。

4.3 状态2

东边由黄灯闪烁转亮为红灯,同时北边由黄灯闪烁转亮为绿灯。

4.4 状态3

东边和北边均黄灯闪烁。

 

4.5 状态4

东西道有车而南北道无车时,按K0键,北边转亮红灯同时东边转亮绿灯。

4.6 状态5

东西道无车而南北道有车时,按K1键,东边转亮红灯同时北边转亮绿灯。

4.7 状态6

紧急车通过时,按K2键,北边和东边均转亮红灯。

5 课程设计体会

通过这次做交通灯的课程设计,自己再次学习了微机原理,并认真复习单片机,查阅和浏览了很多的相关资料, 并且对wave和proteus软件的使用有了一定的了解。

虽然提前做了一些准备工作,但完成初次编程用wave进行编译时,确也出现了一系列的问题。例如:有的符号未定义,源程序起始地址重复,标点符号漏写等,最终还是利用wave中的单步跟踪功能将问题一一解决。软件模拟时,我们用proteus仿真软件运行,发现有时两个绿灯同时亮,当有紧急车辆通过时,两个红灯不受按键控制,出现抖动现象等等一系列的问题。但是最后在同学的帮助下终于完成任务。

通过这次学习,发现自己对书本的掌握只是很表层的一部分,离实际应用还有很大一段距离。真是不用不知道,一用吓一跳。做课程设计期间,自己进一步学习了单片机书上的例子,而且学习了许多书本之外的东西。尤其是,和几个同学一起进行编程调试进而运行时期间,发现自己还算比较喜欢编程。这次做单片机课程设计也对自己以后的学习方向有很大的影响。

参考文献

期刊论文:

[1] 刘心红、郭福田、孙振兴、曾丽丽,Proteus仿真技术在单片机教学中的应用(大庆石油学院应用技术学院,河北秦皇岛),实验技术与管理(Experimental Technology and Management)2007,24(3):96-102

[2] 蔡军、曹慧英,智能交通灯控制系统的设计与实现,(重庆邮电学院,重庆400065)

重庆邮电学院学报(Journal of Chongqing University of Posts and Telecommunications Jun),2004 16(3):128-132

[3] 杨汉祥、刘良福、邬喜辉,利用单片机改进交通灯控制系统(北京电子科技学院学报),北京电子科技学院学报(Journal of Bei jing Electronic Science and Technology institute)2005,13(4):68-72

书、专著:

[1] 余发山主编 《单片机原理与应用技术》北京:中国矿大出版社 2004

[2]赖寿宏主编 《微型计算机控制技术》北京:机械工业出版社 2002

[3]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,1999.87—90

[4] 李广第等.单片机基础[M].北京:北京航空航天大学出版社,2001.147-151

[5] 栾桂冬,张金铎,金欢阳.传感器及其应用[M].西安:西安电子科技大学出版社,2002.255-261

电子文献:

ATC51单片机简介:

http://hi.baidu.com/vaak/blog/item/425c6566db29b825ab184c86.html

附1: 源程序代码

ORG    0000H

LJMP     MAIN

ORG    0003H

LJMP    SECTION1

ORG    000BH

LJMP    TIME

ORG     0013H

LJMP    SECTION2

************  MAIN PROGRAM  ***************

ORG        0100H

MAIN:   MOV     SP,#50H

        MOV     TCON,#05H  ;定义中断方式

        MOV     20H,#05H       ;时间计数单元,A道放行时间

        MOV        21H,#02H           ;黄灯亮时间

           MOV      22H,#05H       ;B道放行时间

        MOV     23H,#00H   ;交通灯转换标示位 

        MOV     24H,#05H   ;时间欲存区,A道放行时间

        MOV     25H,#02H   ;黄灯亮时间

        MOV     26H,#05H   ;B道放行时间

        MOV     27H,#0FFH  ;特殊情况下转换标示位

        MOV     28H,#01H   ;

        MOV     30H,#05H   ;显示缓存区

        MOV     31H,#00H

          MOV        TMOD,#01H   ;16位计数器

    MOV        TH0,#03CH

    MOV        TL0,#0B0H

    MOV        IE,#10000111B

    SETB    TR0             ;T0启动计数

 MOV     R2,#13H

    MOV      P2,#0FFH

ML1:    ACALL   DISP

        MOV     A,23H

        CJNE    A,#00H,X1

        SETB P1.2

        CLR  P1.3

        CLR  P1.4

        CLR  P1.5

        CLR  P1.6

        SETB  P1.7

X1:     CJNE A,#01H,X2

        CLR  P1.2

        SETB  P1.3

        CLR  P1.4

        CLR  P1.5

        SETB P1.6

        CLR  P1.7

X2:     CJNE A,#02H,X3

        CLR  P1.2

        CLR  P1.3

        SETB  P1.4

        SETB P1.5

        CLR  P1.6

        CLR  P1.7

X3:     CJNE A,#03H,X4

        CLR  P1.2

        SETB  P1.3

        CLR  P1.4

        CLR  P1.5

        SETB P1.6

        CLR  P1.7

X4:     JNB   2FH.0,ML2

        SETB  P1.2

        CLR   P1.3

        CLR   P1.4

        SETB  P1.5

        CLR   P1.6

        CLR   P1.7

        AJMP  X4

ML2:    JB    TR0,ML1

        ACALL DISP

        MOV   A,27H

        CJNE  A,#00H,X11

 SETB  P1.2

        CLR   P1.3

        CLR   P1.4

        CLR   P1.5

        CLR   P1.6

        SETB  P1.7

X11:    CJNE  A,#01H,X21

        CLR   P1.2

        SETB  P1.3

        CLR   P1.4

        CLR   P1.5

        SETB  P1.6

        CLR   P1.7

X21:    CJNE  A,#02H,X31

       CLR   P1.2

        CLR   P1.3

        SETB  P1.4

        SETB  P1.5

        CLR   P1.6

        CLR   P1.7

X31:    JB P1.0,M1

M1:     MOV C,P1.0           ;按键消振

        JC M2

M2:     LCALL DELAY

        MOV C,P1.0

        JC ML10

STOP1:  MOV C,P1.0

        JNC STOP1

        LCALL DELAY

        MOV C,P1.0

        JNC STOP1

        MOV R0,#20H

        MOV R1,#24H

        MOV A,27H   ;加一

        MOV 23H,A

        CLR C

        ADD A,R1

        MOV R1,A

        CLR C

        MOV A,23H

        ADD A,R0

        MOV R0,A

        INC @R1

        MOV A,@R1

        CJNE A,#100,H1

        MOV A, #00H

        MOV @R1,A

H1:     MOV @R0,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        ACALL  DISP

ML10:   JB P1.1,M3

M3:     MOV C,P1.1           ;按键消振

        JC M4

M4:     LCALL DELAY

        MOV C,P1.1

        JC  ML2

STOP2:  MOV C,P1.1

        JNC STOP2

        LCALL DELAY

        MOV C,P1.1

        JNC STOP2

        MOV R0,#20H

        MOV R1,#24H

        MOV A,27H   ; 减一

        MOV 23H,A

        CLR C

        ADD A,R1

        MOV R1,A

        CLR C

        ADD A,R0

        MOV R0,A

        DEC @R1

        MOV A,@R1

        CJNE A,#0FFH,H2

        MOV A, #99

        MOV @R1,A

H2:     MOV @R0,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        ACALL  DISP

        LJMP   ML1

DELAY:  MOV R4,#14H

DL00:   MOV R5,#0FFH

DL11:   DJNZ R5,DL11

        DJNZ R4,DL00

        RET

;***********  TIME  PROCESS  **************

TIME:   PUSH ACC

        PUSH PSW

        MOV    TH0,#03CH

         MOV    TL0,#0B0H

        DJNZ    R2,RET0

        MOV    R2, #13H

        MOV  A, 23H

        CJNE    A,#00H,L1

        MOV     A, 20H

        CLR C

        DEC  A

        CJNE A, #0FFH,GO11

        MOV  A, 23H

        CLR     C

        INC     A

        MOV 23H,A

        MOV  A, 24H

        MOV    20H,A

        LJMP    L1

GO11:    MOV    20H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        LJMP    RET0

L1:     MOV     A,23H

        CJNE    A,#01H,L2

    MOV        A,21H

    CLR     C

    DEC     A

    CJNE     A,#0FFH,GO12

        MOV     A,23H

        CLR     C

        INC     A

        MOV     23H,A

        MOV     A,25H

        MOV        21H,A

        LJMP    L2

 GO12:    MOV    21H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

        LJMP    RET0

L2:     MOV     A,23H

        CJNE    A,#02H,L4

        MOV       A,22H

        CLR C

        DEC A

        CJNE     A,#0FFH,GO13

        MOV     A,23H

        CLR     C

        INC     A

        MOV     23H,A

        MOV     A,26H

        MOV        22H,A

        LJMP    L4

 GO13:    MOV        22H,A

        MOV     B,#0AH

        DIV     AB

        MOV     31H,A

        MOV     30H,B

 RET0:  POP PSW

        POP ACC

        RETI

 L4:    MOV    A,23H

        CJNE   A,#03H,RET0

    MOV       A,21H

    CLR C

    DEC A

        CJNE     A,#0FFH,GO14

        MOV     A,#00H

        MOV     23H,A

        MOV     A,25H

        MOV        21H,A

        MOV    A,20H

        MOV    B,#0AH

        DIV    AB

        MOV     31H, A

        MOV     30H, B

        LJMP    RET0

GO14:    MOV        21H, A

        MOV     B, #0AH

        DIV     AB

        MOV     31H, A

        MOV     30H, B

        LJMP    RET0

;*******--DISPLAY   PART--**********

DISP:    MOV     R0 ,#30H

        MOV     R3 ,#0FEH

        MOV     A ,R3

PLAY:  MOV   P2,A

       MOV   A,@R0

       MOV   DPTR,#DSEG1

       MOVC  A,@A+DPTR

       MOV   P0,A

       LCALL DL1

       MOV   P2,#0FFH

       MOV   A,R3

       RL       A

       JNB    ACC.2,LD1

       INC      R0

       MOV   R3,A

       LJMP  PLAY

LD1:   RET

;;;;;;;;;DELAY

DL1:    MOV    R7,#05H

DL:        MOV    R6,#0FFH

DL6:    DJNZ    R6,$

        DJNZ    R7,DL

        RET

DSEG1:DB 3FH,06H,5BH,4FH,66H

      DB 6DH,7DH,07H,7FH,6FH

;*********************************

SECTION1:PUSH    ACC

         PUSH    PSW

QQQ:    MOV C,P3.0          ;按键消振

        JC JJJ

        ACALL DELAY

        MOV C,P3.0

        JC JJJ

STOP3:  MOV C,P3.0

        JNC STOP3

        ACALL DELAY

        MOV C,P3.0

        JNC STOP3

        CLR TR0

        MOV A,27H

        CJNE A,#00H,PPP1

        MOV A,#0FFH

        MOV 27H,A

        MOV 28H,#01H

        SETB TR0

        AJMP PP1

PPP1:    CJNE A,#02H,PPP

        MOV 27H,#00H

        MOV 28H,#01H

        AJMP PP1

PPP:    INC 27H

        MOV 28H,#01H

PP1:    POP     PSW

        POP     ACC

        RETI

JJJ:    MOV C,P3.1          ;按键消振

        JC QQQ

        ACALL DELAY

        MOV C,P3.1

        JC QQQ

STOP4:  MOV C,P3.1

        JNC STOP4

        ACALL DELAY

        MOV C,P3.1

        JNC STOP4

        CLR TR0

        MOV A,28H

        CJNE A,#02H,GGG1

MOV A,#01H

        MOV 27H,A

        MOV 28H,A

        SETB TR0

        LJMP PP1

GGG1:   CJNE A,#00H,GGG

        MOV 27H,#02H

        MOV 28H,#02H

        LJMP PP1

GGG:    INC 28H

        MOV 27H,28H

        LJMP PP1

SECTION2:PUSH    ACC

         PUSH    PSW

        MOV C,P3.3          ;按键消振

        JC PPP

        ACALL DELAY

        MOV C,P3.3

        JC PPP

STOP0:  MOV C,P3.3

        JNC STOP0

        ACALL DELAY

        MOV C,P3.3

        JNC STOP0

        CPL   2FH.0

        POP     PSW

        POP     ACC

        RETI

        END

附2: 系统原理图

文档

单片机交通灯设计

单片机课程设计报告交通灯控制系统姓名:学号:专业班级:指导老师:所在学院:电气工程与自动化学院摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用ATC51单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。硬件的设计采用ATC51单片机为核心器件。并辅助复位电路,驱动电路,数码管及晶体管显示部分。通过中断扩展
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top