视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
51系列单片机控制十字路口交通灯控制器设计
2025-09-25 14:15:14 责编:小OO
文档
基于51系列单片机控制十字路口交通灯控制器设计

实验指导书

仇国庆  编写

重庆邮电大学自动化学院

自动化专业实验中心

基于51系列单片机控制十字路口交通灯控制器设计实验

随着社会经济的发展,城市交通越来越成为人们不可忽视的问题。人、车、路之间的协调,已经成为交通管理部门主要解决的问题。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。而交通信号灯是我们常见的交通管理系统。

一、实验目的:

1、通过交通信号灯控制系统的设计,掌握51系列单片机传输数据的方法,以控制发光二极管的亮与灭;

2、用80C51作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理.

3、通过单片机控制设计,熟练掌握汇编语言、C语言等编程方法与技巧,将理论联系到实践中去,提高动手的能力;

4、完成控制系统的硬件设计、软件设计、仿真调试。

二、设计要求 

利用51系列单片机实验板、交通灯控制模组设计交通灯控制系统,要求具有下述功能: 

1、系统有两个状态,设置状态和显示状态,利用51系列单片机实验板的键盘进行两个状态间的切换; 

2、开机时,系统为显示状态,四个路口数码管从默认的倒计时时间(开始倒计时; 

3、设置状态时利用51系列单片机实验板的KEY1~KEY3键盘可以设置各路口直行通行倒计时时间,设置的路口数码管闪烁显示,各路口的通行时间可以不相等,其中KEY2为加1键,KEY3为减1键,KEY1为确定键; 

4、显示状态时,交通灯模组的四个LED板的数码管进行倒计时;LED板各组的红绿灯进行交通指示;如果一个LED板上有三个绿灯亮,这时候数码管显示的是通行时间,否则,数码管显示的是等待时间;显示过程中按KEY1键可以重新进入设置状态。

5、具体内容:因为本设计是交通灯的单片机控制设计,所以要了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。然后转状态1南北红灯,东西绿灯通车。过一段时间转状态2东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭,闪几次黄灯,东西仍然红灯。最后循环至状态1。

6、扩展要求 

二、系统方案组成

1 系统硬件框图 

本系统由一套51系列单片机实验板和一套(四块)交通灯模组构成,如图 2.1,51系列单片机实验板通过I/O口控制交通灯模组中各LED板的数码管和发光二极管的显示;通过51系列单片机实验板上的三个键盘KEY1~KEY3可以设置各LED板指示的路口通行倒计时时间。

图 2.1硬件框图

2 功能框图

图 2.2功能框图

三、十字路口路口交通简介

1 十字路口的交通通行情况简介

图 3.1为十字路口的交通情况

在图中,常规交通灯的绿灯亮状态(通行)顺序为:

图 3.2通行示意图

其中,“1-2”表示1P和2P可以通过路口2通行;“2-3”表示2P和3P可以通过路口3通行;“3-4”表示3P和4P可以通过路口4通行;“4-1”表示4P和1P可以通过路口1通行。

2 交通灯功能简介

本方案的交通灯就是一个简易的交通指示灯控制系统, 由一套51系列单片机实验板和一套交通灯模组构成,功能有:系统有两个状态,设置状态和显示状态,利用51系列单片机实验板的键盘的KEY1键盘可以进行两个状态间的切换;􀁺

开机时,系统为显示状态,四个路口数码管从默认的倒计时时间开始倒计时;􀁺

设置状态时利用51系列单片机实验板的KEY1~KEY3键盘可以设置各路口直行通行倒计时时间,设置的路口数码管闪烁显示,各路口的通行时间可以不相等,其中KEY2为加1键,KEY3为减1键,KEY1为确定键;

显示状态时,交通灯模组的四个LED板的数码管进行倒计时;LED板各组的红绿灯交通指示;如果一个LED板上有三个绿灯亮,这时候数码管显示的是通行时间,否则,数码管显示的是等待时间;显示过程中按KEY1键可以重新进入设置状态。

3 交通灯实验控制模组简介

交通灯模组包括一块驱动电路板(交通灯模组驱动板)和四块LED板(交通灯模组LED板)。

●LED板中每个方向提供四组交通LED灯(包括左转、直行、右转、人行道四组),每组交通灯包括红、黄、绿三个灯,可以实现交通的通行控制;􀁺

●LED板中每个方向提供两个数码管,可以实现100以内的倒计时。

●交通灯模组实物图如图 3.3,使用时,直接用10pin排线连接驱动板的单片机接口和实验板的I/O口即可使用。

图 3.3 交通灯实验控制模组实物图

四、系统硬件设计

由图 2.1的框图可以看出,本系统硬件主要由两大模块组成:控制模块和交通灯指示模块

1. 控制模块原理图 

本系统中控制模块主要是51系列单片机实验板。本系统中控制系统运行的三个按键直接使用KEY1~KEY3, 

另外,51系列单片机实验板通过MAX7219芯片扩展控制交通灯模组的数码管的显示和红、黄、绿LED灯的亮/灭。如图 4.1所示。使用时,可以直接用10pin的排线和交通灯模组驱动板的单片机接口连接。

图4.1 交通灯模组LED电路图

2. 51系列单片机系统ATS51简介

ATS51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位ATS51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

●主要性能参数

·与MCS-51产品指令系统完全兼容

·4k字节在系统编程(ISP)Flash闪速存储器

·1000次擦写周期

·4.0-5.5V的工作电压范围

·全静态工作模式:0Hz-33MHz

·三级程序加密锁

·128×8字节内部RAM

·32个可编程I/O口线

·2个16位定时/计数器

·6个中断源

·全双工串行UART通道

·低功耗空闲和掉电模式

·中断可从空闲模唤醒系统

·看门狗(WDT)及双数据指针

·掉电标识和快速编程特性

·灵活的在系统编程(ISP字节或页写模式)

●功能特性

ATS51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,ATS51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

●引脚功能

Vcc:电源电压

GND:地

P0 :P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1 :Pl 是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,Pl接收低8位地址。

P2 :P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使

端口引脚第二功能
P1.5MOSI(用于ISP编程)
P1.6MISO(用于ISP编程)
P1.7SCK(用于ISP编程)
用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX@Ri 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。

P3 :P3 口是一组带有内部上拉电阻的8 位双向I/0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。

ALE PROG—————:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。¯PSEN:程序储存允许(¯PSEN)输出是外部程序存储器的读选通信号,当ATS51 由外部程序存储器取指令(或数据)时,每个机器周期两次¯PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的¯PSEN信号。

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

XTALl:振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:振荡器反相放大器的输出端。

●电源空闲标志(POF)

在特殊功能寄存器SFR 中PCON的第4 位(PCON.4),电源打开时POF 置“1",它可由软件设置睡眠状态并不为复位所影响。

●存储器结构

MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有KB外部程序和数据的寻址空间。

●程序存储器

如果EA引脚接地(GND),全部程序均执行外部存储器。在ATS51,假如EA接至Vcc(电源+),程序首先执行地址从0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器。

●数据存储器

ATS51 的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。

●看门狗定时器(WDT)

WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看门狗复位SFR(WDTRST)构成。外部复位时,WDT默认为关闭状态,要打开WDT,用户必须按顺序将01EH和0E1H写到WDTRST寄存器(SFR地址为0A6H),当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT 溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。

●使用看门狗(WDT)

WDT打开WDT需按次序写01EH和0E1H到WDTRST寄存器(SFR的地址为0A6H),当WDT打开后,需在一定的时候01EH 和0E1H 到WDTRST 寄存器以避免WDT 计数溢出。14 位WDT 计数器计数达到16383(3FFFH),WDT 将溢出并使器件复位。WDT 打开时,它会随晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个16383 机器周期内复位WDT,也即写01EH和0E1H到WDTRST寄存器,WDTRST为只写寄存器。WDT计数器既不可读也不可写,当WDT溢出时,通常将使RST引脚输出高电平的复位脉冲。复位脉冲持续时间为98×Tosc,而Tosc=1/Fosc(晶体振荡频率)。为使WDT工作最优化,必须在合适的程序代码时间段周期地复位WDT防止WDT溢出。

●掉电和空闲状态时的(WDT)

WDT掉电时期,晶体振荡停止,WDT也停止。掉电模式下,用户不能再复位WDT。有两种方法可退出掉电模式:硬件复位或通过激活外部中断。当硬件复位退出掉电模式时,处理WDT 可象通常的上电复位一样。当由中断退出掉电模式则有所不同,中断低电平状态持续到晶体振荡稳定,当中断电平变为高即响应中断服务。为防止中断误复位,当器件复位,中断引脚持续为低时,WDT并未开始计数,直到中断引脚被拉高为止。这为在掉电模式下的中断执行中断服务程序而设置。为保证WDT在退出掉电模式时极端情况下不溢出,最好在进入掉电模式前复位WDT。在进入空闲模式前,WDT 打开时,WDT 是否继续计数由SFR 中的AUXR 的WDIDLE 位决定,在IDLE 期间(位WDIDLE=0)默认状态是继续计数。为防止ATS51从空闲模式中复位,用户应周期性地设置定时器,重新进入空闲模式。当位WDIDLE被置位,在空闲模式中WDT将停止计数,直到从空闲(IDLE)模式中退出重新开始计数。

●Flash闪速存储器的串行编程

将RST接至Vcc,程序代码存储阵列可通过串行ISP 接口进行编程,串行接口包含SCK线、MOSI(输入)和MISO

(输出)线。将RST拉高后,在其它操作前必须发出编程使能指令,编程前需将芯片擦除。芯片擦除则将存储代码阵列全写为FFH。外部系统时钟信号需接至XTAL1端或在XTALl 和XTAL2接上晶体振荡器。最高的串行时钟(SCK)不超过l/16晶体时钟,当晶体为33MHz时,最大SCK频率为2MHz。

Flash闪速存储器的串行编程方法:

对ATS5l的串行编程次序推荐使用以下方法:

1.上电次序:将电源加在Vcc和GND 引脚,RST 置为“H”,如果XTAL和XTAL2 接上晶体或者在XTAL1 接上3-33MHz的时钟频率,等候10ms。

2.将编程使能指令发送到MOSI(Pinl.5),编程时钟接至SCK(Pinl.7),此频率需小于晶体时钟频率的l/16。

3.代码阵列的编程可选字节模式或页模式。写周期是自身定时的,一般不大于0.5ms(5V电压时)。

4.任意代码单元均可MISO(Pinl.6)和读指令选择相应的地址回读数据进行校验。

5.编程结束应将RST置为“L”以结束操作。

6.断电次序:如果需要的话按这个方法断电,假如没有使用晶体,将XATL置为低,RST置低,关断Vcc。

●数据校验

数据校验也可在串行模式下进行,在这个模式,在一个写周期中,通过输出引脚MISO串行回读一个字节数据的最高位将为最后写入字节的反码。

●ATS51的最小化应用

单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个基本条件:1.电源正常;2.时钟正常;3.复位正常。下面就以我们实验用的51单片机ATS51为例介绍其硬件连接方法。在ATS51单片机的40个引脚中:电源引脚2根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。下面图1就是ATS51最小化应用(仅驱动1个发光二极管)的接线方法:

①、工作电源:电源是单片机工作的动力源泉,废话!没有电源当然不能工作啦:),对应的接线方法为:40脚(VCC)电源引脚,工作时接+5V电源,20脚(GND)为接地线。

