基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc

上传人:仙人指路1688 文档编号:3028347 上传时间:2023-03-09 格式:DOC 页数:33 大小:129.50KB
返回 下载 相关 举报
基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc_第1页
第1页 / 共33页
基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc_第2页
第2页 / 共33页
基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc_第3页
第3页 / 共33页
基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc_第4页
第4页 / 共33页
基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc》由会员分享,可在线阅读,更多相关《基于单片机ATmega16L的电子温度日历表软件设计(已处理) .doc(33页珍藏版)》请在三一办公上搜索。

1、基于单片机ATmega16L的电子温度日历表软件设计 本科学生毕业论文论文题目:电子温度日历表软件设计学 院:电子工程学院年 级:专 业:电子信息科学与技术姓 名:学 号:指导教师:年5月10日摘要 本文主要结合了ATmega16L,DS12887,DS18B20,128*64显示模块的工作原理及工作过程,重点介绍了电子温度日历表的软件设计,以广泛使用的单片机ATmega16L技术为核心,配合时钟芯片DS12887,温度芯片DS18B20通过128*64显示模块实现了时间及温度的显示。软硬件结合,使硬件部分大为简化,提高了系统稳定性,同时具有数字集成电路精度高等优点,能够广泛应用于人们生活,同

2、时有关温度控制,时间控制等装置也是以电子温度日历表为基础的,研究电子温度日历表及其扩大应用,对现实也具有非常重要的意义。关键词 ATmega16L单片机;DS12887时钟芯片;DS1820温度传感芯片;128*64电子液晶显示;软件编程; Abstract This paper combines the ATmega16L, DS12887, DS18B20, LCD128*64working principle and working process, focusing on the electron temperature calendar software design. ATmega

3、16L microcontroller widely used technology as the core, With the clock chip DS12887, DS18B20 through LCD128*64 achieved time and temperature displaybination of hardware and software greatly simplifies hardware and improve system stability, but also has many advantages of digital integrated circuits

4、like high accuracy. It can be widely used in peoples lives, while temperature control, time control device is based on electronic temperature calendar The study of electron temperature calendar and the expandition of the application of reality has very important significance.Key words ATmega16L micr

5、ocontroller; DS12887 clock chip; DS1820 temperature sensor chip; LCD128 * 64 ;software programming 目录摘要IAbstractII前言1第一章 总体设计方案21.1设计思路21.2设计方案21.3方案比较论证21.4总体设计方框图3第二章 主要芯片介绍42.1 ATmega16L简介42.2温度传感器芯片52.2.1 DS18B20简介52.2.2温度计算52.2.3 DS18B20工作过程82.3时钟芯片DS12887102.3.1 DS12887功能102.3.2 DS12887管脚及存储器说

6、明102.4 128*64液晶显示112.4.1 DS12887读写时序112.4.2 DS12887基本指令介绍12第三章 硬件电路163.1单片机主模块设计16第四章 系统软件设计174.1程序流程框图174.2时钟调整程序184.3温度采集模块相关程序214.4矩形键盘控制程序254.5液晶相关程序30结论32参考文献33附录一34致谢57前言 在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千

7、奇百怪,但是它们都只是完成一种功能?计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。于是人们在钟表中加入了一些辅助功能入对温度的测量。 电子温度日历表是采用数字电路实现对.时,分,秒.数字显示的计时装置以及温度测量装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟以及温度表的精度,远远超过老式钟表和温度计,给人们生产生活带来了极大的方便。 本系统采用了以广泛使用的单片机ATmega16L技术为核心,配合时钟芯片DS12887。软硬件结

