第四章 安显示屏.docx

上传人:b****5 文档编号:7393003 上传时间:2023-01-23 格式:DOCX 页数:23 大小:349.78KB
下载 相关 举报
第四章 安显示屏.docx_第1页
第1页 / 共23页
第四章 安显示屏.docx_第2页
第2页 / 共23页
第四章 安显示屏.docx_第3页
第3页 / 共23页
第四章 安显示屏.docx_第4页
第4页 / 共23页
第四章 安显示屏.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第四章 安显示屏.docx

《第四章 安显示屏.docx》由会员分享,可在线阅读,更多相关《第四章 安显示屏.docx(23页珍藏版)》请在冰豆网上搜索。

第四章 安显示屏.docx

第四章安显示屏

第四章安全显示屏

安全显示屏是铁路系统广泛应用的显示系统,为铁路的正常运营起了较重要的作用。

本章以为某铁路公务段制作的显示屏为例,具体说明采用遥控器的显示系统的设计实现方法。

第一节硬件设计方案

设计时,首先应熟知技术要求。

本显示屏技术要求如下:

1、具有“年、月、日、星期、时、分”显示。

2、具有33行,每行5位的数据显示。

其中第9行是3位的倒计数,前两位不显示,记数初值是100,每日18:

00时数据自动减1,记数范围是100,即从100减到1后再循环,不出现0;第8行组百位进制记数,在倒计数组的数据记满100时该行自动累加100;其余的31行,每行均可以任意预置或修改数据,而且在每日的18:

00时,显示的数据自动累加1。

3、应有如下功能:

记时功能,具有自动时钟;时间与数据均应采用遥控器修改、设置,面版不设按键

遥控器要有逐位及快速移位的改数功能;具有两开两关可人工定时的开、关机功能。

另外,本系统掉电时数据不能丢失,并且输出的组数可任意扩充。

同时要求系统性能稳定、可靠,抗干扰能力强。

依据技术要求,我们设计了由显示系统及主控板组成的硬件系统。

一、显示系统:

显示系统由33块数据显示板和3块时间显示板组成。

显示板如图4-1所示,其中74LS164,74LS247在本书第二章第二节中已作了详细介绍,此处略。

时间显示板中的秒点显示是将发光二极管接至“时”显示位用的74LS164的()脚,每秒送显示时用软件将此位置高或置低,达到闪烁的目的。

 

二、主控板

 

 

图4-2主控板电路原理图

 

图4-2为主控板电路原理图,单片机选用AT89C51,工作频率为20MHz。

由于传送数据较多,考虑串口速度,分成两部分送显示,即时间由P1.0,P1.1,P1.2模拟串口输出至时间显示板,数据由内设串口输出至33块显示板。

将P1.6用作驱动继电器的I/O口,可通过软件人工定时开、关机。

此脚通过光电耦合器、三极管9013和BU406接至继电器,为高电平时继电器吸合,开机;反之,关机。

P1.3和P1.7分别控制时间显示板和数据显示板的电源,送显示时先关闭电源,送数后再打开以保证显示数据的稳定性,避免造成人眼的不适。

AT89C51的INT1脚接遥控器接收头,有键被按下时将引起中断,由中断服务程序处理数据,读入键值,以实现各种控制功能。

为增强抗干扰性,主控板还使用了“看门狗”的复位电路。

我们选用的是Maxim公司的MAX791芯片。

将AT89C51的复位端接至74LS00的3脚,而74LS00的1脚接MAX791的/WDO脚,74LS00的2脚接MAX791的/RESET脚,正常工作时,74LS00的1,2脚是高电平,输出为低电平。

当工作不正常时,/WDO脚变为低电平致使74LS00的3脚输出高电平,AT89C51复位。

MAX791芯片是微处理器的电源监督系统,具有一个独立的“看门狗”复位装置。

显示屏的主控板就使用了这个“看门狗”复位装置。

时钟选用的是时钟芯片DS1642,与时钟芯片DS12887类似,但其即时时钟的时钟寄存器是双缓冲的,保证了读取数据的准确性。

