1、带温度显示的数字钟第七届“创兴杯”电子设计竞赛论文带温度显示的数字钟 指导教师:林志贵完成人:鲁闯(组长,电子1005)吴曼(电子1005)杨磊(电子1003)2012年5月21日带温度显示的数字钟摘要:本文介绍了设计的框架结构和组成模块以及各模块的原理,介绍了各部分硬件设计和各部分软件设计以及软件流程图。该设计是以STC89C52单片机为控制核心的集多种功能于一体的数字钟。该数字钟实现了具有时间显示功能;具有温度显示功能;闹铃功能。硬件设计分为单片机控制模块、按键模块、温度模块、时钟模块、闹铃模块、显示模块等几个部分。单片机控制就用STC89C52,显示模块用LCD1602C液晶显示温度、时
2、间、日期等内容,按键模块用来调整时间、日期、LED的亮度等,时钟用DS12C887时钟芯片,用蜂鸣器发出闹铃声,温度传感器用DS18B20芯片。软件设计用单片机C语言编写,实现了全部控制功能。关键词:单片机,显示,温度,时间。1 功能描述及总体该方案1.1 功能描述根据主要功能要求,该设计利用51单片机实现了电子时钟、温度的显示以及设置闹铃等功能。具体可分为一下几种:1) 显示当前的时间,24时制的时、分、秒;2) 可调节时间;3) 显示当前屋内温度;4) 可设置闹铃时间并报警。1.2 系统组成及工作过程六大模块以STC89C52单片机为控制核心,实现了数字钟的各项要求,外接一个5V的直流电源
3、,为整个系统供电。图1为设计的系统组成框图。图1 系统组成框图根据设计要求,该数字钟可分为六大模块:1) 单片机控制模块;2) 按键模块;3) 温度模块;4) 时钟模块;5) 闹铃模块;6) 显示模块;加上5V直流电源后,后五大模块在单片机控制之下分别工作。2硬件设计2.1单片机控制模块设计硬件电路如图2,图2 单片机控制模块电路单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chipmicrocomputer).它拥有优异的性价比、集成度高、体
4、积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:(1)最小应用系统是指能维持单片机运行的最简单配置的系统。这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小.(3)典型应用系统
5、是指单片机要完成工业测控功能所必须的硬件结构系统。STC89C52 是一种低功耗、高性能 CMOS8 位微控制器,具有8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52 具有以下标准功能: 8k 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三
6、个 16 位定时器/计数器一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。这里我们选用12M的晶振,晶振系统由两个30pF的电容CAP和晶振组成,接到单片机的18、19两管脚。晶振给单片机提供硬件本身的时钟振荡。一个10F的电解电容和一个1k的电阻组成复位电路,接至单片机的第9管脚。P0口加上排阻,即其就是P0口的上
7、拉电阻,这就是给P0加驱动电路,电源通过排阻向P0口供电,使其能够驱动与P0口相连的元件。2.2按键模块电路设计按键模块电路如图3,图3 按键模块电路独立按键用来用作调节时钟以及闹铃。按键均采用低电平有效连接方式。几个按键可以对时钟进行设置调节,并调节设置闹铃,当时间与设置的时间一致是闹铃报警,即蜂鸣器响。2.3温度模块电路设计温度模块电路如图5,图5 温度模块电路DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PPRAM,后者存放高温度和低温度触发器TH、T和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的
8、低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节,见表一。表一 DS18B20暂存存储器的8个连续字节寄存器内容字节地址温度最低数字位0温度最高数字位1高温限值2低温限值3保留4保留5计数剩余值6每度计数值7CTR校验8该字节各位的意义如下: TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。根据DS18B
9、20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 DS1820使用中注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送
10、,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序计时,对DS1820操作部分最好采用汇编语实现。 (2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离
11、可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。由于DS1
12、8B20温度传感器的集成度很高,封装简单,所以我们选用该芯片作温度模块电路。1脚接电源VCC,2脚数据线接单片机P24口,3脚接地。芯片采集到的数据通过2脚传给单片机的P24口让单片机进行处理,之后送给显示模块进行显示。2.4时钟模块电路设计时钟模块电路如图6,图6 时钟模块电路因为DS12C887时钟芯片的集成度都很高,而且它自带锂电池,即使断电了时钟仍然在工作,所以我们选择了DS12C887时钟芯片作为时钟。各脚的连接见图6.由于其集成度很高,我们只需按照其数据手册焊接电路即可。2.5闹铃模块电路设计闹铃模块电路如图7,图7 闹铃模块电路闹铃模块主要就是一个蜂鸣器,其作用是当到达设定的时间
13、到时发出蜂鸣声报警。用一个PNP型三极管和蜂鸣器连接主要是给蜂鸣器一个驱动,让蜂鸣器为高电平有效,即P07口高电平时蜂鸣器发声报警。2.6显示模块电路设计显示模块电路如图8,图8 显示模块电路1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。本设计使用的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,容量为1行2行16个字。1602采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,可通过一10K的
14、电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。1602液晶模块内部的字符发生存储器(CGROM)存储了160个点阵字符图形,如图2-7-1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是010
15、00001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。1602液晶模块内部的控制器共有11条控制指令,如表二所示:表二指令RSR/WD7D6D5D4D3D2D1D0清显示0000000001光标返回000000001*置输入模式00000001I/DS显示开/关控制0000001DCB光标或字符移位000001S/CR/L*置功能00001DLNF*置字符发生存储器地址0001字符发生存储器地址(ACG)置数据存储器地址001显示数据存储器地址(ADD)读忙标志或地址01BF计数器地址(AC)写数到CGRAM或DDRRAM10要写的数据从CGRAM或D
16、DRRAM11读出的数据1602液晶模块的读写操作、屏幕和光标的操作都可以通过指令编程来实现。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置 指令2:光标复位,光标返回到地址00H 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据 指令11:读数据
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1