8、合,使硬件部分大为简化,提高了系统稳定性,并采用LCD显示电路、键盘电路,做到可以调整时间的功能。 本设计中我重点研究实现了单片机+时钟芯片+测温芯片这种模式的电子温度日历表,从原理上对单片机、时钟芯片和测温芯片有了深一步的认识,在软件基础上实现时间和温度显示及时间调整的功能。 第一章 总体设计方案 1.1设计思路 用ATmega16L处理产生内部时钟数据或者读取外部时钟数据和采集外部传感器的信息进行处理,并暂时寄存在其内部的储存器中,再通过单片机调用内部RAM的数据并送到LCD或者LED数码管上显示出来。 1.2设计方案 方案1:单片机一般的工作频率在12MHz左右,而且内部还有定时、计数器

9、,可以产生精确的1S定时,由次可以用定时中断的方式产生精确的1S时间,秒位不断的加1,再设计分、时、星期、日、月、年之间的进制,使产生进位。本方案只需要单片机最小系统加上显示电路,再设计简单的程序算法就可以实现。对于测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理。在显示电路上,采用数码管就可以将年月日星期时分秒和室内温度显示出来 方案2:采用单片机控制DS12887实时时钟芯片参考文献 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,1996:274-279.,能达到走时准确且掉电不丢失数据的。

10、DS12887与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES( 复位)2 I/O (数据线)3 SCLK(串行时钟)。温度计要灵敏反映室温的变化这样可采用单片机与数字式温度传感器DS18B20通讯,采集温度数字信号进行处理。DS18B20通过一个单线接口发送或接受信息,因此在单片机与DS18B20之间仅需一条连接(加上地线)。在显示电路上,采用16*2的LCD显示。 1.3方案比较论证 对于方案1,单片机虽然可以产生精确的秒信号,但是单片机在处理闰年上会比较麻烦,加之一旦单片机断电后,所有的时间都要重新调整。对于测温电路,采用热敏电阻的输出电压-温度特性,要加上A/D

11、转换,温度传感信息才能被单片机所接受,这种设计需要用到A/D转换电路,感温电路比较麻烦。在显示电路上,采用LED数码的话要用到单片机的许多I/O口,甚至I/O不够用,还需要接上其它芯片大量扩展I/O口,这是一个弊处。 对于方案2,单片机不用去产生时钟的数据,时钟的数据由DS12887独立产生,并寄存在其内部的寄存器上,单片机可以通过三总线与它通讯,不仅可以对它进行读取实时时钟数据,还可以对它进行编程,设置它的工作模式。单片机只是处理从DS12887读出来的数据并送显示,大大减少了单片机的负担。而且DS12887可以通过后备电池继续工作,内部的时钟还在走,下次启动后不用去调整时钟,方便使用。基于

12、同样的原理,DS18B20也是一个独立的传感器,只要单片机配置它的工作状态后它就可以独立工作,内部已经把模拟信号转换成数字信号,并把数字信号储存在其内部的寄存中。同样,单片机通过单总线与它通讯,可以处理912位的温度数字数据。在显示电路上,采用16*2 LCD液晶显示器,能容纳年月日星期时分秒温度等信息的显示。LCD显示器只需占用11个I/O口就可以工作了,不用其它扩展芯片,总体上使电路简单化。 1.4总体设计方框图 总体的方框图如图所示 占友,王彦朋.孟志永.单片机外围电路设计M.北京:电子工业出版社,2003:135-137,222-226.,控制器采用单片机ATMEGA16L,时钟芯片D

13、S12887、温度传感器采用DS18B20,用128*64的LCD液晶显示屏实现年、月、日、星期、时、分、秒、温度的显示。 图1-1 总体设计方框图 第二章 设计原理与分析 2.1 ATmega16L简介 ATmega16L是基于增强的AVR RISC结构的低功耗8 位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16L的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。 ATmega16 LAVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元ALU 相连接,使得一条指令可以在一个时钟周期内同时访问两个独

