版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的多功能万年历设计作者:任广禄摘 要单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。单片机是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。本设计以AT89S52单片机为核心,结合DS1302时钟芯片,并采用LCD12864液晶显示。该多功能电子万年历具有时间显示、
2、及具有温度计功能功能。以时、分、秒格式显示时间(精度为1秒)。计算器通过44按键对时间、日期进行调整,进行功能切换。同时具有自动调整功能。整机电路使用+5V稳压电源,可稳定工作。在实现硬件电路的基础上,通过软件控制程序实现其功能。 关键词:状态显示;时钟;温度;计算器;AT89S52单片机ABSTRACT With the rapid development of microcomputer application technology, we now look at all areas of life, from the missiles navigation devices to vari
3、ous instruments on the aircraft, from the computer network communication and data transmission, to industrial automation, real-time process control and data processing, and we live in a variety of widely used smart IC cards, electronic pets, these are inseparable from the microcomputer. Microcompute
4、r is a CPU, RAM, ROM, timing, counting and multiple interfaces in one of the microcomputer. Its small size, low cost, powerful, widely used in smart industries and industrial automation. The 51 microcomputer series is the most typical of the microcontroller and the most representative one. The AT89S
5、52 microcomputer as the core design, combined with DS1302 clock chip and liquid crystal display using LCD12864. The multi-function electronic calendar with a time display, and has a thermometer function function. Hours, minutes, seconds format time (an accuracy of 1 second). 44 Calculator by keys on
6、 the time, date, adjust the function switch. Also has automatic adjustment function. Machine using the +5 V regulated power supply circuit can be stability. In the realization of hardware based on software control program to achieve its function.Key Words: Status display;Clock;Temperature;Calculator
7、;AT89S52 Microcomputer目 录1 绪论11.1多功能万年历设计的背景及意义11.2总体要求和规划11.2.1方案选择与论证11.2.2电路设计最终方案21.2.3主要技术指标32主要元器件简介42.1 AT89S5242.2温度传感器DS18B2062.3 DS1302时钟芯片83 系统硬件电路的设计93.1系统总体硬件结构设计93.2 AT89S52及其外围电路93.2.1温度传感器DS18B20123.2.2液晶显示电路154 软件设计174.1系统总软件的设计流程174.2 DS18B20的软件设计174.3 键盘输入的软件设计195测试过程及结果205.1硬件测试2
8、05.2软件测试205.3测试结果20结 论21参考文献22附录1:整体电路图23附录2:源程序24致 谢561 绪论1.1多功能万年历设计的背景及意义随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。日历是人们不可或缺的日常用品。但一般日历都为纸制用品,使用不便,寿命不长。电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。本设计以AT89S52单片机为核心,构成单片机控制电路,AT89S52是一种带8K字节闪速可编程可擦除只读存储器(PEROM)的低电压、高性能CMOS 8位为控制器。该器件采用ATMEL 非易失存储器制造技术制造,与
9、工业标准的80C51和 80C52指令集和输出管脚相兼容。结合DS1302时钟芯片和24C02 FLASH存储器,完成时间的自动调整和掉电保护,全部信息用液晶显示。时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。日历能显示阳历和阴历年、月、日以及星期、时、分、秒。在显示阴历月份时,能标明是否闰月。此万年历具有读取方便、显示直观、功能多样、电路简单、成本低廉等诸多优点,符合电子仪表的发展趋势,具有广阔的市场前景。二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年的开发与研究在信息化的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位
10、礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子年历的开发是国家之所需,社会之所需,人民之所需。由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。1.2总体要求和规划 1.2.1方案选择与论证 (1)显示模块选择方案和论证:方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字较合适,但它的硬件电路复杂,没有汉字显示,需要的接口线多,并且显示起来不美观,所以不用此种作为显示.方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价
11、格也相对较高,所以也不用此种作为显示.方案三:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,需要的接口线少,看起来方便美观,所以在此设计中采用LED液晶显示屏.(2)时钟芯片的选择方案和论证:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,目前市场上已有很多实时时钟芯片,如DS18B20,DS1302,PCF8563,X1227等,芯片内部都集成了时钟/日历功能,给时钟设计带来很多方
12、便。因此计时功能以选用专用时钟芯片为宜。在系统硬件时,我们考虑到串行总线接口较并行总线接口较为方便和设计成本等因素,选用了DS1302。1.2.2电路设计最终方案本设计研究的问题是显示时钟,温度。并有计算器功能。时钟结合DS1302时钟芯片,以时、分、秒格式采用液晶显示。温度由DS18B20测量,通过单片机计算并在液晶屏上显示。计算器采用4*4键盘输入,并由单片机运算得出。功能模块主要包括:电源,实时时钟,显示,温度和键盘模块。在软件设计部分,根据万年历各个模块的功能,设计系统各个任务的功能流程。(1) 控制模块:控制模块用于对系统的其他模块进行控制与调度,从而实现所需功能。(2) 电源模块:
13、用于给整个系统提供稳定的电源,包括控制模块所需的5V电压和时钟模块所需的3.6V电压等。(3) 温度采集模块:用温度传感器DS18B20将所需测量的温度值转换为电信号并传递给单片机。(4) 计算输入模块:采用44键盘输入。 电源单片机控制电路键盘调节电路显示电路软件控制程序图1-1 系统硬件框图1.2.3主要技术指标(1) 显示阳历年、月、日、时、分、秒、星期等,可设置节日提醒。时钟的运行可以采用24h格式。(2) 用液晶进行显示,用按键进行调整。(3) 计算器切换功能。(4) 温度显示功能。AT89S52是一种低功耗,高性能CMOS 8位单片机,片内含8 KBISP(In-system pr
14、ogrammable)的可反复擦写1000次的Flash只读程序存储器。40个引脚计数器;2个全双工串行通信口;看门狗(WDT)电路和片内时钟振荡器。低功耗时钟芯片DS8位RAM;最少引脚的串行I/O;2.55.5V 电压工作范围;2.5V时耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;简单的3线接口;可选的慢速充电(至VCC1)的能力。可以对年、月、日、时、分、秒进行计时。特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。2主要元器件简介2
15、.1 AT89S52 AT89S52的引脚1图如图2-1所示。主电源引脚Vcc和Vss,Vcc(40脚)接5V电压;Vss(20脚)接地。XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。RESET复位输入端。当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。ALE/PROG2当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地
16、址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。 如果需要的话,通过对专用寄存(SFR)区中8EH单元的D0位置数,可禁止ALE操作。该位置数后,只有在执行一条MOVX或MOVC指令期间,ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止ALE位无效。/PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT
17、89S51/LV51由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/Vpp 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000HFFFFH),则/EA端必须保持低电平(接到GND端)。然而要注意的是,如果保密位LB1被编程,复位时在内部会锁存/EA端的状态。当/EA端保持高电平(接Vcc端)时,CPU则执行内部程序存储器中的程序。在Flash存储器编程期间,该引脚也用于施加12V的编程允许电源Vpp(如果选用12V编程)。P0端口(P0.0 P0.7):P0是一
18、个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。 在Flash编程时,P0端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0 P1.7):P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚
19、会输出一个电流。 在对Flash编程和程序验证时,P1接收低8位地址。P2端口 (P2.0P2.7):P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX DPIR指令)时,P2送出高8位地址在访问8位地址的外部数据存储器(如执行MOVX RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访
20、问期间不会改变。在对Flash编程和程序验证期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7):P3 是一个带有内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。作为第一功能使用时,就作为普通I/O口使用,功能和操作方法与P1口相同。图2-1 AT89S52管脚图2.2温度传感器DS18B20 众所周知温度传感器的种类很多,比如AD590,LM35,DS18B20等,所以在设计温度电路的
21、时候温度传感器的选择就尤为重要了。本设计采用了温度传感器DS18B20,通过此传感器采集监控场所的温度,把此温度信号变成数字信号通过DS18B20的二管脚传给单片机的实现温度控制的作用。本设计设计的温度下限温度为30C,上限温度为60C当超出此范围就会报警。DSl8B203利用单总线的特点可以方便的实现多点温度的测量,DSI8B20直接把温度信息转换成相应的数字信号,可以轻松的组建传感器网络,系统的抗干扰性好、设计灵活、方便,而且适合于在恶劣的环境下进行现场温度测量,所以重点分析一下DSl8B20。温度传感器DS18B20的主要特性:(1) 适应电压范围更宽,电压范围:3.05.5V,在寄生电
22、源方式下可由数据线供电; (2) 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯; (3) DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温; (4) DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内; (5) 温范围55C125C,在-10+85C时精度为0.5C; (6) 可编程的分辨率为912位,对应的可分辨温度分别为0.5C、0.25C、0.125C和0.0625C,可实现高精度测温; (7) 在9位分辨率时最多在93.75ms内把温度
23、转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快; (8) 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力; (9) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。DS18B20的外形及管脚排列如图2-2所示,1:GND为电源地;2:DQ为数字信号输入/输出端;3:VDD为外接供电电源输入端(在寄生电源接线方式时接地)。图2-2 DS18B20管脚图DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的应用电路:
24、DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。DS18B20在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源 2)可以在没有常规电源的条件下读取ROM3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同
25、一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图2-3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加
26、1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度4。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图2-3 DS18B20测温原理图2.3 DS1302时钟芯片现在流行的串行时钟电路很多,如DS13025、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路DS1302是DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒
27、进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。DS1302 的控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。在控制指令字输入后的下一个SCL
28、K时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振
29、。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),。SCLK为时钟输入端。图2-4 DS1302的引脚功能图。图2-4 DS1302封装图3 系统硬件电
30、路的设计3.1系统总体硬件结构设计 图3-1系统总体硬件结构单片机液晶显示键盘输入温度测量日历时钟44键盘根据系统设计功能的要求,本设计的硬件电路6包括单片机电路、液晶显示电路和温度传感电路、键盘电路。主控芯片使用51系列AT89S52单片机,时钟芯片使用DS18B20。电路系统构成图如图3-1所示。3.2 AT89S52及其外围电路 AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。如图3-2所示。P0口:P0口是一个8位漏极开路7的双向I/O口。作为输出
31、口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(TTL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/
32、T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2口:P2口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动 4个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原
33、因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3 输出缓冲器能驱动4个TTL逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所
34、示。在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG8:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用
35、于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周
36、期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP9:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。图3-2 AT89S52引脚图 PLCC封装单
37、片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端 。如图3-3 所示。图3-3 单片机最小系统图3.2.1温度传感器DS18B20 DS18B20的应用电路:DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为
38、3.0 V至5.5 V 无需备用电源 测量温度范围为-55至+12510 。温度传感器可编程的分辨率为9-12位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。描述该DS18B20的数字温度计提供9-12位(可编程设备温度读数。信息被发送到/DS18B20 通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线。这使得温度传感器放置在许多不
39、同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。不在本表中所有管脚不须接线。 DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一:1)读ROM,2)ROM匹配,3)搜索ROM,4)跳过ROM,5)报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。 若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温
40、。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有的数据都读,写都是从最低位开始。 DS18B20有4个主要的数据部件11: (1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该D
41、S18B20自身的序列号,最后8位是前面56位的循环冗余校验码。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 (2) DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,温度报警触发器TH和TL,配置寄存器。 DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通
42、讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。高速暂存器RAM是由8个字节的存储器组成;第一和第二个字节是温度的显示位。第三和第四个字节是复制TH和TL,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;六、七、八三个字节是计算机自身使用。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。64位光刻ROM的前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后
43、的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。 DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。当VDD端口接3.0V5.5V的电压时是使用外部电源;当VDD端口接地时使用了内部的寄生电源。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。 DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数
44、。16位数字摆放是从低位到高位。 下图3-4即为温度传感器DS18B20的测温电路图12:DS18B20在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处:1)进行远距离测温时,无需本地电源 2)可以在没有常规电源的条件下读取ROM3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换。图3-4 温度传感器电路3.2.2液晶显示电路本设计的液晶显示用于显示用户接口界面,用于显示各类操作菜单信息,系统
45、通信和安全密码信息还有温度值(当前温度,上限温度,下线温度)等。液晶的电路连接比较简单,把LCD与单片机的P0口进行通信。液晶显示电路MGLS12864是点阵图形式显示模块13,提供位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块,并可以实现汉字、ASCII码、点图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字,广泛用于各种仪器仪表、家用电器上作为显示器件。表3-1为MGLS12864液晶显示器的引脚功能。当15脚为低且16脚为高时选中MG-12864的左区(左边的6464),当15脚为高且16脚为低时选中MG-128
46、64的右区(边的6464)。19脚和20脚是为了在光线暗的环境下看到液晶显示器的显示内容而加的背光,即在液晶显示器的加一光源。控制线R/W、CS1、CS2、RS必须在使能线E为低的时候改变。当使能线E为高时控制线R/W、CS1、CS2、RS不能改变;使能线E为高时MG12864从数据线DB0DB7输出数据。表3-1 MGLS12864液晶显示器的引脚功能 管脚号管脚符号 说明1VSS逻辑电源地2VDD逻辑电源+5V3NC(V0)五连接(液晶负电压供应端)4RS(CS)高:数据/低:指令5R/W(SID)高:读/低:写(串行数据)6E(SCLK)使能端(串行时钟)7-14DB0-DB7数据总线1
47、5CS1片选116CS2片选217RST系统复位低电平有效18NC(Vout)无连接(液晶负电压输出端)19LEDA背光电源,LED+(+5V)20LEDK背光电源,LED-(0V)图3-5 MGLS12864液晶显示器连接图4 软件设计4.1系统总软件的设计流程本系统程序设计的任务是:一是温度、时钟的采集与处理;二是各信号的存储。本设计主要工作的流程为:加电启动,初始化模块检测模块程序、显示模块等,使单片机,温度传感器和液晶和存储器等个模块正常工作。系统进入主循环14,首先设置各个传感器的主程序流程如图4-1所示。-图4-1主程序流程图4.2 DS18B20的软件设计根据单总线协议15,使用
48、DS18B20的步骤是:初始化、识别、数据交换。由于本设计的单总线上只连接1个DS18B20,允许单片机不必读取64位序列码而直接对DS18B20操作,因此可以使用跳过读序列号的操作命令,对DS18B20发出启动温度转换操作命令,等待转换完成后,再将DS18B20初始化并跳过读序列号操作,接着向DS18B20发出读暂存器的操作命令,就可以读出温度值,如图4-2所示。图4-2 DS18B20的软件设计流程NY4.3 键盘输入的软件设计NNYY日期时间调整键盘扫描键盘扫描判断键盘是否为09?送LCD显示进位是否返回主程序?返回主程序延时去抖动退格前进退格?前进?闹钟时间调整键盘扫描判断键盘是否为0
49、9?送LCD显示进位是否返回主程序?返回主程序YNNYNNNYYYY图4-3 键盘扫描程序流程图5测试过程及结果5.1硬件测试温度、时间的电路系统不算复杂,对于焊接方面更是不可轻视,电路系统中只要出一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。在本实时时钟的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1)系统断电后并不能保持实时时钟。解决:选择3.6V电源给DS1302持续供电,可保证实时时钟显示。(2)LCD液晶不显示字符。解决:重新检查控制线与数据线和单
50、片机的连接,发现使能端E与单片机未连接,焊接好后问题解决。5.2软件测试万年历的功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:1输入程序后, LCD液晶不能实时显示。解决:经过多番研究发现LCD实时显示用LCD的中文机械码编写比用字符串编写较为简单和方便,最终把问题解决。2温度显示出现乱码问题。解决;根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换每一次读写之前都要对DS18B20进行复位操作,复位要求主CPU将数据线下拉500微秒
51、,然后释放。增加延时使其达到复位条件。5.3测试结果接通电源后,单片机读取DS1302的时钟信号,同时温度、信号传至单片机,经单片机计算后由液晶显示。按键后进入计算器程序可实现计算功能。 结 论本系统着眼于建立一个带计算功能的万年历。具有实时性好、可靠性高、价格低廉等特点。毕业设计在一定程度上加强了理论学习和工程实践相融合、巩固基础知识与培养创新意识相结合等方面的能力。经过此次的毕业设计培养了一种严肃认真和实事求是的科学态度,更熟悉了对一项课题研究、设计和实验的过程。本设计同时也存在着一些不足之处,携带不方便,温度采集虽然实时但并不精确。本设计还有很多可以完善的地方,可以着手从下面几个方面继续
52、扩展:1.本设计可以采用多个DS18B20并联在唯一的三线上,实现多点监测;2.本设计应用和扩展的空间很大。如实现阴阳历查询等。参考文献1 李广弟.单片机基础.北京航空航天大学出版社, 1996.2 孙涵芳. MCS-51/96系列单片机原理及应用.北京航空航天大学出版社,1996.3 王福瑞.单片微机测控系统设计大全.北京航空航天大学出版社, 1997.4 余永权. 89系列FLASH单片机原理与应用.电子工业出版社, 2000.5 楼然苗,李光飞等. 51系列单片机设计实例.北京航空航天出版社, 2003.6 何立民.单片机高级教程-应用与设计.北京航空航天大学出版社, 2000.7 蔡美
53、琴. MCS-51单片机系统及其应用.高等教育出版社, 1992.8 李华.单片机原理与接口技术.清华大学出版社, 1992.9 公茂法.单片机人机接口实例集.北京航空航天大学出版社, 1998. 10 刘光潭.中外集成电路简明速察手册.电子工业出版社, 1991.11 王伟.高性能、低功耗带RAM实时时钟芯片DS1302(上). 电子世界(第 一期), 1995:35-38 .12 王伟.高性能、低功耗带RAM实时时钟芯片DS1302(下).电子世界(第四期), 1995:53-57.13 李宏,张家田等. 液晶显示器件应用技术. 机械工业出版社, 2004 .14 刘利. 液晶显示原理.电
54、子工业出版社, 2002. 15 一九九九年产品目录(第一期),武汉力源股份有限公司, 1999:67-75.16 Maxim,et alNew Releases Databook(Volumev),America,1996附录1:整体电路图附录2:源程序/头文件#include #include #define uchar unsigned char#define Lcd_Bus P0 /数据总线unsigned char e=0;uchar key;uchar rrr=0xff;uchar alldata12;uchar love10;uchar exit=0,yes=0,kind=0,f
55、u=0,pfu=0,position1=0,position2=0;unsigned long data1=0,data2=0,data3=0,ddata=0;/灯与扬声器定义/sbitled_back = P20;/背光控制(V2.1程序中加入了背光控制的硬件电路)sbitled_b = P27;/秒闪烁灯sbitled_r = P13;sbitled_g1 = P14;/(P3.3没有使用,V2.1程序中没有用到g14)sbitled_g2 = P14;sbitled_g3 = P14;sbitled_g4 = P14;sbitbeep = P22;/扬声器(V2.1程序中将V1.1程序中的蜂鸣器改为扬声器)/温度传感器定义sbit DQ = P25;/ds18B20/键盘引脚定义sbit KEY_1 = P16; /左上sbit KEY_2 = P17; /左下sbit KEY_3 = P26; /右上sbit KEY_4 = P24; /右下sbit KEY_I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度房屋财产分割及共有权转让协议3篇
- 课程设计游标卡尺
- 2025年销售年终工作总结参考(三篇)
- 二零二五年度创业投资对赌协议书范本及退出机制
- 二零二五年度建筑水暖消防工程监理分包合同2篇
- 市场总监主要职责模版(2篇)
- 课程设计医疗急救
- 2025年牛津上海版高二地理下册阶段测试试卷
- 2025年人教版七年级物理上册阶段测试试卷
- 2025版顶楼物业买卖合同书3篇
- (八省联考)云南省2025年普通高校招生适应性测试 物理试卷(含答案解析)
- YY/T 0882-2013麻醉和呼吸设备与氧气的兼容性
- JJG 596-2012电子式交流电能表
- GB/T 5237.1-2017铝合金建筑型材第1部分:基材
- GB/T 2317.1-2000电力金具机械试验方法
- 供应商ROHs审核表
- 五大发电公司及所属电厂列表及分部精编版
- 小学数学听课记录 精选(范文20篇)
- 光伏电站设备监造与性能验收
- 10kV架空线路施工方案
- 2018江苏苏州中考英语真题解析
评论
0/150
提交评论