1、东北林业大学毕业论文x x x x 大 学 毕 业 论 文论文题目: 车载可测温式电子万年历 学生姓名: xx 指导教师: xxx 所学专业: 电子信息工程 2009年6月仔猪黄白痢药物治疗试验方案研究Chengdong College of NortheastAgricultural University ThesisThesis topic: The Vehicle Carries Temperature Measurement Type Electron Ten Thousand Calendars Student name: Tutor name: Specialty: Electro
2、nic And Information Engineering June 2009 车载可测温式电子万年历车载可测温式电子万年历摘 要随着电子技术的迅速发展,特别是随着大规模集成电路的出现,给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户,如电子万年历的出现给人们的生活带来了诸多方便。本文描述了系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件及其接口技术和各硬件模块的功能及工作过程;其次,详细阐述了程序的各个模块和实现过程.本设计以数字集成电路技术为基础,单片机技术为核心.编写的主导思想软硬件相结合,以硬件为基础,来进行各功能模块的编写。本
3、系统为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了.系统通过传感器采集温度。用四个数码管显示数据,可以显示时间和温度,也可以通过按键调整时间。关键词:电子万年历;单片机;时钟芯片;温度传感器;数码管显示The Vehicle Carries Temperature Measurement Type Electron Ten Thousand CalendarsAbstractAlong with electronic technologys rapidly expand, specially along with large scale integrated c
4、ircuits appearance, lived for the humanity has brought the fundamental change. Especially the monolithic integrated circuit technologys application product already entered everyone, if the electronic ten thousand calendars appearances have brought conveniently many for peoples life.This article desc
5、ribed the system hardware principle of work, and attaches by the system structure diagram explained that introduced emphatically this system applies various hardware and connection technology and various hardware module function and work process; Next, elaborated in detail procedure each module and
6、realizes the process。 This design take the digital integrated circuit technology as the foundation, the monolithic integrated circuit technology is a core。 The compilation guiding ideology software and hardware unifies, take the hardware as the foundation, carries on various functional module the co
7、mpilation。This system for ease of the expansion and the change, softwares design uses the modular structure, causes the programming the logical relation even more simple and brief。 System through two group of nixietube demonstration data。 May the tell time and the week, after pressing down cuts the
8、key, may the show date.Key word:Electronic ten thousand calendars; Monolithic integrated circuit; Clock chip; Temperature sensor ;Nixietube demonstration目 录摘 要IAbstractII前 言1 方案选择1。1 整机设计方案选择1。2 单片机芯片的选择1。3 时钟芯片的选择1。4 温度传感器的选择2 硬件设计2。1 电路组成框图2.2 系统硬件概述及整机工作原理2。3 各芯片介绍2。3。1 AT89S51单片机2。3.2 DS12887时钟芯
9、片2.3.2.1 DS12887主要功能简介2.3.2.2 DS12887引脚说明2。3。2.3 时间,日历和定闹单元2.3.2.4 DS12887的控制寄存器2。3.3 DS18B20温度传感器2。4 数码管显示电路设计2。4。1 显示模块的选择与方案论证2。4.2 LED显示器工作原理3 系统软件设计3.1 系统功能模块及主程序流程图3。2 DS12887初始化程序设计3。3 显示子程序设计3.4 时间调整程序设计3.5 温度采集程序设计3.5.1 DS18B20的初始化3.5。2 DS18B20的写操作3.5.3 DS18B20的读操作3.6 温度值与时间的显示4 电路安装与调试4。1
10、电路安装4.2 电路调试4.2.1 硬件调试4。2。2 软件调试4。2。3 综合调试5 结 论参 考 文 献致 谢 前 言随着人们生活水平的提高,家庭中的时钟也在悄悄地发生变化。早期的机械式小型时钟大部分被现代的电子时钟所代替.大大小小的时钟在人们的生活中发挥着重要的作用。在清朝的时候,出现了第一批时钟,是从外国引进的.它是一种挂在脖子上的怀表,表盘是圆形,带一个盖子,打开它就可以看时间。表盘上有一个环,环中有一条链子,就是通过它挂在脖子上,而且表的样式也只有这一种。尽管这样,也是只有皇亲国戚、乡绅官吏和留过洋的人才能拥有。可以说在那时它可是一个罕见的宝贝,所以,它的价值可想而知,普通人是很难
11、拥有的。那时的老百姓只有靠看日头来估算时间。接着,我们不断的从外国引进他们先进的技术,所以,时钟的生产和样式也有了许多的提高,市场上涌现了许多各式各样的时钟。这些时钟,不仅质量和款式不同,还有了各种品牌。从质量上分,有机械的,石英的等等。从款式上分,有男式的和女式的.不过有一点相同,它们大多是带在手腕上的。与清朝时比,已经有了很大的进步。慢慢地,随着科学的进步,技术水平的提高,到现在,时钟可以说是样式繁多,款式新颖。不提它的质量,仅仅它的款式就可以让消费者眼花缭乱,难以选择.现在的时钟,不仅分男女样式,还出现了情侣表。生产者还为盲人着想,专门生产了盲人使用的手表。为了追求时尚,还出现了还出现了
12、许多项链式的手表、手链式的手表、戒指式的手表等等.为了家居摆设,出现了立式的和挂式的等。还有,就是为了提醒我们不忘记某些事,而生产了闹钟等。将来随着时钟的发展,它将给人们带来更大的方便。随着科学技术的飞速发展,单片机以其卓越的性能,在各个领域中得到了广泛的应用。一方面向着高速、智能化的巨型机方向发展,另一方面向着嵌入式微型机的方向发展.其中,单片机其性能和容量不断提高,而价格不断下降的趋势,使其在社会各个领域仍至家庭生活中发挥着越来越大的作用。现如今在电子系统非常广泛的应用领域内,为使人们用最方便快捷的方式享受生活,设计人员能在更小的空间内实现更多功能,从而提高系统可靠性和速度。如银行公交车酒
13、店等公共场所到处可见的电子万年历。让人们对生活方有了一个更便捷更舒适的感觉,本文为对这种万年历设计的介绍和说明。1 方案选择1。1 整机设计方案选择本文主要讲述的是电子万年历的设计与实现,此设计实现主要有两种方案:一是由数字电路来实现;二是由单片机编程控制来实现。选用数字电路虽然硬件连接简单不需要软件编程,但因为数字电路实现必须要有移位寄存器对字符数据进行存储,然后串行输入到显示数码管上,不但如此,而且需要很大一部分的扩展电路才能实现,且设计出的电路的灵活性差、不易调试、成本高等缺点,所以不选用此方案。此次设计是基于单片机来实现的。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运
14、算速度快等特点,因而在国民经济建设、军事及家用电器等诸多领域起到了举足轻重的作用。编程语言采用C语言,由此设计出的电子万年历具有操作灵活便携等诸多优点.1。2 单片机芯片的选择方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用89S51芯片作为硬件核,AT89S51 是一个低功耗,高性能CMOS 8位单片机,片
15、内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案,再者因为AT89S51为当今市场上主流产品,其价格也比较低廉,所以选择此方案。1.3 时钟芯片的选择方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数.采用此种方案虽然减少芯片的使用,节约
16、成本,但是,实现的时间误差较大.所以不采用此方案。方案二:采用DS12887时钟芯片实现时钟,DS12887芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,另外其在没有外部电源的情况下可工作10年自带晶体震荡器及电池.其可以计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息.1.4 温度传感器的选择方案一:采用AD590为温度传感器,AD590虽然有价格低、精度高等优点,但是它还需要外围的模拟转数字电路,其测温点数量也较少,用起来占空间大也比较麻烦。方案二:采用DS18B20测温,DS18B20采用单线
17、接口方式,与微处理器连接时仅需要一条线即可实现双向通讯;其适应电压范围更宽;支持多点组网测温;在使用中不需任何外围元件,全部传感元件及转换电路都集成在一只如三极管的集成电路内;价格也较低;DS18B20缺点是测温范围比较小,范围为-55度到+125度,但是用在本设计也 足够了,所以采用此方案。2 硬件设计2.1 电路组成框图该电路主要由时钟芯片、CPU(AT89S51)、键盘、驱动电路、温度采集、显示电路组成.其中键盘调整可以对显示的内容进行切换及对时间进行调整。框图如图2-1所示:CPU89S51时钟芯片DS12887显示电路段驱动驱动电路温度传感器键盘调整位驱动 图2-1 电子万年历方框图
18、2.2 系统硬件概述及整机工作原理此设计CPU采用低功耗,高性能CMOS 8位单片机AT89S51;时钟芯片用的是美国达接斯半导体公司(Dallas)推出的串行接口实时时钟芯片DS12887,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池;驱动电路用的是ULN2003芯片;LED显示部分用的是四个共阴型数码管,显示采用动态扫描并行输出方式。键盘有三个分别为位调整键,加调整键,减调整键.整机工作原理是先初始化DS12887时钟芯片接着CPU从时钟芯片读取时间及日期信息又从温度传感器采集温度送驱动电路进而送LED显示,其中键盘调整可以对时间进行调整,对时间进行调整时其更改值写入DS1288
19、7,再允许DS12887时间更新并读出时间送显示,温度值和时间轮流交替显示在数码管上。电路图如图2-2所示。图2-2 整机电路图2.3 各芯片介绍2.3.1 AT89S51单片机AT89S51是一个低功耗,,高性能CMOS 8位单片机,片内含4k Bytes ISP(Insystem programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案.其引脚排列如23所示.图23 AT89S51引脚
20、图AT89S51具有如下特点:40个引脚,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。管脚说明:40个引脚按其功能来分,可分为三个部分:电源及时钟引脚 控制引脚 I/O口引脚(1)电源及时钟引脚 电源引脚接入单片机的工作电源
21、。 VCC(40)引脚:接+5V电源. VSS(20)引脚:接地。 两个时钟引脚XTAL0、XTAL1为单片机提供了时钟控制信号。XTAL0(18脚):接外部晶体的一个引脚。XTAL1(19脚):接外部晶体的另一端。(2)控制引脚RST是复位信号的输入端,高电平有效。当单片机正常工作时,在此引脚加上持续时间大于两个机器周期(24个时钟振荡周期)的高电平时,就可完成复位操作。在单片机正常工作时,复位端应小于或等于0.5V的低电平。PSEN(29脚)程序存储器允许输出控制端。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为外部程序存储器的选通信号.ALE(30脚)ALE为地址锁存允许信号,当
22、单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用作单片机发出的低8位地址的锁存控制信号.即使不访问外部锁存器,ALE端仍有正脉冲信号输出,频率为时钟振荡频率fOSC的1/6。EA(31脚)功能为内/外程序存储器选择控制端。当EA脚为高电平时,单片机访问片内程序存储器,当EA脚为低电平时,单片机则只访问外部程序存储器.所以此次设计,须把单片机的31脚接到高电平.(3)I/O引脚P0 口:P0口是一个8位漏极开路的双向I/O口.作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0
23、口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻.P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1时,内部上拉电阻把端口拉高,此时可以作为输入口使用.作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入。在flash编程和校验时,P1口接收低8位地址字节。P1 口引脚号的第二功能如表21所示。表21 P1口引脚的第
24、二功能P1。0T2(定时器/计数器T2的外部计数输入),时钟输出P1。1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1。5MOSI(在系统编程用)P1。6MISO(在系统编程用)P1.7SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平.对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应
25、用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号.P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL).P3口亦作为AT89S52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。P3 口引脚号的第二功能如表2-2所示.表22 P3 口引脚号的第二功能P3.0RXD(串行输入
26、)P3。1TXD(串行输出)P3。2INT0(外部中断0)P3。3INT1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3。6WR(外部数据存储器写选通)P3。7RD(外部数据存储器写选通)2。3。2 DS12887时钟芯片图24 DS12887引脚图DS12887是美国达接斯半导体公司(Dallas)最新推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换.DS12887芯片具有微功耗,外围接口简单,精度高,工作稳定可靠等优点,可广
27、泛用于各种需要较高精度的实时时钟系统中。2.3。2.1 DS12887主要功能简介(1)内含一个锂电池,断电后运行十年以上不丢失数据。(2)计秒,分,时,天,星期,日,月,年,并有闰年补尝功能。(3)二进制数码或BCD码表示时间,日历和定闹。(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能。(5)Motorola和Intel总线时序选择。(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。(7)可编程方波信号输出。(8)中断信号输出(IRQ)和总线兼容,定闹中断,周期性中断、时钟
28、更新周期结束中断可分别由软件屏蔽,也可分别进行测试.2.3.2。2 DS12887引脚说明DS12887内部由振荡电路,分频电路,周期中断/方波选择电路,14字节时钟和控制单元,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。上电/掉电:当VCC高于4。25V 200ms后,芯片可以被外部程序操作;当VCC低于4.25V时,芯片 处于写保护状态(所有的输入均无效),同时所有输出呈高阻状态;当VCC低于3V时,芯片将自动把供电方式切换为由内部电池供电。Vcc:直流电源+5V电压。当5V电压在正常范围内时,数据可读写;当Vcc低于4.25V
29、,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。MOT(模式选择):MOT引脚接到Vcc时,选择MOTOROLA时序,当接到GND时,选择Intel时序。SQW(方波信号输出):SQW引脚能从实时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。AD0-AD7(双向地址/数据复用线):总线接口,可与Motorola微机系列和Intel微机系列接口.AS(地址选通输入):用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12887。DS(数据选通或读输入):DS/RD引脚有两种操作模式,取决于MOT引脚的电
30、平,当使用Motorola时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS指示DS12887驱动双向总线的时刻;在写周期,DS的后沿使DS12887锁存写数据.选择Intel时序时,DS称作(RD),RD与典型存贮器的允许信号(OE)的定义相同。R/W (读/写输入):R/W引脚也有两种操作模式。选Motorola时序时,R/W是低电平信号时,指示当前周期是读或写周期,DS为高电平时,R/W高电平指示读周期,R/W信号一低电平信号,称为WR。在此模式下,R/W引脚与通用RAM的写允许信号(WE)的含义相同。CS(片选输入):在访问DS12887的总线周期内,片选信号必
31、须保持为低。IRQ(中断申请输入):低电平有效,可作微处理的中断输入.没有中断的条件满足时,IRQ处于高阻态。IRQ线是漏极开路输入,要求外接上接电阻。RESET(复位输出):当该脚保持低电平时间大于200ms,保证DS12887有效复位。另外DS12887的地址由114字节的用户RAM存放。10字节的存放实时时钟时间,日历和定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节直接读写。RTC 实时时钟加RAM向处理器提供三个独立的,自动的中断源.定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122s选择。更新结束中断用于向程序指示一个更新
32、周期完成。中断控制和状态位在寄存器B和C中。2.3.2。3 时间,日历和定闹单元时间和日历信息通过读相应的内存字节来获取,时间,日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高门为逻辑“1”代表PM。时间,日历和定闹字节是双缓冲的,总是可访问的.每秒钟这10个字节走时1 秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误,三个字节的定闹字节有两种使用方法。第一种,当定闹时间写入相应时,分,秒,定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次.第二种,在三个定闹字节中插入一个或多
33、个不关心码。不关心码是任意从O0到FF的16进制数。当小时字节的不关心码位置位时,定闹每小时发生一次;同样,当小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。2。3.2。4 DS12887的控制寄存器DS12887有四个控制寄存器,他们可以在任何时候读写.(1)寄存器0AH表23 寄存器0AH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新周期进行标志位,UIP = 1时,芯片正处于或将开始新周期,此期间不允许读写时标寄存器.DV2DV0:为010时晶振工作,其他组合时晶振
34、停止。 RS3RS0:中断周期时间和SQW输出频率选择位。(2)寄存器0BH表24 寄存器0BH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SETPIEALEUIESQWEDM24/12DSESET:为1时禁止更新。为0时正常. PIE:为1时周期中断允许.AIE:为1时警报中断允许。UIE:为1时更新结束中断允许。SQWE:为1时方波输出允许。DM:为0时时间为BCD码,为1时为二进制。24/12:为1时是24小时进制。为0时是12小时进制。DSE:置0。(3)寄存器0CH表25寄存器0CH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0IRQ
35、FPFAFUF0000IRQF:中断申请标志。PF:周期中断标志。AF:警报中断标志.UF:更新结束中断标志。(4)寄存器0DH表26寄存器0DH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0VRT0000000VRT:为0时表示内部锂电池耗尽。2。3.3 DS18B20温度传感器DS18B20的主要特性(1)适应电压范围更宽,电压范围:3。05。5V,在寄生电源方式下可由数据线供电。 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯. (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯
36、一的三线上,实现组网多点测温. (4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内. (5)温范围55125,在-10+85时精度为0.5。 (6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0。25、0。125和0。0625,可实现高精度测温. (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 (8)测量结果直接输出数字温度信号,以”一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力. (9)负压特性:电源极性接反时,芯片不会因发热
37、而烧毁,但不能正常工作。其引脚图和功能表如图25所示.图25 DS18B20引脚图及功能2.4 数码管显示电路设计2.4.1 显示模块的选择与方案论证(1)采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形、显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。(2)采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。(3)采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线
38、少。所以采用LED数码管作为显示。2。4.2 LED显示器工作原理在4位LED显示器中段选线控制显示字符的的字型,而位选线为各个LED显示块的公共端,它控制该LED显位的亮、暗.LED显示器有静态显示和动态显示两种显示方式。(1)LED静态显示方式显示器工作于静态显示方式时,各个的共阴极(或共阳极)连接在一起并接地(或+5V);每位的短选线(adp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因为如此,静态显示器的亮度都比较高。这种显示方式接口编程容易,付出的代价是占用口线较多。若要用I/O口接口,则要
39、占用4个8位I/O口,若要用锁存器(如74LS373)接口,则要用4片74LS373芯片.如果显示位数增多,则静态显示方式更是无法适应。因此在显示位数较多的情况下,一般采用动态显示方式.(2)LED动态显示方式在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。在动态显示方式中若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段
40、码.这样同一时刻,4位LED中只有那一位显示出字符,而其他三位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,在段选线上输出相应位将要显示字符段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到同时显示的目的。如何确定LED不同位显示的时间间隔,例如对8位LED显示器,假若显示一位保持1ms时间,则显示完所有8
41、位只后,只需8ms。上述保持1ms的时间是根据实际情况而定。不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多.另外,显示位越多,也将占用大量的CPU时间,因此动态显示实质是以牺牲CPU时间来换取元件的减少。此设计显示电路采用的就是动态显示即一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留效应可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关.调整电流和时
42、间参数,可实现亮度较高较稳定的显示。因为本显示的位数不大于8位,所以控制显示器公共极只需一个I/O口(扫描口),控制显示器的各位所显示的字型也需一个8位口(段数据口).本设计显示部分电路连接如图26所示.图26 数码管显示部分电路图3 系统软件设计3.1 系统功能模块及主程序流程图软件编程思路:先DS12887初始化接着从其内读取当前时间供参考,然后扫描键盘以取得输入的更改值,接下来将更改值写入DS12887,允许DS12887时间更新并读出时间以显示,把显示程序放在定时中断内扫描,主程序先读出DS12887内小时、分钟、秒的值再送显示,然后加延时再读DS18B20所测温度值再送显示。系统功能
43、模块主要有:(1)初始化程序(2)对DS12887的读写程序(3)显示子程序(4)时间调子整程序(5)温度与时间显示切换程序主程序流程如图3-1所示。开始初始化设置初始时间日期屏幕切换读DS12887驱动电路送显示读DS18B20延时YN 图3-1 主程序流程图3。2 DS12887初始化程序设计因为使用了时钟芯片DS12887,只需从DS12887各寄存器中读出年、月、日、周、小时、分、秒等数据,再处理即可。在首次对DS12887进行操作之前,必须对它进行初始化,然后从DS12887中读出数据,再经过处理后,送给显示缓冲单元。程序如下:csh()XBYTE0x7f0b=0xa6;XBYTE0
44、x7f00=0x00;XBYTE0x7f02=0x00;XBYTE0x7f04=0x00;XBYTE0x7f0b=0x26;i=XBYTE0x7f0a=0x20;i=XBYTE0x7f0d;i=XBYTE0x7f0c;3.3 显示子程序设计主要是开启中断,选择定时器工作方式及给定时器高低字节送初值,最后使DS12887开始工作并通过给DS12887的控制寄存器写相应命令使其禁止DS12887芯片更新,此时时钟、日历、和闹钟信息可以通过读写相应的字节获得和设置,接着开启DS12887的晶体振荡器并且保持时钟运行,设置DS12887的SQW输出为方波,时钟运行周期为24时制等这些都完成系统上电后就
45、可以从DS12887读取时间信息送进而显示电路显示了。程序如下: void time0() interrupt 1/定时器扫描显示 q+; TH0=0xea; TL0=0xea;if(q=1) P1=tabcc; P2=0xde;if(q=2) P1=tabdd; P2=0xee;if(q=3) P1=tabee; P2=0xf6;if(q=4) P1=tabff; P2=0xfa; q=0; c=XBYTE0x7e00; P30=c0;3.4 时间调整程序设计时间调整是由三个按键组成的,它是最简单的单片机输入设备,通过按键输入或调整数据,实现简单的人机对话。时间调整的三个按键分别接在CPU的P3.2,P3.4,P3.5三个口。三个按键的功能分别为:P32为选位键,按下时进行调时选位功能,被选中的那个数码管就闪烁准备调时;选中一位后按下P3。4对该位进行加操作
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100