万年历事物报 警系统研究与设计Word文档格式.docx
《万年历事物报 警系统研究与设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《万年历事物报 警系统研究与设计Word文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
2.2.2时钟电路DS13027
2.2.3显示驱动MAX72199
2.3主要单元电路的设计11
2.3.1显示电路11
2.3.2键盘接口12
2.3.3时钟电路15
第三章系统的软件设计17
3.1程序设计17
3.2程序流程图18
3.2.1显示驱动程序流程图18
3.2.2时间控制流程图19
第四章万年历功能的扩展报警系统20
4.1温度报警功能的扩展20
第五章总结22
5.1总结22
5.2展望23
致谢24
参考文献25
第一章绪论
1.1万年历系统研究的背景
随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使中保的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精准更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有的传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者得生活需求。
因此,电子万年历的出现带来了钟表计时业界跨越性的进步……
我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能,商家生产的电子万年历更质量,价格,使用上该考虑,不断的改进电子万年历的设计,使其更加的具有市场。
本设计为软件,硬件相结合的一组设计,在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。
基本的要了解一些主要器件的基本功能和作用。
除了采用集成化的时钟芯片外,还采用MCU的方案,利用AT89系列单片机微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大的特点是:
硬件电路简单,安装方便易于实现。
软件设计独特,可靠。
AT89C51是由ATMEL公司推出的一种小型单片机。
95年出现在中国市场。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。
本文介绍了基于AT89C51单片机设计的电子万年历。
首先我们简单介绍了单片机的发展与其在中低端领域中的优势以及可以的开发意义;
接着介绍了AT89C51单片机的硬件结构和本毕业论文所要外扩的LED显示及其驱动方法,并在此基础上实现了万年历基本电路的设计,然后使用单片机汇编语言进行万年历程序的设计,程序采用模块化结构,使得逻辑关系简单明了,维护方便。
图1-1数码管显示万年历图1-2数字万年历
图1-3液晶显示万年历
1.2功能要求
本电子万年历能动态显示年、月、日、星期、小时、分钟、秒。
1.3主要的研究内容及模块的选择
1.3.1技术可行性
随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时计数器、终端控制器及其他控制部件集成在一个芯片之中,制成单片计算机。
而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继作用、数据采集系统、自动测试系统等。
单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用喜用所形成的下述特点有关:
1.单片机构成的应用系统有较大的可靠性。
这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的连接外,还可以方便地采用软、硬件技术。
2.系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。
3.由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特性,不须改变硬件系统就能适当地改变系统功能。
4.有优异的性能、价格比。
1.3.2单片机的选择
采用传统的AT89C51作为电机的控制核心。
单片机算术运算功能强,软件编程灵活,自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
图1-4AT89C51实物图
1.3.3显示模块的选择
采用传统的LED数码管显示。
数码管具有:
低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高温,对外界环境要求低、易于维护,同时其精度比较高,称重轻,精确可高,操作简单。
数码管采用BCD编码显示数字,程序编译容易,资源占用较少。
液晶显示屏具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。
所以不选择液晶显示屏为显示模块。
1.3.4键盘模块的选择
在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,一次需要用按键。
因为本系统需要的按键不多,星期加1键,日期加1键,月数加1键,年数加1键,秒数加1键,分数加1键,时数加1键,时间/日期切换键,要求简单。
所以选择采用简单的独立式键盘。
独立式键盘是指直接用I/O口线构成的单个按键电路。
独立式按键电路配置灵活,软件结构简单。
1.3.5总体方案的选择
按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示驱动及显示模块和键盘接口模块共4个模块组成,电路系统构成框图如图所示。
图1-5电子万年历电路系统构成框图
主控芯片使用51系列AT89C51单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟DS1302采用DS13.2作为计时芯片,可以做到计时准确。
更重要的是,DS1302可以在很小电流的后备电源(2.5~5.5V电源,再2.5V时耗电小于300nA),而且DS1302可以编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。
显示驱动采用MAX7219,MAX7219是微处理器和共阴极八段八位LED数码管显示、图条/柱图显示或61点阵显示接口的小型串行输入输出芯片。
片内包括BCD译码起、多路扫描控制器、字和位驱动器和8×
8静态RAM。
外部只需要一个电阻设置所有LED显示器字段电流。
MAX7219和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。
允许使用者选择每位是BCD译码或不译码。
使用者还可选择停机模式、数字亮度控制、从1~8选择扫描位数和对所有LED掀起的测试模式。
显示模块采用普通的共阴极四位一体八段LED数码管。
第二章系统硬件电路的设计
2.1电路设计
下图为电子万年历电路设计原理图,系统由主控制器AT89C51、时钟电路DS1302、显示驱动MAX7219电路,显示电路及键扫描电路组成。
图2-1电子万年历电路设计原理图
2.2系统硬件的介绍
2.2.1主控制器AT89C51
ATMEL公司生产的AT89C51单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:
8KBFlashROM,可以擦除1000次以上,数据保存10年。
●256字节内部RAM;
●电源控制模式;
●时钟可停止和恢复;
●空闲模式;
●掉电模式;
●6个中断源;
●4个中断优先级;
●4个8位I/O口;
●全双工增强型TUAR;
●3个16位定时/计数器:
T0、T1(标准80C51)和增加的T2(捕获和比较)
●全静态工作方式:
0~24MHZ
2.2.2时钟电路DS1302
DS1302的性能特性:
●实时时钟,可对秒、分、时、日、周、月以及带闰月补偿的年进行比较;
●用于高速数据暂存的31×
8位RAM;
●最少引脚的串行I/O;
●2.5~5.5V电压工作范围;
●2.5V时耗小于300nA;
●用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;
●简单的三线接口;
●可选的慢速充电(至Vcc1)的能力。
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被访问到。
在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
时钟脉冲的个数在单字节方式下为8+8,在多字节方式下为8+字节数,最大可达248字节数。
如果在传送过程中置RST脚为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST脚必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
DS1302的控制字如图所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6如果为0,则表示存取日历时钟数据;
为1则表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)如果位0,则表示要进行写操作;
为1表示进行读操作。
控制字节总是从最低位开始输入/输出。
为了提高对32个地址寻址能力(地址/命令位1~5=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式。
位6规定时钟或RAM,而位0规定读或写。
在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能存储器数据。
在多字节方式下,读或写从地址0的位0开始。
必须按数据传送的次序写最先的8个寄存器。
但是,当以多字节方式写RAM时,为了传送数据不必写所有的31字节,不管是否写了全部31字节,所写的每一字节都将传送至RAM。
DS1302共有12个寄存器,其中有7个寄存器与日历/时钟相关,存放的数据位为BCD码形式。
其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作,偶数为写操作。
图2-2DS1302实物图
表2-1DS1302地址
寄存器名
命令字
取值范围
各位内容
写操作
读操作
7
6
5
4
3
2
1
秒寄存器
80H
81H
00-59
CH
10SEC
SEC
分寄存器
82H
83H
10MIN
MIN
时寄存器
84H
85H
01-12或00-23
12/24
10
HR
日寄存器
86H
87H
01-28,29,30,31
1DATE
DATE
月寄存器
88H
89H
01-12
10M
MONTH
周寄存器
8AH
8BH
01-07
DAY
年寄存器
8CH
8DH
00-99
10YEAR
YEAR
时钟暂停:
秒寄存器的位7定义位时钟暂停位。
当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。
当它为0时,时钟将开始启动。
AM-PM/12-24小时方式:
小时寄存器的位7定义为12或24小时方式选择位。
它为高电平时,选择12小时方式。
在此方式下,位5为第二个10小时位(20~23h)。
DS1302的晶振选用32768Hz,电容推荐值为6pF。
因为振荡频率较低,也可以不接电容,对计时精度影响不大。
2.2.3显示驱动MAX7219
●MAX7219和单片计算机连接有三条引线(DIN、CLK、LOAD),采用16位数据串行移位接收方式
●八位LED显示、图条/柱图显示或64点阵显示
●包括BCD译码器、多路扫描控制器、字和位驱动器和8×
8静态RAM
●可选择停机模式、数字亮度控制、从1~8选择扫描位数和对所有LED显示器的测试模式
●最多能驱动8位LED显示器
●内部RAM地址01~08H分别对应于DIG0~DIG7.
●扫描界限寄存器(地址0BH):
该寄存器中D0~D3位数据设定值为0~7H,设定值表示显示器动态扫描个数位1~8。
●停机寄存器(地址0CH):
当D0=0时,MAX721处于停机状态;
当D0=1时,处于正常工作状态。
●显示测试寄存器(地址0FH):
当D0=0时,MAX7219按设定模式正常工作;
当D0=1时,处于测试状态。
在该状态下,不管MAX7219处于什么模式,全部LED将按最大亮度显示。
●亮度寄存器(地址0AH):
亮度可以用硬件和软件两种方式调节亮度寄存器中的D0~D3位可以控制LED显示器的亮度。
MAX7219通过D11~D84位地址位译码,可寻址14个内部寄存器,分别是8个LED显示位寄存器,5个控制寄存器和1个空操作寄存器。
LED显示寄存器由内部8×
8静态RAM构成,操作者可直接对位寄存器进行个别寻址,以刷新和保持数据,只要V+超过2V(一般为+5V)。
控制寄存器包括:
译码模式,显示亮度调节,扫描限制(选择扫描位数)。
关断和显示测试寄存器。
MAX7219的驱动程序首先必须对5个控制寄存器初始设置即初始化,各控制寄存器设置含义如下:
译码模式选择寄存器(地址=F9H);
MAX7219有两种译码方式:
B译码方式和不译码方式。
当选择不译码时,8个数据为分别一一对应7个段和小数点位;
B译码方式是BCD译码,直接送数据就可以显示。
实际应用中可以按位设置选择B译码或是不译码方式。
扫描限制寄存器:
地址=FBH;
用于设置显示的LED个数(1~8),比如当设置为0xX4时,LED0~5显示。
亮度调节寄存器:
地址=FAH;
共有16级选择,用于LED显示亮度的强弱设置。
关断模式寄存器:
地址=FCH;
有两种模式选择:
一种是关断状态模式(D0=0);
一种是正常操作状态(D0=1),通常选择正常操作状态。
显示测试寄存器:
地址=FFH;
有两种选择用于设置LED是测试状态还是正常操作状态:
当在测试状态时(D0=1)各位全应亮,一般选择正常操作状态(D0=0)。
2.3主要单元电路的设计
2.3.1显示电路
显示部分采用普通的共阴极数码管显示,采用动态扫描,以减少硬件电路。
年月日时分秒星期共需要17位数码显示,考虑到一次扫描17位数码管显示时会出现闪烁情况,故采用动态扫描,可将数码管数量减少至9位也就是两个四位一体八段LED显示数码管和一个一位LED数码管设计数码管同时扫描,显示时采用串行口输出段码,用MAX7219驱动数码管
表2-2MAX7219引脚功能
引脚号
名称
功能说明
DIN
串行数据输入端。
在CLK的上升沿数据被锁入芯片内部16为移位寄存器
2、3、5-8、10、11
DIG0-DIG7
8位LED位选线,从共阴极LED中吸入电流
4、9
GND
地线(两个GND必须接在一起)
12
LOAD
锁入输入的数据。
在LOAD的上升沿最后的16位串行数据被锁入
13
CLK
时钟输入,最高时钟频率为10MHZ,在CLK的上升沿数据被锁入内部移位寄存器。
在CLK的下降沿,数据从DOUT脚被输出
14-17
20-23
SegA-SegC
DP
7段驱动和小数点驱动
18
ISET
该脚通过一个电阻与V+相连,设置峰值段电流
19
V+
电源电压,+5V
24
DOUT
串行数据输出,输入到DIN得数据在16.5个时钟周期后在DOUT脚发出,该脚用于与级联扩展
图2-3MAX7219引脚分布图
2.3.2键盘接口
键盘在单片机系统中是一个很重要的部件。
为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。
键盘可分为编码和非编码键盘两种。
编码键盘采用硬件线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖动功能。
这种键盘使用方便,但硬件较复杂,PC机所用的键盘就属于这种。
非编码键盘仅提供按键开关工作状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一般在单片机应用系统中广泛使用。
此处主要介绍该类非编码键盘及其与MCS-51型单片机的借口。
1)按键开关去抖动问题
按键开关在电路中的连接如图所示。
按键未按下时,A点电位为高电平5V;
按键按下时,A点电位为低电平。
A点电位就用于向CPU传递按键的开光状态。
但是由于按键的结构为机械弹性开关,在按键按下和断开时,出点在闭合和断开瞬间还会接触不稳定,引起A点电平不稳定如图2-3b所示,键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。
因此必须设法消除抖动的不良后果。
消除抖动的不良后果的方法有硬、软件两种。
为了节省硬件,通常在单片机系统中,一般不采用硬件方法消除键抖动,而是用软件消除抖动的方法。
根据抖动特性,在第一次检测到按键按下后,执行一段延时5~10ms让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。
当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后才转入该键处理程序。
图2-4键输入和键抖动
2)查询式按键及其接口
按照键盘与CPU的连接方式可以分为查询按键和矩阵式键盘。
查询式按键是各按键相互独立,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线上按键的工作状态。
查询式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大,且电路结构显得繁杂。
故这种形式适用于按键数量较少的场合。
3)矩阵式键盘及其接口
矩阵式键盘又称行列式键盘,有n个行线和m个列线,经限流电阻接+5V电源上,按键跨接在行线和列线上,n×
m行列结构可构成mn个按键,组成一个键盘。
与独立式按键相比,mn个按键只占用m+n根I/O口线,因此适用于按键较