现将这两种集成电路略作介绍。

1、MAX791(MicroprocessorSupervisoryCircuit):

此芯片可以控制微处理器复位,并具有手动复位功能,还可以接入备用电源,实现电源转换,分别提供250mA的电源模式电流或25mA的备用电源模式电流。

MAX791内部有一个电压监视器,设置了1.25V的电压门限值,当电压小于1.25V时由/PFO脚输出低电平;当电压降至(1.25V+150mV)时,由/LOWLINE脚输出低电平,即具有两个电源失效警告。

另外,MAX791具有一个独立的“看门狗”复位装置。

图4-3为管脚图,表4-1为相应的管脚功能。

 

116

215

314

413

512

611

710

89

VBATT/WDPO

VOUT/RESET

VCC/WDO

GND/CEIN

BATTON/CEOUT

/PFOWDI

PFI/LOWLINE

SWT/MR

图4-3MAX791管脚图

 

 

表4-1MAX791管脚功能

序号

名称

功能

1

VBATT

后备电源输入。

连接外部电源、电容器或充电电路。

2

VOUT

输出供给电压。

当VCC高于VBATT及复位门限时,VOUT与VCC相连,当VCC低于VBATT及复位门限时,VOUT与VBATT相连。

使用时,接0.1微法电容至GND。

3

VCC

+5V电源。

4

GND

接地端。

5

BATTON

电源状态输出。

VOUT与VCC相连时输出低电平,VOUT与VBATT相连时输出高电平。

如果需要VOUT的电流>250mA时,可将此脚通过一个限流电阻接至一个PNP管的基极,VCC接发射极,VOUT接集电极。

6

/PFO

电源失效输出。

内接一个独立的电压比较器的输出端,当FPI输入电压<1.25V时,/PFO输出低电平。

7

PFI

电源失效输入。

不用时接GND或VOUT。

8

SWT

调整“看门狗”溢出时间输入。

与VOUT相连时,选择溢出时间为1.6S;通过电容接地时,溢出时间为2.1倍的电容量(nF级,ms)。

9

/MR

手动复位端。

外接按钮或门电路,只要/MR为低电平,/RESET就为低电平,200ms后/MR变为高电平。

10

/LOWLINE

当VCC下降到高于门限电压150mV时,输出低电平。

可用于采用不规则电源时产生不可屏蔽中断,与微处理器的/NMI脚相接。

11

WDI

“看门狗”输入。

不用“看门狗”功能时,可弃置不用,内部的分压器保持其电平处于中间值。

12

/CEOUT

片选输出端。

当电源电压高于门限值且/CEIN为低电平时输出低电平,复位状态且/CEIN为低电平时输出低电平0.015ms或直到/CEIN变为高电平。

13

/CEIN

片选输入端。

不用时接至GND或VOUT。

14

/WDO

“看门狗”输出。

若WDI为高或低电平的时间超过“看门狗”溢出时间,/WDO输出低电平,直到WDI变化。

WDI不连接或复位时,/WDO输出高电平。

15

/RESET

复位端。

VCC低于门限值时为低电平,VCC高于门限值200ms后变为高电平。

16

/WDPO

“看门狗”脉冲输出。

没有WDI变化时,/WDPO将 输出一个最小宽度为1ms的低脉冲。

/WDPO超前/WDO0.07ms。

 

 

 

与“看门狗”相关的管脚有SWT、WDI、/WDO和/WDPO。

SWT“看门狗”定时器溢出周期设定输入端,可通过硬件连接来设定时间。

一般选择芯片默认的定时器周期——1.6s。

WDI端为“看门狗”输入端,若此脚在1.6s内有脉冲输入,“看门狗”输出端/WDO就保持高电平,否则,“看门狗”脉冲输出端/WDPO与/WDO端均会输出低电平,但两者不同:

/WDPO先于/WDO70ns变低,且很快恢复成高电平,而/WDO只在WDI端接收到脉冲后才能恢复成高电平。