②、时钟电路:时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,时钟电路就好比人的心脏,如果人的心跳停止了,人就。。同样,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30PF。

③、复位电路:在复位引脚(9脚)脚持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。如下图所示电容C和电阻R构成了单片机上电自动复位电路,复位后,单片机从0000H单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如下表所示:

④、控制引脚EA接法。EA/VPP(31脚)为内外程序存储器选择控制引脚,当EA为低电位时,单片机从外部程序存储器取指令;当EA接高电平时,单片机从内部程序存储器取指令。。ATS51单片机内部有4KB可反复擦写1000次以上的程序存储器,因此我们把EA接到+5V高电平,让单片机运行内部的程序,我们就可以通过反复烧写来验证我们的程序了。

⑤、接着我们给单片机加一个指示灯。我们在单片机P1.7(8脚)上接一个发光二极管,这样就可以用来做单片机驱动发光二极管的简单实验了,图中发光二极管负极对单片机引脚P1.7之间串接了一个560欧姆的限流电阻,防止发光二极管和单片机的引脚P1.7因为电流过大烧坏,使发光二极管和单片机都工作在安全状态。

  至此,我们完成了ATS51单片机最小化系统的连接,只要把你编写的程序烧写到单片机内部,并接上5V电源就可以正常运行了,单片机剩下的其他可以不接线,就这样空着。