14、立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16L主要特性如下: 高性能、低功耗的 8 位AVR 微处理器 1、先进的RISC 结构 131 条指令 ? 大多数指令执行时间为单个时钟周期 32 个8 位通用工作寄存器 全静态工作 工作于16 MHz 时性能高达16 MIPS 只需两个时钟周期的硬件乘法器 2、非易失性程序和数据存储器 16K字节的系统内可编程Flash 具有独立锁定位的可选Boot 代码区 通过片上Boot 程序实现系统内编程 真正的同时读写操作 512字节的EEPROM 擦写寿命: 100,000 次 1K

15、字节的片内SRAM 可以对锁定位进行编程以实现用户程序的加密 3、JTAG 接口 与IEEE 1149.1 标准兼容 符合JTAG 标准的边界扫描功能 支持扩展的片内调试功能 通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程 图2-1 ATmega16L引脚 2.2温度传感器芯片 2.2.1 DS18B20简介 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器 童诗白,华成英.模拟电子技术基础M.北京:高等教育出社,2001:312-330,387-391,408-411,446-451.,与传统的热敏电阻等测温元件相比,它能直接读出

16、被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:1采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通信。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的够建引入全新概念。2测量温度范围宽,精度高DS18B20的测量范围是-55-+125;在-10-+85范围内,精度为0.5。3在使用中不需要任何外围器件。4持多点组网功能多个DS18B20可以并联在唯一的单线上,实现多点测温。5供电方式灵活DS18B20可以通过内部寄生电路从数据

17、线上获取电源。因此,当数据线上的时序满足一定的要求是,可以不接外部电源,从而使系统结构更趋简单,可靠性更高 康华光,陈大钦.第四版电子技术基础M.北京:高等教育出版,2001: 56-57,443-446.。6测量参数可配置DS18B20的测量分辨率可通过程序设定9-12位。7负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 张福学.传感器应用及其电路精选M.北京:电子工业出版社,1991:102-121.。8掉电保护功能DS18B20内不含有EEPROM,在系统掉电以后它仍可保存分辨率及报警温度的设定值。DS18B20具有体积小、适用电压更宽、更经济、可选更小的封装方式,更宽的

18、电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐 2.2.2温度计算 1、DS18B20用9位存贮温值度,最高位为符号位,如表2-1为DS18B20的温度存储方式,负温度S1,正温度S0。如:00AAH为+85摄式度,0032H为25摄式度,FF92H为55摄式度 表2-1 DS18B20用9位的温度存储方式bit7 bit6bit5bit4 bit3 bit2 bit1bit0 23 22 2202-12-222-4 2、DS18B20用12位存贮温值度,最高位为符号位,如表2-2为DS18B20的温度存储方式,负温度S1,正温度S0。如:0550H为+85摄式度,01

19、91H为25.0625摄式度,FC90H为-55摄式度。 表2-2 DS18B20用12位的温度存储方式bit7bit6 bit5 bit4bit3 bit2 bit1bit0 23 22 21 20 2-1 2-2 2-3 2-4 bit15bit14 bit13 bit12 bit11bit10 bit9 bit8 S S S SS 26 25 24 DS18B20 黄继昌,张海贵,郭继忠.实用单元电路及其应用M.北京:人民邮电出社,2002:185-190,234-235.温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEROM。高速暂存RAM的结构为8字节的存

20、储器,结构如图2-2所示。头2个字节包含测得的温度信息,第3和第4字节TH和的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器它的内容用于确定温度值的数字转换分辨率。 图2-2 DS18B20存储器结构 DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值 张萌,和湘.单片机应用系统开发综合实例M.北京:清华大学出版社,2007:119-150,254-261.。该字节各位的定义如图2-3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

21、由表2-3可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 表2-3 DS18B20分辨率 R1 R0分辨率/位温度最大转向时间/ms 0 0 9 93.75 0 1 10187.5 1 0 11 375 1 1 12 750 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单

22、片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625/LSB形式表示。 当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。 2.2.3 DS18B20工作过程 DS18B20的一线工作协议流程是 谢宜仁.单片机实用技术问答M.北京:人民邮电出版社,2003:31,33-35,55-57,67-69.: 初始化?ROM操作指令?存储器操作指令?数据传输 其工作时序包括:初始化时序,写时序,读时序 图2-3 DS18B20初始化时序图 主机首先发出一个480-960

