基于51单片机用LCD1602显示的DS18B20课程设计键控上下限报警功能.doc

基于51单片机用LCD1602显示的DS18B20课程设计键控上下限报警功能.doc

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 33 单片机课程设计 DS18B20数字温度计设计 目录 课题的设计目的。 对于课题的总体构想。 DS18B20温度传感器简介。 STC89C51单片机简介。 系统总仿真电路。 总程序。 心得体会。 参考文献。 一.课题的设计目的 1. 巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。 2. 培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。 3. 通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。 对课题的总体构想 采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号, 采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外STC89C52 DS18B20温度传感器简介 DS18B20功能特点: 1. 采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。 2. 每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。 3. 低压供电,电源范围从3~5V,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式)。 4. 测温范围为-55℃~+125℃,在-10℃~85℃ 5. 可编辑数据为9~12位,转换12位温度时间为750ms(最大)。 6. DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。 DS18B20引脚如图所示。 四.DS18B20时序图 1.初始化时序 2.写时序 3.读时序 五.STC89C51单片机简介。 89C52单片机主要特性 1. 一个8 位的微处理器(CPU)。 2. 片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。 3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。 4. 四个8 位并行I/O 接口P0~P3,每个口既可以用作输入,也可以用作输出。 5. 两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。 6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。 7. 一个全双工UART(通用异步接收发送器)的串行I/O 口,用于实现单片机之间或单机与微机之间的串行通信。 8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。 系统总仿真电路。 总程序 (分模块写) 1.main.c #includereg51.h #includelcd.h #includetemp.h void LcdDisplay(int); sbit K1=P2^0; sbit K2=P2^1; sbit K3=P2^2; sbit K4=P2^3; extern int th=20; extern int tl=-10; sbit beep=P1^0; void main() { LcdInit(); LcdWriteCom(0xc7); LcdWriteData(C); while(1) { if(K1==0) { Delay1ms(500); if(K1==0); th++; } if(K2==0) {

文档评论(0)

weidameili + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档