3.MAX7219芯片简介

MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者个的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。一个方便的四线串行接口可以联接所有通用的微处理器。每个数据可以寻址在更新时不需要改写所有的显示。MAX7219/MAX7221同样允许用户对每一个数据选择编码或者不编码。整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。

●应用

条线图显示 仪表面板 工业控制 LED矩阵显示

●功能特点

􀁺 10MHz 连续串行口

􀁺 的LED 段控制

􀁺 数字的译码与非译码选择

􀁺 150μA 的低功耗关闭模式

􀁺 亮度的数字和模拟控制

􀁺 高电压中断显示

􀁺 共阴极LED 显示驱动

􀁺 24 脚的DIP 和SO 封装

●管脚描述

管脚 

名称功能
DIN串行数据输入端口。在时钟上升沿时数据被载入内部的16 位寄存器。

2,3,5-8,10,11 DIG 0–DIG7

八个数据驱动线路置显示器共阴极为低电平。关闭时7219 此管脚输出高电平,7221 呈现高阻抗。

4,9 

GND地线(4 脚和9 脚必须同时接地)

12LOAD(MAX7219)载入数据。连续数据的后16 位在LOAD 端的上升沿时被锁定。

13 CLK时钟序列输入端。最大速率为10MHz.在时钟的上升沿,数据移入内部移位寄存器。下降沿时,数据从DOUT端输出。对MAX7221 来说,只有当cs 端为低电平时时钟输入才有效。