23、微秒的低电平脉冲,然后释放总线为高电平,并在随后的480微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已作出应答。若无低电平出现一只都是高电平说明总线上无器件应答。作为从器件的DS18B20在一上电后就一直在检测总线上是否有480-960微秒的低电平出现,如果有,在总线转为高电平后等待15-60微秒后将总线电平拉低60-240微秒做出响应存在脉冲,告诉主机本器件已经做好准备。若没有检测到就一直在检测等待 图2-4 DS18B20写操作时序图 写周期最少要60微秒,最长不超过120微秒。写周期一开始作为主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则继续拉低电平最少60微秒

24、直至写周期结束,然后释放总线为高电平。若主机想写1,在一开始拉低总线电平1微秒后就释放为高电平,一直到写周期结束。而作为从机得DS18B20则在检测到总线被拉低后等待15微秒然后从15us4到5us开始对总线采样,在采样期内总线为高电平则为1,若采样期内为低电平则为0.图2-5 DS18B20 读操作时序图 对于读数据操作也分为读0时序和读1时序两个过程。读时序是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线辣味低电平知道读周期结束。若要送出1则释放总线为高电平。

25、主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线1微秒在内的15微秒时间内完成对总线进行采样检测,采用期内总线低电平则确认为0.采样期内总线为高电平则确认为1.完成一个读时序过程,至少需要60微秒才能完成。 2.3时钟芯片DS12887 2.3.1 DS12887的功能 DS12887是美国达拉斯半导体公司最新推出的时钟芯片RTC,它功能丰富,应用广泛,PC机内的信号就是由DS12887提供的。其主要功能如下: 1可作为PC机的时钟和日历。 2与MC146818B和DS1287的管脚兼容。 3在没有外部电源的情况下可工作十年以上不丢失数据。 4自带晶体振荡器及锂电池。 5)可计算

26、到2100年前的秒,分,小时,星期,日,月,年七种日历信息并有闰年补偿功能。 6二进制数码或BCD码表示时间,日历和闹钟。 712和24小时两种制式,12小时时钟模式带有PM和AM指示,有夏令时功能。 8可编程方波输出。 当Vcc低于4.25V时,芯片处于写保护状态(所有的输入均无效),同时所有输出呈高阻状态。当Vcc低于3V,芯片将自动把供电方式切换为由内部电池供电 2.3.2 DS12887的管脚及存储器说明AD0?AD7为地址/数据复用线。NC为空脚。MOT为总线模式选择,当此脚接到Vcc时,选用的是MOTOROLA总线时序,当它接地或不接时,选用的是INTEL总线时序。CS为片选端。A

27、S为地址锁存允许端。R/W在INTEL总线下作为写。DS在INTEL总线下作为读。RSET为复位端,复位端对时钟,日历,RAM无效,系统上电时复位端要保持低电平200MS以上DS12887才可以正常工作。IRO为中断请求输出端。SQW为方波输出端,当Vcc低于4.25V时没有作用,Vcc为5V电源。GND接地端 何立民. 单片机应用系统设计M.北京:航空航天大学出版社,1994:24-38. 表2-4 DS12887内部寄存器AUIPDV2DV1DV0RS3RS2RS1RS0 UIP1:更新已到,不能读/写DS12887;UIP0,更新未到,能读/写DS12887。 DV2,DV1,DV0应设

28、置为010,表示打开晶振,允许计时。 RS3,RS2,RS1,RS0为方波频率选择位,产生方波周期中断。 表2-5 DS12887内部寄存器BSETPIEALEUIESQWEDM24/12DSESET0:时间更新正常运行,每秒计数一次,SET1:禁止更新,程序可初始化时间和日历。PIE1:允许周期中断PIE0:禁止周期中断ALE1:允许报警中断,ALE0:禁止报警中断UIE1:允许更新结束中断,UIE0:禁止更新结束中断。SQWE为方波允许位SQWE1:将RS3,RS2,RS1,RS0选定的方波输出。DM1:BCD码 DM0:二进制24/12:1表示24时制;0表示12时制DSE为夏时制允许位