时序如图4—4所示。

为此,应将WDI接至AT89C51的一个I/O口,我们接的是P3.2,然后用软件间断性地通过此脚送脉冲给WDI,而将/WDO与/RESET脚通过与非门接到AT89C51的复位端,这样,当电源正常,单片机也正常工作时,/WDO与/RESET均输出高电平,AT89C51不复位;而当单片机程序跑飞,“看门狗”没有脉冲输入时,/WDO输出低电平,或者当VCC低于门限值时,/RESET变为低电平,都会使AT89C51复位,单片机恢复正常工作。

另外,使用此芯片时电源端VCC接+5V,GND端接地,而/MR端需外接RC复位电路,当外接电阻为10K时,电容选20μF即可。

2、DS1642(NonvolatileRealTimeClocksRAM)

DS1642的NVSRAM、即时时钟、晶体振荡电路、电源失效控制电路、锂能电池均设计在IC里,同时即时时钟的时钟寄存器采用双缓冲结构,不但避免了在时钟更新周期存取到错误的数据,而且也防止了时间丢失。

它还具有在电源超出变化范围(10%)时可选择的电源失效写入保护装置,使时钟工作在数据保留模式,以维持计时动作、时钟及SRAM的数据。

在不接电源的情况下,操作可超过十年。

DS1642的即时时钟数据位于最高的8个RAM地址,包含年、月、日、星期、时、分、秒,都以BCD码表示,每个月的天数和闰年的校正都是自动完成的,在25摄氏度时,时间的准确度是每个月在1分钟以内。

其管脚如图4-5所示,引脚如表4-2所示。

A7124Vcc

A6223A8

A5322A9

A4421/WE

A3520/OE

A2619A10

A1718/CE

A0817DQ7

DQ0916DQ6

DQ11015DQ5

DQ21114DQ4

GND1213DQ3

 

图4-5DS1642的引脚图

A0—A10

地址线

DQ0—DQ7

数据线

/CE

片选

/OE

输出使能

/WE

写使能

Vcc

+5V

表4-2引脚说明

 

使用时,DS1642的DQ0—DQ7与AT89C51的P0口相连,A0—A7通过74LS373与AT89C51的P0口相连,以传输数据,A8—A10与AT89C51的P.0、P.1、P.2相连使高位地址为07H,/OE接AT89C51的/R端,/WE接AT89C51的/W端。

DS1642的寄存器映像如表4-3所示。

地址

数据

功能

B7B6B5B4B3B2B1B0

07FF

年00-99

07FE

XXX

月01-12

07FD

XX

日01-31

07FC

XFTXXX

星期01-07

07FB

X

时00-23

07FA

X

分00-59

07F9

/OSC

秒00-59

07F8

WR

控制寄存器A

表4-3DS1642寄存器映像图

 

其中,/OSC=停止位,R=读取位,W=写入位,FT=频率测试,X表示不使用。

对时钟操作时,应先启动时钟,在软件中要对DS1642进行初始化。

1、启动时钟

秒寄存器的/OSC为停止位,为0时,打开时钟振荡器,开始继续计时。

即在初始化时应将“0”写入秒寄存器的停止位/OSC(07F9H送00H)

2、读取时钟

读取时钟时应该停止外部时钟寄存器的更新工作以预防在更新过渡期间读到时钟数据。

方法是将“1”写入控制寄存器的读取位R(07F8H中写入40H),更新工作就会停止,此时虽然各时钟寄存器的数据不再发生变化,双缓冲器系统的内部时钟仍继续计数,以确保时钟的准确性。

读取时钟结束时,将控制寄存器的读取位R复位(07F8H中写入00H),1秒中内时钟全部更新。

3、写入时钟

写入时钟时将“1”写入控制寄存器的写入位W(07F8H中写入80H)时,停止寄存器更新工作,将24小时制BCD码格式表示的正确时钟数据写入相应寄存器,当写入位W复位(07F8H中写入00H)时,DS1642会将载入的时钟数据转移到实际的时钟计数器,在此基础上重新正常运作。

 