14-17,20-23SEGA–SEG G,DP

7 段和小数点驱动,为显示器提供电流。当一个段驱动关闭时,7219 的此端呈低电平,7221 呈现高阻抗。

18 SET通过一个电阻连接到VDD 来提高段电流。

19 V+正极电压输入,+5V

24 DOUT串行数据输出端口,从DIN 输入的数据在16.5 个时钟周期后在此端有效。当使用多个MAX7219/MAX7221时用此端方便扩展。

●功能图表

●时序图

●串行地址格式

对MAX7219 来说,串行数据在DIN 输入16 位数据包,无论LOAD 端处于何种状态,在时钟的上升沿数据均移入到内部16 位移位寄存器。对MAX7221 来说,无论数据输入或输出cs 必须为低电平。然后数据在LOAD/ cs 的上升沿被载入数据寄存器或控制寄存器。LOAD/ cs 端在第16 个时钟的上升沿同时或之后,下个时钟上升沿之前变为高电平,否则数据将会丢失。在DIN 端的数据传输到移位寄存器在16.5 个时钟周期之后出现在DOUT 端。在时钟的下降沿数据将被输出。数据位标记为D0-D15(如表 1 表示)。D8-D11 为寄存器地址位。D0-D7 为数据位。D12-D15 为无效位。在传输过程中,首先接收到的是D15 位,是非常重要的一位(MSB)。

●数据寄存器和控制寄存器

表2 列出了14 个可寻址的数据寄存器和控制寄存器。数据寄存器由一个在片上的8×8 的双向SRAM 来实现。它们可以直接寻址所以只要在V+大于2V 的情况下每个数据都可以的修改或保存。控制寄存器包括编码模式、显示亮度、扫描、关闭模式以及显示检测五个寄存器。

表2:数据寄存器和控制寄存器

●掉电模式