29、。DSE1:采用夏时制,DSE0:不采用夏时制 表2-6 DS12887内部寄存器CIRQFPFAFUF0000IRQF为中断申请标志PF为方波周期中断标志。PF1:方波周期结束,申请中断。AF为闹钟中断标志。AF1:当前时间与闹铃时间匹配时即刻申请中断UF为更新周期结束中断标志。 表2-7 DS12887内部寄存器DVRT0000000VRT为内部锂电池状态,VRT1:锂电池正常,VRT0:锂电池耗尽 2.4 128*64液晶显示 2.4.1 128*64读写时序图12864液晶显示模块采用8位并行连接时序图如图所示图2-7 DS12887读写时序 2.4.2基本指令介绍 先锋工作室.单片机

30、程序设计实例M.北京:清华大学出版,社2003:235-241.1、清除显示表2-8 清屏指令RW RS DB7 DB6 DB5DB4 DB3 DB2 DB1 DB0 LLLL L LL L L L功能:清除显示屏幕,把DDRAM位址计数器调整为“00H”2、位址归位 表2-9 地址归位指令RW RSDB7 DB6 DB5DB4 DB3DB2 DB1DB0LLL L LLL LH X功能:把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM3、位址归位表2-10 位址归位指令RW RSDB7 DB6DB5 DB4 DB3 DB2 DB1DB0LLLL L L L H

31、I/DS功能:把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。4、显示状态 开/关表2-11 显示状态指令RWRS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0LLLLLLHDCB功能: D1;整体显示ON C1;游标ON B1;游标位置ON5、游标或显示移位控制 表2-12 游标或显示移位控制指令RW RS

32、DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 LL LLLH S/C R/L XX功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM的内容6、功能设定 表2-13 功能设定指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 LL LLHDL X 0RE XX功能:DL1(必须设为1)RE1;扩充指令集动作 RE0:基本指令集动作7、设定CGRAM位址 表2-14 设定CGRAM地址指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 LL LH AC5 AC4AC3AC2AC1AC0功能:设定CGRAM位址到位址计数器

33、(AC)8、设定DDRAM位址 表2-15 设定DDRAM地址指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 LL HAC6AC5 AC4AC3AC2AC1AC0功能:设定DDRAM位址到位址计数器(AC)9、读取忙碌状态(BF)和位址 表2-16 读取忙碌状态指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 LH BFAC6AC5 AC4AC3AC2AC1AC0功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值10、写资料到RAM 表2-17写RAM指令RW RS DB7 DB6 DB5 DB4 DB3

34、DB2 DB1DB0 HL D7D6D5 D4D3D2D1D0功能:写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)11、读出RAM的值 表2-18读RAM指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 H H D7D6D5 D4D3D2D1D0功能:从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM)12、待命模式(12H) 表2-19 待命模式指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L LL L L L L L H功能:进入待命模式,执行其他命令都可终止待命模式13、卷动位址或IRAM

35、位址选择(13H) 表2-20 卷动位置指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L LL L L L L H SR功能:SR1;允许输入卷动位址SR0;允许输入IRAM位址 14、反白选择(14H) 表2-21 反白选择指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L LL L L L H R1 R0功能:选择4行中的任一行作反白显示,并可决定反白的与否15、睡眠模式(015H) 表2-22 睡眠模式指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L LL L L H SL X X功能:S