第三节软件设计

一、程序框图及说明

1、主程序

主程序完成AT89C51的初始化(设置堆栈区定时器工作方式、串口的初始化,,及DS1642的初始化,开机、关机,并不断检测遥控器键值以设置代表各种工作状态的标志,调用各功能子程序以使系统完成各个预定功能。

1、部分标志含义:

(1)KAIG(1FH):

校开关,为零时开,表示校时、校闹铃及校数结束,允许关机及再次校时、校闹铃及校数;为FFH时关,表示正在校时、校闹铃或校数,不允许关机及进行另外的校工作。

(2)SHAN(20H):

20H.0——校数闪烁标志位,20H.1——校时间、校闹铃闪烁标志位,20H.2——在校工作标志,为1时,在校。

(3)NAOBIAO(22H):

记录闹铃1,2键被按次数,按一次分别是闹铃1和3,显示号为11和21,按第二次是闹铃2和4,显示序号为12和22。

(4)BIAOZHI(41H):

在校的标志单元,00H为校时间,88H为校闹铃1,99H为校闹铃2,AAH为校数。

(5)MIAOA(43H):

秒比较单元,用以存放秒的数值,当前秒与之不同时,送时间与数显示,以达到每秒送数据的目的。

2、程序说明:

主程序不断进行按键的判断,当键值相符时,调用相应子程序,执行相应功能。

按键判断顺序如下:

开机、关机、校时、闹铃1、闹铃2、校数、0、1、2、3、4、5、6、7、8、9,下移、上移、左移、右移,各键与原键名称对应关系及键值操作码如表4—2所示。

原键功能

操作码

16进制

新键功能

原键功能

操作码

16进制

新键功能

按健1

00000000

00H

数字1

静音

01001100

4CH

开机

按健2

00010000

10H

数字2

关机时间

11101000

E8H

关机

按健3

00001000

08H

数字3

电源开关

01000000

40H

校时间

按健4

00011000

18H

数字4

频道+

01010000

50H

上移

按健5

00000100

04H

数字5

频道-

01001000

48H

下移

按健6

00010100

14H

数字6

音量+

01000100

44H

左移

按健7

00001100

0CH

数字7

音量-

01010100

54H

右移

按健8

00011100

1CH

数字8

标准状态

11010000

D0H

闹铃1

按健9

10000000

80H

数字9

屏显

11011000

D8H

闹铃2

按健0/30

10010000

90H

数字0

状态切换

01011100

5CH

校数字

表4—4键值功能对应表

 

2、行数确定子程序

本程序是为了确定数据修改时闪烁位上移、下移的范围而编制的。

数据存储范围是0100H~0300H共计33行的前5位,HANGD存储低位地址,HANGG存储高位地址,闪烁位在上移或下移键控制下每次移动一行,移动后,调用此程序进行行有效位的判定,并及时修正。

3、读时钟子程序

将时钟读入AT89C51的子程序。

读数时,给DS1642的07F8H单元送40H,然后按顺序将秒、分、时、星期、日、月、年低位送入AT89C51的30H至36H单元。

4、开校子程序

启动T0中断。

T0中断服务程序完成校时、校闹铃、校数时的送闪烁显示功能。

本程序用于设在校标志,设计数器T0初值,开T0中断的功能。

5、关校子程序

本程序完成关中断,存储存储时间和闹铃的功能,注意结束中断时应重新读入时间和数据,并送显示。

6、读闹铃子程序

本系统可存储可修改的两开两关的定时,第1、3组为开闹铃,第2、4组为关闹铃。

按键使用方法:

按“闹铃1”——第一次,显示第1组闹铃,按“闹铃1”——第二次,显示第2组闹铃;按“闹铃2”——第一次,显示第3组闹铃,按“闹铃2”——第二次,显示第4组闹铃。

在调整闹铃时,先显示已存入的闹铃,显示单元分配如下:

时、分显示时间,星期显示选用信息,日显示闹铃序号。

因不设秒位,默认闹铃时间为整秒。

在DS1642中预留(0020H——002FH)16个地址,分别存储每组闹铃的标号、选用信息、时和分,标号分别为11、12、21、22,选用时,选用位为1,不用时为0。

因此,按下“闹铃1”或“闹铃2”,应将闹铃全部信息送入AT89C51的31H~34H单元,本程序完成闹铃读入功能。

7、判断闹铃子程序

是判断是否到开关机时间的子程序,由主程序不断调用,以随时执行开关机功能。

先检验是否为整秒,即秒是否为0,不为0时,退出程序;为0时,进行闹铃是否选用的判断,如选用则继续判断时间是否与先存入的闹铃时间一致,一致时,分别执行开关机功能。

注意开机时应重新取时间,取数,送显示。

8、送时间显示子程序

时间采用模拟串口发送至数据显示板,送数顺序为年高位,年低位,月,日,星期,时,分,秒,送显示前先关显示屏,避免闪烁,送完后开显示屏。

星期位显示1,2,3,4,5,6,日,星期日时送08H,即在程序中当星期数长到07H时送08H。

月,日,时,分,秒高位为0时应显示黑,时间传送前应进行位交换处理以与硬件显示板相适应。

送黑与位交换处理为2个子程序,每送一个字节调用一次。

秒点的处理是利用74LS164的空脚,如:

时显示的数值范围是0~24,高位最大为2,即0010H,空两位不用,故可用任何一位作控制位。

也可利用星期,分,秒无用位。

本系统是将发光二极管接至“时”显示板的74LS164的()脚,每秒取反一次,即若前一秒送高,后一秒送低。

模拟串口用P1.0脚作输出端,P1.2脚模拟时钟,即每送一位数,先送脉冲一次。

9、校数时送数显示子程序

P1.7脚外接显示屏控制电源,送数前先关屏,送数后再开屏,以免闪烁。

校数时,被校数位应随按键值变化,并应闪烁以同其它位相区分。

闪烁的定位直接针对存数地址。

本系统分配的数据存储空间为DS1642的0100H至0300H共31行的前5位,如第一行地址为0100H~0104H,依次类推。

送数显示时,第1位占用一片74LS164,第2、3位合用一片74LS164,第4、5位合用一片74LS164,故第2、第4位数(十进制的0~9)应变为高4位(BCD码0000~1001)后分别与第1、第3位数(低4位)合并为一字节,因此,显示板有3片74LS164,串口传送一行数需传送三字节。

程序中主要进行字节合并及传送地址的处理,送数顺序为0300H~0304H,02F0H~02F4H,02E0H~02E4H,一直到0100H~0104H,行与行之间相差14H,可用下法处理:

每次送数均将地址加1后进行判断,当低4位地址(如F4H)的低4位变成05H时,低4位地址减15H,高4位地址减借位,即可将地址调整到下一行。

串口传送用串口发送子程序DSS进行,每送一字节调用一次,使程序得到简化。

其中的字节交换语句是为了与硬件连接相匹配而编写的,读者在应用中应注意与实际相结合。

10、送数显示子程序

用于每秒一次的数的显示,为了快捷、方便,用数据预处理子程序将数据先保存至DS1642的从0400H开始的99个单元,送数时只需给出送数首地址0400H,再给出送数个数99,用减1判断指令DJNZ即可。

11、数据预处理子程序

本程序用于将每天18时增长、变化的数据进行预处理,以提高传送速度。

计数后存入的地址是0100H~0300H共33行,分别占据每行的前5个字节,数据地址处于间断状态,传送时再合并会影响传送速度,显示板显示有些闪;整理后数据存入0400H开始的99个连续地址,程序需解决数的换行问题,与校数时送数显示子程序处理方法相同。

 

12、十进制计数子程序

完成31行每天的数据变化功能,即每天18时的数据加1功能,5位数字组成十进制的计数器,计数范围是00000~99999。

数字增加到0AH时应变为0,并向前一位进1。

故程序中应实现定时累加,自动进位的功能。

注意到第8及第9行有特殊要求,地址不连续,程序应能准确调整地址,因此程序中用R0来统计进位个数,以辅助地址调整。

13、倒计数及百进制计数子程序

实现功能:

第9行(地址为0180H~0184H)为倒计数,第8行(地址为0170H~0174H)为百进制。

倒计数行前两位送黑(即不显示,存数单元送0FH),后两位显示范围是100至1,共计数100个,且百位、十位减完后送黑。

百进制行后2位可用遥控器控制,前3位为十进制,倒计数行从1变100时,百进制行加100。

程序中应考虑十六进制的变化范围与十进制的差异,如0倒减1时为0FH,应显示9,则给相应单元送09H;而百、千位为9加1时,出现0AH,应有进位,此位变0,上位加1。

故程序以数值不断判断数值的方式,随时做数值处理。

注意本程序为十进制计数子程序调用,退出前应将DPTR赋值0194H,以确保地址的连续性。

14、存时间子程序

在停止校工作时,若经判断是校时结束则调用存时间子程序。

修改后的时间存储在AT89C51中的31H~36H单元中,需存入DS1642,以实现时间的修改。

存入时,DS1642的07F8H单元要先送80H,让其可写;存数结束时,DS1642的07F8H单元要送00H,结束写状态。

存入时间时还要注意判断存入时间的合理性,不合理时应及时修改。

15、存闹铃子程序

由主程序及停校子程序调用。

每组闹铃修改后都存在AT89C51中的31H~34H中,故修改闹铃时4组闹铃要反复占用,应及时存取。

存储时按序号地址将4组闹铃分别存入DS1642的相应位置,同时注意判断闹铃的合理性。

16、T0中断服务程序

T0中断服务程序判断应执行校时、校闹还是校数功能,处理相应闪烁位的标号,将遥控器修改的键值存入相应地址,记录中断次数,每中断59H次后调送闪烁显示子程序以达到被修改位闪烁的效果。

当标志为00H时,是校时,闪烁位应是分,时,星期,日,月,年低位中的某一位,除星期外,每个时间均占两位,则闪烁位有效标号应为11H~1BH。

在用遥控器“左移”或“右移”键作修改位调整时,每按一次,标号减1或加1,故T0中断程序首先应解决标号合理性问题,以便闪烁位能在时间位上循环。

当标志为88H或99H时,是校闹铃,闪烁位应是分,时,星期中的某一位(日单元中存储的闹铃序号不能修改),除星期外,每个时间均占两位,则闪烁位有效标号应为11H~15H。

同校时一样,也应能循环闪烁。

当标志为AAH时,是校数,数的调整范围是33行/5位,除在行数确定子程序中完成行范围的确定,还应在T0中断程序中完成闪烁位的连续调整。

程序中用实际存数地址

直接调整,行低位地址的低4位应在0H~4H中,故当地址在加1后变为5H时,将闪烁位调至本行首端(X0H),当地址在减1后变为FH时,将闪烁位调至上行末端(X4H),其中,X代表低位地址的高4位。

17、读时间闪烁位子程序

读时间闪烁位子程序完成按照闪烁位标号读取相应时间或闹铃的功能,由闪烁显示子程序调用,完成校时或校闹铃修改位的闪烁。

下表为读数值时标号与闪烁位的对应关系。

为简化程序,节省空间,可将数值读入ACC中,由闪烁显示子程序去辨别处理。

标号

11H

12H

13H

14H

15H

16H

17H

18H

19H

1AH

1BH

时间

分低位

分高位

时低位

时高位

星期

日低位

日高位

月低位

月高位

年低位低4位

年低位高4位

闹铃

分低位

分高位

时低位

时高位

选用信息

18、写时间闪烁位子程序

写时间闪烁位子程序由闪烁显示子程序调用,完成按照

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

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

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

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