MAX7219 掉电后,扫描震荡器关闭,所有段电流源和地连接,所要数字驱动与V+相连,所以显示熄灭。MAX 7221 除了数字驱动呈现高阻抗以外其他都与MAX7219 一样。在数据和控制寄存器里的数据是不变的。停机模式可以节省电源,当有一个连续的警报使显示器发光时,便能离开掉电模式。为了满足掉电模式最低的工作电流,逻辑输入应该在GND 或V+(CMOS 的逻辑电位)。MAX7219 和MAX7221 可以在小于250μs 的时间内离开掉电模式。在掉电模式下,显示驱动是可以编程的,而且在显示检测的时候不用考虑他是否在掉电模式工作。

●初始状态

在初始状态下,所有的控制寄存器将被重置,显示器熄灭,MAX7219/MAX7221 进入掉电模式。对显示驱动预先编程为以后显示而用。否则它将以最初的设置来扫描每一位数据,不对数据寄存器里的数据进行扫描,显示亮度寄存器设置为最小值。

●译码模式

寄存器用来设置对每个数据进行B 型BCD 译码或者不译码。寄存器中的每一位对应一个数据。逻辑高电平用来选择译码低电平取消译码。表4 举例说明了译码控制寄存器的格式。

当选择译码模式时,译码器只对数据的低四位进行译码(D3-D0),D4-D6 为无效位。D7 位用来设置小数点,不受译码器的控制且为高电平。表五为B 型译码的格式。

当选择不译码时,数据的八位与MAX7219/MAX7221 的各段线上的信号一致。表六列出了每个数字对应的段

位码。

●亮度控制

MAX7219/MAX7221通过加在V+和ISET之间的一个外部电阻来控制显示亮度。段驱动电流一般是流入ISET端电流的100倍。这个电阻可以是固定的,也可以是可变电阻,通过前面板来控制以选择合适的亮度。其最小值为9.53K Ω ,它设定段电流为40mA。显示亮度也可以通过亮度寄存器来控制。

数字控制显示亮度是通过亮度寄存器的低四位来控制的脉宽调制器来控制。调制器将段电流平均分为16个阶次,最大值为由RSET设置的最大电流的31/32,最小值为电流峰值的1/32(MAX7221为15/16到1/16)。表7列出了亮度寄存器的格式。最小数据熄灭时间设置为时钟周期的1/32.

●扫描控制寄存器

扫描控制寄存器用来设定扫描显示器的个数,从1 个到8 个.它们将以800Hz 的扫描速率进行多路扫描显示。如果数据少的话,扫描速率为8*fosc/N,N 是指需要扫描数字的个数。扫描数据的个数影响显示亮度,所以不能将扫描寄存器设置为空扫描。表8 列出了扫描寄存器的格式。

如果扫描寄存器被设置扫描3 个数据或者更少,个别的数据驱动将损耗过多的能量。所以,RSET 的值必须根据显示数据的个数来确定,从而个别数据驱动对能里的浪费。表9 列出了不同个数字被扫描时所对应的最大需求段电流。

●显示检测寄存器

显示检测寄存器有正常和显示检测两种工作状态。显示检测状态在不改变所有其他控制和数据寄存器(包括关闭寄存器)的情况下将所有LED 都点亮。在此状态下,8 个数据都会被扫描,工作周期为31/32.表10 列出了显示检测寄存器的格式。

●不工作寄存器

当有多个MAX7219或MAX7221被串接使用时要用到不工作寄存器。把所有的芯片的LOAD/CS端联接在一起,把相邻的芯片的DOUT和DIN连接在一起。DOUT是一个CMOS逻辑电平的输出口,他可以很容易的驱动下一级的DIN口。例如,如果四个MAX7219被连接起来使用,然后向第四个芯片发送必要的16位数据,后面跟三组NO-OP代码(如表2所示,十六进制的0xXX0X)。然后使LOAD/CS端变为高电平,数据则被载入所有芯片。前三个芯片接收到NO-OP 代码,第四个接收到有效数据。

五、参考资料;

1. 何立民编著.《单片机应用系统设计》.北京航空航天大学出版社

2. 李立华编.《MCS-51系列单片机实用接口技术》.北京航空航天大学出版社

3. 周航慈著.《单片机应用程序设计技术》.北京航空航天大学出版社

4. 朱麟章、蒙建波主编.《检测理论及其应用》.机械工业出版社下载本文

显示全文
专题