版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
x大
学毕
业
论文论文题目:学生姓名:指导教师:所学专业:
车载可测温式电子万年历xxxxx电子信息工程年月
车载可测温式电子万年历摘
要随着电子技术的迅速发展,特别是随着大规模集成电路的出现,给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户,如电子万年历的出现给人们的生活带来了诸多方便。本文描述了系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件及其接口技术和各硬件模块的功能及工作过程;其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。编写的主导思想软硬件相结合,以硬件为基础,来进行各功能模块的编写。本系统为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。系统通过传感器采集温度。用四个数码管显示数据,可以显示时间和温度,也可以通过按键调整时间。关词子万年历;单片机;时钟芯片;温度传感器;数码管显示-I-
MeasurementTypeElectronTenThousandAbstractwithelectronictechnology'sexpand,alongwithlargescaleintegratedcircuit'slivedforthethefundamentalEspeciallythemonolithiccircuitapplicationproductenteredeveryone,ifthetenhaveconvenientlyforpeople'slife.ThistheprincipleofandattachesbysystemdiagramexplainedintroducedemphaticallysystemappliesvarioushardwaretechnologyandmodulefunctionandworkNext,elaboratedindetaileachanddesignthedigitalintegratedcircuittechnologyasthefoundation,themonolithicintegratedcircuittechnologyThecompilationguidingideologysoftwarethehardwareasthefoundation,carriesvariousfunctionaltheThisforexpansiondesignmodularcausesthelogicalrelationevenmoreSystemofnixietubedata.thetimeandtheweek,afterpressingcuts:ElectronictenthousandMonolithicintegratedcircuit;chip;-II
;demonstration目
录摘
要.I.....................................................................................................................................II前
言.1方选择21.11.21.31.4
整机设计方案选择...................................................................................................2单片机芯片的选择...................................................................................................2时钟芯片的选择.......................................................................................................2温度传感器的选择...................................................................................................3硬设计42.12.22.32.4
电路组成框图...........................................................................................................4系统硬件概述及整机工作原理...............................................................................4各芯片介绍62.3.1AT89S51单片机62.3.2DS12887时钟芯片82.3.2.1主要功能简介92.3.2.2引脚说明..............................................................................92.3.2.3时,历和定闹单元102.3.2.4的控制寄存器112.3.3DS18B20温传感器1数码管显示电路设计12.4.1显模块的选择与方案论证....................................................................12.4.2LED显示器工作原理................................................................................1系软件设计..................................................................................................................153.1系功模块及主程序流程图...........................................................................13.2DS12887初化程序设计163.3显子序设计...................................................................................................13.4时调程序设计...............................................................................................17-III-
3.5温采程序设计...............................................................................................223.5.1DS18B20的始化23.5.2DS18B20的操作23.5.3DS18B20的操作23.6温值时间的显示2电安装与调试..............................................................................................................274.1电安24.2电调24.2.1硬调试....................................................................................................24.2.2软调试....................................................................................................24.2.3综调试....................................................................................................2结论................................................................................................................................29参考文献.3致
谢.3-IV-
前
言随着人们生活水平的提高,家庭中的时钟也在悄悄地发生变化。早期的机械式小型时钟大部分被现代的电子时钟所代替。大大小小的时钟在人们的生活中发挥着重要的作用。在清朝的时候,出现第一批时钟,是从外国引进的。它一种挂在脖子上的怀表,表盘是圆形,带一个盖子,打开它就可以看时间。表盘上有一个环,环中有一条链子,就是通过它挂在脖子上,而且表的样式也只有这一种。尽管这样,也是只有皇亲国戚、乡绅官吏和留过洋的人才能拥有。可以说在那时它可是一个罕见的宝贝,所以,它的价值可想而知,普通人是很难拥有的。那时的老百姓只有靠看日头来估算时间。接着,我们不断的从外国引进他们先进的技术,所以,时钟的生产和样式也有了许多的提高,市场上涌现了许多各式各样的时钟。这些时钟,不仅质量和款式不同,还有了各种品牌。从质量上分,有机械的,石英的等等。从款式上分,有男式的和女式的。不过有一点相同,它们大多是带在手腕上的。与清朝时比,已经有了很大的进步。慢慢地,随着科学的进步,技术水平的提高,到现在,时钟可以说是样式繁多,款式新颖。不提它的质量,仅仅它的款式就可以让消费者眼花缭乱,难以选择。现在的时钟,不仅分男女样式,还出现了情侣表。生产者还为盲人着想,专门生产了盲人使用的手表。为了追求时尚,还出现了还出现了许多项链式的手表、手链式的手表、戒指式的手表等等。为了家居摆设,出现了立式的和挂式的等。还有,就是为了提醒我们不忘记某些事,而生产了闹钟等。将来随着时钟的发展,它将给人们带来更大的方便。随着科学技术的飞速发展,片机以其卓越的性能,在各个领域中得到了广泛的应用。一方面向着高速、智能化的巨型机方向发展,另一方面向着嵌入式微型机的方向发展。其中,单片机其性能和容量不断提高,而价格不断下降的趋势,使其在社会各个领域仍至家庭生活中发挥着越来越大的作用。现如今在电子系统非常广泛的应用领域内,为使人们用最方便快捷的方式享受生活,设计人员能在更小的空间内实现更多功能,从而提高系统可靠性和速度。如银行﹑公交车﹑酒店等公共场所到处可见的电子万年历。让人们对生活方有了一个更便捷﹑更舒适的感觉,本文为对这种万年历设计的介绍和说明。-1-
1方案选择1.1整机设计方案选择本文主要讲述的是电子万年历的设计与实现,此设计实现主要有两种方案:一是由数字电路来实现;二是由单片机编程控制来实现。选用数字电路虽然硬件连接简单不需要软件编程,但因为数字电路实现必须要有移位寄存器对字符数据进行存储,然后串行输入到显示数码管上,不但如此,而且需要很大一部分的扩展电路才能实现,且设计出的电路的灵活性差、不易调试、成本高等缺点,所以不选用此方案。此次设计是基于单片机来实现的。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等诸多领域起到了举足轻重的作用。编程语言采用语言,由此设计出的电子万年历具有操作灵活便携等诸多优点。1.2单片机芯片的选择方案一:采用芯作为硬件核心,采用,内部具有ROM存储空间,能于的低压工作,而且与MCS-51系单片机完全兼容,但是运用于电路设计中时由于不具备ISP在编程技术,当对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用89S51芯作为硬件核,AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kISP(In-system的反擦写次只读程序存储器,器件采用ATMEL公的密度、非易失性存储技术制造,兼容标准MCS-51指系统及引结构,芯片内集成了通用位中央处理器和Flash存储单元功强大的微型计算机的可许多嵌入式控制应用系统供高性价比的解决方案,再者因为AT89S51为今场上主流产品,其价格也比较低廉,所以选择此方案。1.3时钟芯片的选择方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。-2-
方案二用时芯片实现时钟芯是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的做数据暂存区,另外其在没有外部电源的情况下可工作年带晶体震荡器及电池。其可以计算到2100年的秒、分、小时、星期、日期、月、年七种日历信息。1.4温度传感器的选择方案一:采用为温度传感器,AD590虽有价格低、度高等优点,但是它还需要外围的模拟转数字电路,其测温点数量也较少,用起来占空间大也比较麻烦。方案二:采用测,采单线接口方式,与微处理器连接时仅需要一条线即可实现双向通讯;其适应电压范围更宽;支持多点组网测温;在使用中不需任何外围元件,全部传感元件及转换电路都集成在一只如三极管的集成电路内;价格也较低;缺是测温范围比较小,范围为-55度到+125度,但是用在本设计也足够了,所以采用此方案。-3-
2硬件设计2.1电路组成框图该电路主要由时钟芯片、AT89S51盘驱动电路、温度采集、显示电路组成。其中键盘调整可以对显示内容进行切换及对时间进行调整。框如图2-1所示:时芯DS12887显电温传器键调
图2-1
89S51段驱动位驱动电万历框
驱电2.2系统硬件概述及整机工作原理此设计采低功耗,高能8位单片机;钟芯片用的是美国达接斯半导体公司(推出的串行接口实时时钟芯片DS12887,用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池;驱动电路用的是ULN2003芯;LED显示部分用的是四个共阴型数码管,显示采用动态扫描并行输出方式。键盘有三个分别为位调整键,加调整键,减调整键。整机工作原理是先初始化DS12887时钟芯片接着CPU从钟芯片读取时间及日期信息又从温度传感器采集温度送驱动电路进而送LED显示,其中键盘调整可以对时间进行调整,对时间进行调整时其更改值写入DS12887,再允许时更新并读出时间送显示,温度值和时间轮流交替显示在数码管上。电路图如图所示。-4-
图2-2-5-
整电图
2.3各芯片介绍AT89S51是个低功耗,高能8位单片机,片内含4kBytes可反复擦写1000次Flash只读程序存储器,器采用公的高密度、非易失性存储技术制造,兼容标准MCS-51指系统及80C51引结构,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。其引脚排列如所示。图2-3引图AT89S51具如下特点:个引脚的机存取数据存储器(RAM)32个外部双向输入/输()口,个断优先级2层断嵌套中断2个16位编程定时计数器,个双工串行通信口,片内时钟振荡器。此外,设和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存的据,停止芯片其它功能直至外中断激活或硬件复位。-6-
管脚说明:个引脚按其功能来分,可分为三个部分:电源及时钟引脚控制引脚I/O口脚(1)源及时钟引脚电源引脚接入单片机的工作电源。VCC(40)引:接+5V源。VSS(20)脚:接地。两个时钟引脚XTAL0、为片机提供了时钟控制信号。XTAL0(脚):接外部晶体的一个引脚。XTAL1(脚):接外部晶体的另一端。(2)制引脚是位信号的输入端,高电平有效。当单片机正常工作时,在此引脚加上持续时间大于两个机器周期(24个钟振荡周期)的高电平时,就可完成复位操作。在单片机正常工作时,复位端应小于或等于的低电平。(29脚)程序存储器允许输出制端。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为外部程序存储器的选通信号。ALE(30脚ALE为地锁存允信号,当单片机上电正常工作后,ALE引不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用作单片机发出的低8位址锁存控制信号。使不访问外部锁存器,ALE端仍有正脉冲信号输出,频率为时钟振荡频率fOSC的。EA(脚)功能为内/外序存储器选择控制端。当EA脚为高电平时,单片机访问片内程序存储器,当EA脚低电平时,单片机则只访问外部程序存储器。所以此次设计,须把单片机的31脚到高电平。(3)I/O引口口是一个8位极开路的双向I/O口为输出口每能驱动8个逻辑电平。对P0端写作高阻抗输入。当访问外部程序和数据储器时,口被作为低位址数复用。在这种模下,具内部上拉电阻。在flash编程时,P0也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口P1口是一个具有内部上拉电阻的位向I/O口,p1输缓冲器能驱动4个TTL逻电平。对P1端写“1”时,内部拉电阻把端口拉高,此可以作为输入口使用作为输入使用时被部拉低的引脚由于内部电阻的原因,将输电此外,P1.0和P1.2分作定时数器2的外计数输入。在flash编和校验时,P1口收低8位址字节。口脚号的第二功能如表所。-7-
表2-1P1口引的二能(定时器数器的外部计数输入),时钟输出T2EX(定时器数器T2的捕/重载触发信号和方控制)MOSI(在系统编程用)MISO(在系统编程用)(在系统编程用)口P2口一个具有内部上拉电阻的8位向I/O口,P2输缓冲器能驱动个TTL逻辑电平。对P2端写“1”时内部上拉电阻把端口高,此时可以作为输入口使用作输入使用时被部拉低的引脚由于内部电阻的原因,将出电(IIL在访问外部程序存储器或用位址读取外部据存储器(例如执行MOVX)时,P2口送出高八位地址。在这种应用中,口使用很强的内部上拉发送1在使用位地址(如MOVX)问外部数据存储器时,P2口输出锁器的内容在flash编程和校验时,口接高位址字节和一些控制信号。口P3口一个具有内部上拉电阻的位向口对P3端写“1”时内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)口亦作为AT89S52特功能(第二功能)使用,在flash编和校验时,口也接收一些控制信号。口脚号的第二功能如表所。表2-2P3引号的二能
RXD串行输入)TXD(串行输出)INT0部中断INT1部中断(定时器0外部输入)(定时器1外部输入)(部数据存储器写选通)(外数据存储器写选通)-8-
U2
NCNCGND
VCCSQWNCNCNCIRQRESETNCR/W
DS12887引脚DS12887是美国达接斯半导体公司(Dallas)新推出的串行接口实时时钟芯片,采用技制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBMAT计算机常用的时钟芯片MC146818B和管脚兼容,可接替换。DS12887芯片具有微功耗,外围接口简单,精度高,工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟系统中。2.3.2.1DS12887主要功能简介(1)含一个锂电池,断电后运行十年以上不丢失数据。(2)秒,分,时,天,星期,日,月,年,并有闰年补尝功能。(3)进制数码或码表示间,日历和定闹。(4)12小或24小制,小时钟模式带有和AM指,有夏令时功能。(5)Motorola和总线时序选择。(6)128个字节单与软件接口,其中个字节作为时钟和控制寄存器,字节为通用RAM,有单数据都具有掉电保护功能。(7)编程方波信号输出。(8)断信号输出()和总线兼容,定闹中断,周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。2.3.2.2DS12887引脚说明DS12887内由振荡电路,分频电路,周期中断/方选择电路,14字时钟和控制单元,114字节用户非易失RAM,进制/进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。上电/掉电当高于4.25V后,芯片可被外部程序操作;当低-9-
时,芯片处于写保护状态(所有的输入均无效)同时所有输出呈高阻状态;当VCC低3V时芯片将自动把供电方式切换为由内部电池供电。Vcc:流电源+5V电。当电压在正常范围内时,数据可读写;当Vcc低于4.25V,读被禁止,计时功仍继续;当下到3V以时,RAM和计时器供电被切换到内部锂电池。MOT(式选择):MOT引接到Vcc时,选择MOTOROLA时序,当接到GND时,选择Intel时。(方波信号输出):SQW引能从实时钟内部15级频器的个头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。AD0-AD7(向址/数据复用线):线接口,可与Motorola微系列和Intel微机系列接口。(地选通输入实信号分在AD/ALE的下降沿把地址锁入。(数据选通或读输入)DS/RD引有两种操作模式,取于MOT引的电平,当使用时时,是正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS指DS12887驱动双向总线的时刻;在写周期,的沿使DS12887锁存写数据。选择时序时,称(RD),RD与型存贮器的允许信号()的定义相同。R/W(读/写入):R/W引也有两操作模式。选Motorola时序时,R/W是低电平信号时,指示当前周期是读或写周期,为高电平时,R/W高平指示读周期,R/W信一低电平信号,称为。在此模式下,R/W引与通用RAM的允许信号()的含义相。CS片选输入):在访问DS12887的总线周期内,片选信号必须保持为低。IRQ中断申请输入):低电平有效,可作处理的中断输入。没有中断的条件满足时,IRQ处于高阻态。IRQ线漏极开路输入,要求外接上接电阻。(复位输出)当该脚保持低电平时间大于200ms保证DS12887有效复位。另外的地址由字节的用户存。10字的存放实时时钟时间,日历和定闹及用于控制和状态的4字特殊寄存器组成,几乎所有的128个节直接读写。RTC实时钟加RAM向理器提供三个独立的,自动的中断源。定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122s选择。更新结束中断用于向程序指示一个更新周期完成。中断控制和状态位在寄存器B和C中2.3.2.3时间,日历和定闹单元时间和日历信息通过读相应的内存字节来获取,时间,日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是二进制或形式。时间可选择小时制或小时制,当选择12小时制时,小时字节的高门为逻辑PM。间,日历和定闹字节是双缓冲的,总是可访问的。每秒钟这个节走时1秒检查一次定闹条件,如在更新时,读时间和日历可能引起错误,三个字节的定闹字节有两种使用方法。第一-10-
种,当定闹时间写入相应时,分,秒,定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。第二种,在三个定闹字节中插入一个或多个不关心码。不关心码是任意从O0到的进数。当小时字节的不关心码位置位时,定闹每小时发生一次;同样,当小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。2.3.2.4DS12887的控制寄存器DS12887有个控制寄存器,他们可以在任何时候读写。(1)存器0AH表2-3寄存0AH中的位BIT7UIP
BIT6DV2
BIT5DV1
BIT4DV0
BIT3
BIT2
BIT1
BIT0UIP:新周期进行标志位,UIP=1时,芯片正处于或将开始新周期,此期不允许读写时标寄存器。~:为时振工作,其他组时晶振停止。~RS0:断周期时间和SQW输频率选择位。(2)存器0BH表2-4寄存0BH中的位BIT7SET
BIT6PIE
BIT5
BIT4UIE
BIT3SQW
BIT2
BIT1
BIT0SET:时禁止更新。为0时常。PIE:为1时期中断允许。AIE:时警报中断允许。UIE:时更新束中断允许。:为时波输出允许。:时时间为码,为1为二进制。:1时24小进制。为0时12小进制。:置。(3)存器0CH表2-5寄存0CH中的位BIT7IRQF
BIT6PF
BIT5AF
BIT4
BIT30
BIT20
BIT10
BIT00IRQF:断申请标志。:周期中断标志AF:报中断标志。UF:新结束中断标志。-11-
(4)存器表2-6寄存0DH中的位BIT7VRT
BIT60
BIT50
BIT40
BIT30
BIT20
BIT10
BIT00VRT:时表示内部锂电池耗尽。DS18B20的主要特性(1)应电压范围更宽,电压范围:~5.5V,寄生电源方式下可由数据线供电。(2)特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。()支持多点组网功能,多个DS18B20可并联在唯一的三线上,实现组网多点测温。(4)DS18B20在使用中不需要任何外围元件,全部传感元件及换电路集成在形如一只三极管的集成电路内。(5)范围-55℃+125℃在-10~+85时精度为℃。(6可编程的分辨率为9~12位对的可分辨温度分别为0.5℃0.25℃℃和℃可实现精度测温。(7)位辨率时最多内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。()量结果直接输出数字温度信号,以"一总线"串行传送给,时可传送校码,具有极强的抗干扰纠错能力。(9)压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。其引脚图和功能表如图2-5所。图2-5DS18B20引脚及能-12-
2.4数码管显示电路设计(1)用LED液显示屏液晶显示屏的显示功能强大,可显示大量文字、图形、显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。()用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。(3)用LED数管动态扫描LED数管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。所采LED数管作为显示。显示器工作在4位显器中段选线控制显示字符的的字型,而位选线为各个LED显块的公共端,它控制该LED显位的亮、暗。LED显器静态显示和动态显示两种显示方式。(1)LED态显示方式显示器工作于静态显示方式时,各个的共阴极(或共阳极)连接在一起并接地(或+5V位短选线(a-dp)别与一个位锁存器输出相连所以称为静态显示。各个LED的示字符一经确定,相锁存器的输出将维持不变,直到示另一个字符为止。也正因为如此,静态显示器的亮度都比较高。这种显示方式接口编程容易,付出的代价是占用口线较多。若用I/O口接口则要占用4个8位I/O口若要用锁存器(74LS373)口则要用4片芯片。如果显示位数增多,则静态显示式更是无法适应。因此在显示位数较多的情况下,一般采用动态显示方式。(2)LED态显示方式在多位LED显时了简化硬件电路通常将所有位的段选线相应地并联在一起,由一个位I/O口控制,形成段选线的多路复用。而各位的阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。在态显示方式中若要各位LED能显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。这样同一时刻,位中只有那一位显示出字符,而其他三位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,在段选线上输出相应位将要显示字符段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄-13-
灭,但由于LED显器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到同时显示的目的。如何确定LED不位显示的时间间隔,例如位显示器,假若显示一位保持1ms时,则显示完所有8位后,只需8ms。述保持1ms的间是根据实际情况而定。不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用时也越多。另外,显示位越多,也将占用大量的CPU时,因此动态显示实质是以牺牲CPU时来换取元件的减少。此设计显示电路采用的就是动态显示即一位一位地轮流点亮显示器的各个位(扫描于显示器的每一位来说每一段时间点亮一次。利用人的视觉暂留效应可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示因本显示的位数不大于8位以控制显示器公共极只需一个I/O扫描口控显示器的各位所显示的字型也需一个8口(段数据口本计显示部分电路连接如图2-6所示。图2-6数码显部电图-14-
3系统软件设计3.1系统功能模块及主程序流程图软件编程思路:先DS12887初化接着从其内读取当前时间供参考,然后扫描键盘以取得输入的更改值,接下来将更改值写入,许时间更新并读出时间以显示,把显示程序放在定时中断内扫描,主程序先读出DS12887内小时、分钟、秒的值再送显示,然后加延时再读所温度值再送显示。系统功能模块主要有:(1)始化程序(2)的写程序(3)示子程序(4)间调子整程序(5)度与时间显示切换程序主程序流程如图3-1所。开始初始化设置初始时间日期屏幕切换
YN读DS12887驱动电路送显示图3-1主程流图
读延时-15-
3.2初始化程序设计因为使用了时钟芯片DS12887,只需从DS12887各寄存器中读出年、月、日、周、小时、分、秒等数据,再处理即可。在首次对进操作之前,必须对它进行初始化,然后从中读出数据,再经过处理后,送给显示缓冲单元。程序如下:{XBYTE[0x7f0b]=0xa6;XBYTE[0x7f00]=0x00;XBYTE[0x7f02]=0x00;XBYTE[0x7f04]=0x00;XBYTE[0x7f0b]=0x26;i=XBYTE[0x7f0a]=0x20;}3.3显示子程序设计主要是开启中断择时器工方式及给定时器高低字节送初值,最使开始工作并通过给的控制寄存器写相应命令使其禁止芯更新,此时时钟、日历、和闹钟信息可以通过读写相应的字节获得和设置,接着开启的晶体振荡器并且保持时钟运行,设置DS12887的输为方波,时钟运行周期为24时制等这些都完成系统上电后就可以从DS12887读时间信息送进而显示电路显示了。程序如下:void//定时器扫描显示{TL0=0xea;{P1=tab[cc];}{-16-
P1=tab[dd];}{P2=0xf6;}{P2=0xfa;}c=XBYTE[0x7e00];}3.4时间调整程序设计时间调整是由三个按键组成的,它是最简单的单片机输入设备,通过按键输入或调整数据,实现简单的人机对话时间调整的三个按键分别接在CPU的,P3.4三个口。三个按键的功能分别为:P32为位键,按下时进行调时选位功能,被选中的那个数码管就闪烁准备调时;选中一位后按下对位进行加操作,下P3.5对位进行减操作,流程图如图所。-17-
选位键按下Y位选择操作有效
N执行主循环程序加1键效
减1键效加1
减1送时钟芯片送驱动电路
送驱动电路送显示电路显示程序如下:{delay1(500);while(!P32);delay1(20);{cc=10;delay1(500);
送显示电路显示图3-2时间程框-18-
cc=j;delay1(500);{while(!P34);j++;if(j==10)j=0;}{while(!P35);}XBYTE[0x7e02]=d;}{delay1(500);while(!P32);delay1(20);}{delay1(500);delay1(500);{while(!P34);i++;-19-
i=0;}{while(!P35);i=6;}XBYTE[0x7e02]=d;}{delay1(500);while(!P32);delay1(20);}{delay1(500);ee=m;delay1(500);{while(!P34);}{while(!P35);-20-
m--;}XBYTE[0x7e02]=d;}{delay1(500);while(!P32);delay1(20);}{ff=10;delay1(500);delay1(500);{while(!P34);}{while(!P35);n--;}XBYTE[0x7e02]=d;}-21-
delay1(2000);}3.5温度采集程序设计(1)将数据线置高电平“1。(2)时(该时间要求的不是很严格,但是尽可能的短一点)。(3)据线拉到低电平“0。(4)时750微(该时间的间范围可以从到微秒)。(5)据线拉到高电平“1。(6)时等待(如果初始化成功则在15到毫时间之内产生一个由DS18B20所返回的低电平“0”据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7)读到了数据线上的低电平“0后还做延时,其延时的时间从发出的高电平算起(第(5步的时间算起)最少要微。(8)数据线再次拉高到高电平“1后束(1)据线先置低电平“0。(2)时确定的时间为15微。(3)从低位到高位的顺序发送字节(一次只发送一位)。(4)时时间为微。(5)数据线拉到高电平。(6)复上(1到(6的操作直到所有的字节全部发送完为止。(7)后将数据线拉高。(1)数据线拉高“1”。(2)时2微。(3)数据线拉低“0”。(4)时15微秒。(5)数据线拉高“1”。(6)时15微秒。(7)数据线的状态得到个状态位,并进数据处理。-22-
(8)时30微秒。程序如下:dmsec(unsignedintdelay{unsignedinti;while(count--)}}voidtmreset(void)//复子程序{inti;TMDAT=0;i=103;while(i>0)i--;//900vsTMDAT=1;i=4;while(i>0)i--;}voidtmpre(void)//复位结束{unsignedinti;while(TMDAT);while(~TMDAT);}bit//读一位数据的子程序{unsignedinti;bitTMDAT=0;i++;TMDAT=1;i++;i++;dat=TMDAT;}unsignedchartmrbyte(void)//一字节子程序{unsignedchari,j,dat;dat=0;for(i=1;i<=8;i++)dat=(j<<7)|(dat>>1);}return(dat);-23-
}voidtmwbyte(unsigned{unsignedinti;unsignedcharj;bittestb;for(j=1;j<=8;j++)if(testb)TMDAT=1;i=8;while(i>0)}TMDAT=1;i++;i++;}}}voidtmstart1(void)dmsec(1);tmwbyte(0xcc);tmwbyte(0x4E);}tmrtemp(){unsignedtmwbyte(0xcc);tmwbyte(0x44);dmsec(1);tmwbyte(0xcc);-24-
tmrbyte();3.6温度值与时间的显示显示部分是由四个数码管来完成的,但是要想显示小时和分钟就占用了四个数码管,就没有剩余的数码管来显示温度和秒,秒的显示由两个发光二极管来实现,每走一秒闪烁一次;在现有四个数码管的基础上温度的显示只能靠与小时和分钟的显示交替显示来实现。程序如下:void{unsignedcharc;EA=1;//打中断允许TR0=1;TMOD=0x01;TL0=0xaa;{c=XBYTE[0x7E00];d=XBYTE[0x7E02];e=XBYTE[0x7E04];//读j=d%10;n=e/10;/*把读出来的经算式拆分成数组可以显示的十进制数cc=j;ee=m;
等待定时中断内显示程序来扫描*/;/*部分为按键调整时间的程序,程序内容上一部分已经介绍,需要注意的是按键调整时间程序不能与读取温度值的程序在一个循环体内,这样显示温度时就不与调整时-25-
间冲突*/}{dmsec(10);//温一毫秒延时//tmrtemp();//wenduxianshi//}}-26-
4电路安装与调试4.1电路安装安装步骤:(1)查元件的好坏按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。(2)置各元件按电路图的位置将各元件安置好,首先放置核心元件,然后再放其他元件,特别注意顺序不能颠倒。(3)行布线布线有布线的规律,不能搭线、线路工整、清晰、另外还要避免绕线,短线等现象发生,还要节省线路,以线路短而且少和工整为依据来布线。(4)路的检查按电路图再进行检查实际线路,看是否有错线,错件等现象发生。注意仪器仪表的使用。4.2电路调试调试分为硬件调试和软件调试。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。的件电路很简单,很容易检测,主要是检查其引脚。如其与电源和地及与等是否接好。另可以通过软件来调试硬件,为了测试显示电路连接是否真确,可以编写一个简单的显示程序来测试它。接下来可以进行软件调试,可以编写只含的计时和读写程序、显示程序,测试是正常工作。最后编写时间调整程序、显示切换程序等。当硬件主板做完,要搭建硬件电路元件时候,必须对硬件主板进行检查和调试。首先必须对电路板(板各节点进行检查。利用万用表检查各接点是否有断路现象。此外硬件调试中,还应注意单片机和脚所接的晶体振荡器是否起振,它直接关系到时钟振荡电路是否起作用。还有就是数码管的选用应注意数码管的共阳极还是共阴极的型号。软件部分占本次课题的很大一部分工作量,在件程序烧进CPU后上运行时能-27-
出现初始化时间,但起初存在以下问题:(1)入程序后,LED码管显示闪动,而且亮度不均匀。解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在返回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽指令,最后解决了此问题。(2)对小时进行校准时,小时的字符值得上限不是12/24,是从~99之进行变换。(3)对分钟进行校准时,分钟的字符值从跳99,正确的应该是~59(4)对时间和分钟调整时每当小时与分钟的低位加到9时得需连续按几下加1键时间与分钟的低位才能变并高位进而正确的应该是在此后按一下加键可以完成。解决:对十进制和十六进制处理不好,所以会造成错乱。最后把相应的数据十进制进行修改,使得可以与十六进制对应,最后解决了此问题。以上问题都是程序的设计编程问题所出现的情况,当把程序修改正确后,以上现象得以解决,顺利达到要求指标。综合调试是指让用户的软件在其硬件上实际运行,进行软硬件联合调试,从中发现硬件故障或软、硬件设计错误。这是对用户系统检验的重要一关。综合调试是单片机中很重要的一部分,其调试可分为时钟芯片的调试、DS18B20的试、LED显调试等。通过调试使系统正常的工,实现预期的效果。-28-
5结论本次毕业设计顺利的完成,各项指标都已实现,每个数码管可显示一个数字,一次可显示个字(时分交替显示温度),发光二极管来显示秒。此次设计从资料的搜集,方案的确立,在到电路的制作,程序的编写及撰写论文,在这整个过程中,使我学到了很多专业性的知识,对单片机汇编语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑项目钢材订购合同格式
- 无抵押个人贷款合同格式
- 货物采购与运输合同
- 广告屏出租合同案例分析
- 中铝安全管理
- 《电镀废水处理技术》课件
- 导尿管护理案例分析
- 医院危险化学品应急能力培训
- 生物餐饮管理培训课件
- dxy肝癌的介入治疗
- 智能治理:提高政府决策的准确性和效率
- 2024年滴眼剂市场份额分析:全球滴眼剂市场销售额达到了4.89亿美元
- 2023-2024学年广东省广州市白云区九年级(上)期末语文试卷
- 2024-2030年中国铁皮石斛行业市场竞争策略及投资价值研究报告
- 新生儿呼吸系统常见疾病的特点及护理课件
- 融入人工智能的《语言学概论》教案设计
- 2024年信息技术基础考试题库
- 2024至2030年中国空气滤芯行业投资前景及策略咨询研究报告
- 罪犯心理危机干预专家讲座
- 学术规范与论文写作智慧树知到答案2024年浙江工业大学
- 2024年典型事故案例警示教育手册15例
评论
0/150
提交评论