数码管显示倒计时时间的交通灯控制设计.docx

上传人:b****7 文档编号:8763942 上传时间:2023-02-01 格式:DOCX 页数:13 大小:112.42KB
下载 相关 举报
数码管显示倒计时时间的交通灯控制设计.docx_第1页
第1页 / 共13页
数码管显示倒计时时间的交通灯控制设计.docx_第2页
第2页 / 共13页
数码管显示倒计时时间的交通灯控制设计.docx_第3页
第3页 / 共13页
数码管显示倒计时时间的交通灯控制设计.docx_第4页
第4页 / 共13页
数码管显示倒计时时间的交通灯控制设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数码管显示倒计时时间的交通灯控制设计.docx

《数码管显示倒计时时间的交通灯控制设计.docx》由会员分享,可在线阅读,更多相关《数码管显示倒计时时间的交通灯控制设计.docx(13页珍藏版)》请在冰豆网上搜索。

数码管显示倒计时时间的交通灯控制设计.docx

数码管显示倒计时时间的交通灯控制设计

第1章总体设计方案

1.1.设计思路

1.1.1课程设计的目的

(1).进一步熟悉和掌握单片机的结构及工作原理。

(2).掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

(3).通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。

(4).通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

(5).通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应开发打下基础。

1.1.2设计任务和内容

1设计任务

单片机采用用AT89C51芯片,使用LED(红,黄,绿)代表各个路口的交通灯,用8段数码管对转换时间进行倒时(东西路口,南北路口各10秒,黄灯时间3秒)。

2设计内容

(1)设计并绘制硬件电路图。

(2)编写程序并将调试好的程序在proteus软件中仿真

3方案设计与论证

显示界面方案

该系统要求完成倒计时、状态灯等功能。

按照任务要求采用数码管和MAX7219驱动芯片

设计方框图

整个设计以AT89C51单片机为核心,由数码管显示,LED数码管显示,MAX驱动芯片。

硬件模块入图2-1。

4交通管理的方案论证

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。

红灯亮禁止通行,绿灯亮允许通行。

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。

指示灯燃亮的方案如表2。

25

5

25

5S

……

东西道

红灯亮

红灯亮

绿灯亮

黄灯亮

……

南北道

绿灯亮

黄灯亮

红灯亮

红灯亮

……

表2说明:

(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。

时间为5秒。

(2)黄灯5秒,警示车辆和行人红、绿灯的状态即将切换。

(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。

时间为5秒。

(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。

5芯片简介

1)AT89C51单片机简介

(2)各引脚功能说明

Vcc:

+5V电源电压。

Vss:

电路接地端。

P0.0~P0.7:

通道0,它是8位漏极开路的双向I/O通道�当扩展外部存贮器时,这也

是低八位地址和数据总线�在编程和校验期间�它输入和输出字节代码,通道0吸收/

发出二个TTL负载P1.0~P1.7:

通道1是8位拟双向I/O通道,在编程和校验时,它发

出低8位地址。

11

通道1吸收/发出一个TTL负载。

P2.0~P2.7:

通道2是8位拟双向I/O通道。

当访问外部存贮器时,用作高8位地址

总线。

通道2能吸收/发出一个TTL负载。

P3.0~P3.7:

通道3准双向I/O通道。

通道3能吸收/发出一个TTL负载,P3通道的

每一根线还有另一种功能:

P3.0:

RXD,串行输入口。

P3.1:

TXD,串行输出口。

P3.2:

INT0,外部中断0输入口。

P3.3:

INT1,外部中断1输入口。

P3.4:

T0,定时器/计数器0外部事件脉冲输入端。

P3.5:

T1,定时器/计数器1外部事件脉冲输入端

P3.6:

WR,外部数据存贮器写脉冲。

P3.7:

RD,外部数据存贮器读脉冲。

RST/VpD:

引脚9,复位输入信号,振荡器工作时,该引脚上2个机器周期的高电平

可以实现复位操作,在掉电情况下Vcc降到操作允许限度以下后备电源加到此

引脚将只给片内RAM供电。

ALE/PROG:

引脚30,地址锁存有效信号,其主要作用是提供一个适当的定时信号,

在它的下降沿用于外部程序存储器或外部数据存贮器的低8位地址锁存,使总线P0输

出/输入口分时用作地址总线,低8位,和数据总线,此信号每个机器出现2次,只是

在访问外部数据存储器期间才不输出ALE。

所以,在任何不使用外部数据存贮器的系统

中,ALE以1/6振荡频率的固定速率输出,因而它能用作外部时钟或定时,8751内的

EPROM编程时,此端输编程脉冲信号。

PSEN:

引脚29,程序选通有效信号,当从外部程序存贮器读取指令时产生,低电平

时,指令寄存器的内容读到数据总线上。

EA/VPP:

引脚31,当保持TTL高电平时,如果指令计数器小于4096~8051执行内

部ROM的指令,8751执行内部EPROM的指令,当使TTL为低电平时,从外部程序

存贮器取出所有指令,在8751内的EPROM编程时,此端为21V编程电源输入端。

XTAL1:

引脚18,内部振荡器外接晶振的一个输入端,HMOS芯片使用外部振荡源

时,,此端必须接地。

XTAL2:

引脚19,内部振荡器外

2)MAX7219芯片简介

MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器

与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。

其上包括一

个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存

储每一个数据。

只有一个外部寄存器用来设置各个LED的段电流。

MAX7221与SPI™、QSPI™

以及MICROWIRE™相兼容,同时它有限制回转电流的段驱动来减少EMI(电磁干扰)。

一个方便的四线串行接口可以联接所有通用的微处理器。

每个数据可以寻址在更新时不需

要改写所有的显示。

MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。

整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存

器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式

电路模块

1.1.3驱动芯片和LED数码管显设计方框图

1.1.4设计原理分析

对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:

车流量=车流/时间来表示。

先设定一些标号如图2-1所示。

说明:

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

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

图2-1

请注意图2-1b和图2-1d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。

依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图2-3可以看出,相邻路口的灯它们的状态在相位上相差180°。

因此最终只需写出一组S1、S2、S3、S4的逻辑状态表。

如表2-1所示。

表2-1

表中的“×”代表是红灯亮(也代表逻辑上的0),“√”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值。

1.1.4交通灯显示时间的理论分析与计算

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

T-S1+T-S2=T-S3

T-S2=T-S4

T-S1=T-S3

我们可以依据上述的标准来改变车辆的放行时间。

按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参考

第2章仿真图与设计程序

2.1LED数码管显示模块

静态显示方式:

静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。

在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。

由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。

静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。

其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。

随着显示器位数的增加,需要的I/O口线也将增加。

(2)动态显示方式:

动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。

对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。

通过调整电流和时间参数,可以既保证亮度,又保证显示。

若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。

示部分,电路图如下

2.1程序:

倒计时子程序

红绿灯部分

;MAX7219子程序

MAX7219:

CLRP1.1;将LOAD信号拉低

LCALLXH1;一位字节送入7219

MOVA,R7;

LCALLXH1;

NOP

NOP

SETBP1.1;产生LOAD上升沿,锁存数据

RET

XH1:

MOVR2,#08H;总共有8位,移8次

NEXT:

CLRP1.2;将CLK拉低

RLCA;A中值左移入进位累加器C中

MOVP1.0,C;给DIN口

NOP

SETBP1.2;CLK上升沿,移入数据

NOP

DJNZR2,NEXT;没完成则继续

RET

SHORT_DELAY:

MOV10H,#40;10ms

DEL:

MOV11H,#50

DEL1:

MOV12H,#255

DEL2:

DJNZ12H,DEL2;125*2us=0.25ms

DJNZ11H,DEL1

DJNZ10H,DEL;0.25ms*40=10ms

RET

END

红绿灯子程序

LOOP:

MOVR3,#26

MOVP0,#1EH

LCALLDISP

RET

LOOP1:

MOVR3,#6

MOVP0,#1DH

LCALLDISP

RET

LOOP2:

MOVR3,#25

MOVP0,#33H

LCALLDISP

RET

LOOP3:

MOVR3,#6

MOVP0,#2BH

LCALLDISP

RET

总程序CLKEQUP1.2

DINEQUP1.0

LOADEQUP1.1

ORG0000H

LJMPMAIN

ORG0090H

MAIN:

LCALLLOOP

LCALLLOOP1

LCALLLOOP2

LCALLLOOP3

LJMPMAIN

LOOP:

MOVR3,#26

MOVP0,#1EH

LCALLDISP

RET

LOOP1:

MOVR3,#6

MOVP0,#1DH

LCALLDISP

RET

LOOP2:

MOVR3,#25

MOVP0,#33H

LCALLDISP

RET

LOOP3:

MOVR3,#6

MOVP0,#2BH

LCALLDISP

RET

DISP:

MOVA,#09H;置译码器方式寄存器地址

MOVR7,#0FFH;选择译码方式

LCALLMAX7219;写入

MOVA,#0AH;置亮度寄存器地址

MOVR7,#05H;选择占空比

LCALLMAX7219;写入

MOVA,#0BH;置MAX7219显示扫描位数寄存器地址

MOVR7,#07H;选择8位显示方式

LCALLMAX7219;写入

MOVA,#0CH;置关闭显示寄存器地址

MOVR7,#01H;选择进入正常工作,00H表示关闭

LCALLMAX7219;写入

MOV20H,R3

DEC20H

MOVA,20H

MOVB,#10

DIVAB

MOV30H,A

MOV31H,B

MOVR0,#30H

CLRP1.1;

MOVR1,#03H;指向第0位LED

MOVA,@R0;取显示缓冲区数据

MOVR7,A;显示数

MOVA,R1;LED显示的位地址给A

LCALLMAX7219;

INCR0;指向下一个显示数据

INCR1;指向另一个数码管

MOVA,@R0

MOVR7,A

MOVA,R1

LCALLMAX7219

MOVR0,#30H

CLRP1.1;

MOVR1,#07H;指向第0位LED

MOVA,@R0;取显示缓冲区数据

MOVR7,A;显示数

MOVA,R1;LED显示的位地址给A

LCALLMAX7219;

INCR0;指向下一个显示数据

INCR1;指向另一个数码管

MOVA,@R0

MOVR7,A

MOVA,R1

LCALLMAX7219

LCALLSHORT_DELAY

DJNZR3,DISP

RET

;MAX7219子程序

MAX7219:

CLRP1.1;将LOAD信号拉低

LCALLXH1;一位字节送入7219

MOVA,R7;

LCALLXH1;

NOP

NOP

SETBP1.1;产生LOAD上升沿,锁存数据

RET

XH1:

MOVR2,#08H;总共有8位,移8次

NEXT:

CLRP1.2;将CLK拉低

RLCA;A中值左移入进位累加器C中

MOVP1.0,C;给DIN口

NOP

SETBP1.2;CLK上升沿,移入数据

NOP

DJNZR2,NEXT;没完成则继续

RET

SHORT_DELAY:

MOV10H,#40;10ms

DEL:

MOV11H,#50

DEL1:

MOV12H,#255

DEL2:

DJNZ12H,DEL2;125*2us=0.25ms

DJNZ11H,DEL1

DJNZ10H,DEL;0.25ms*40=10ms

RET

END

(数码管显示倒计时时间的交通灯控制设计)计)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1