36、L1;脱离睡眠模式SL0;进入睡眠模式16、扩充功能设定(016H) 表2-23 扩充功能指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L LL H H X RE G L功能:RE1;扩充指令集动作 RE0;基本指令集动作 G1;绘图显示ON G0;绘图显示OFF17、设定IRAM位址或卷动位址(017H) 表2-24卷动位址指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L LH AC5 AC4 AC3 AC2 AC1 AC0功能:SR1;AC5AC0为垂直卷动位址SR0;AC3AC0写ICONRAM位址18、设定绘图RAM位

37、址(018H) 表2-24卷动位址指令RW RS DB7 DB6 DB5 DB4 DB3DB2 DB1DB0 L L HAC6 AC5 AC4 AC3 AC2 AC1 AC0功能:设定GDRAM位址到位址计数器(AC)第三章 硬件电路 3.1单片机主模块电路设计本设计电子温度日历表的总设计电路图如图所示 。 图3-1 总设计电路图 第四章 系统软件设计 4.1程序流程框图因为使用了时钟芯片DS12887,所以只需要从DS12887中的各个寄存器中读出年、月、日、星期、时、分、秒等数据,再处理即可。在首次对DS12887进行操作前,必须对它进行初始化,然后从DS12887中读出数据,再经处理后,

38、送给显示缓冲单元。 图4.1 程序主流程图系统初始化程序 谭浩强.C程序设计M.北京:清华大学,2007:56-67/时钟调准后屏蔽该段程序/时间初始化设置DS12887_SetTimeDS12887_Second,00; /设置秒DS12887_SetTimeDS12887_Minute,59; /设置分DS12887_SetTimeDS12887_Hour,11; /设置时DS12887_SetTimeDS12887_Day,30; /设置天DS12887_SetTimeDS12887_Month,05; /设置月DS12887_SetTimeDS12887_Year,10; /设置年DS

39、12887_SetTimeDS12887_Week,1; /设置星期void settimeuint add,uint time switchaddcase 1:DS12887_SetTimeDS12887_Minute,time;break; /设置分 case 2:DS12887_SetTimeDS12887_Hour,time;break;/设置时 case 3:DS12887_SetTimeDS12887_Day,time;break; /设置天 case 4:DS12887_SetTimeDS12887_Week,time;break; /设置星期case5:DS12887_SetT

40、imeDS12887_Month,time;break; /设置月 case 6:DS12887_SetTimeDS12887_Year,time;break; /设置年default:break; 4.2时间调整程序流程 调整时间用4个调整按钮,2个作为移位、控制用,另外2个作为加调整用,分别定义为控制钮1,控制钮2,加、减按钮。在调整时间的过程当中,要调整的位与其它的位应该有区别,所以增加了闪烁的功能。时间调整程序流程图如图3.2所示。 时间调整程序如下 佟长福.AVR单片机GCC程序设计M.北京:北京航空航天大学出版,2007:74-78: void mainvoid SYSTEMTIM

41、E CurrentTime; init_devices; write_command0x01; /清除显示 write_command0x02; /地址归位 write_command0x80; /设置DDRAM地址 while1 key_numread_keyboard; ifdisplay_time_mark /时间更新显示 DS12887_GetTime&CurrentTime; display_time; display_CGROM2,0,当前室温: ; Display_ds18B20; ifkey_num7&m1 /调时状态下调制项选择 beep; display_time_mark

42、0; item+; ifitem7 item1; setitem; ifkey_num7&m0 /正常状态下启动调时 beep; m1; setitem; ifkey_num8&m1 /时间+ beep; setitem; ifkey_num4&m1 /时间- beep; setitem; ifkey_num3&m1 /退出调制时间 beep; m0; display_time_mark1; display_CGROM3,0, ; /抹掉显示 图4-2 时间调整程序流程图 4.3温度采集模块相关程序 单片机实现对温度传感器DS18B20的温度转换读取温度数值流程图如下图4-3所示。 图4-3 温度转换读取温度数值流程图 温度采集程序如下: 从18B20中读取一个字节的数据 uchar Read18B20void uint byte0,i; fori0;i8;i+ DDRC |

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号