ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:461.59KB ,
资源ID:29536307      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29536307.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(小区液晶显示仪.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

小区液晶显示仪.docx

1、小区液晶显示仪单片机课程设计报告题 目 小区液晶显示仪 专 业 电气工程及其自动化 班 级 组 长 成 员 指导教师 2011年03月09日摘要:为了让小区的居民更方便,不必为不知道当天的温度而犯愁,本项目设置了一个液晶显示系统,它能够感应周围的温度和显示当天时间。本课题分成两大模块,分别是温度采集模块以及由时钟芯片设计的高精度时间模块。温度采集模块是使用ds18b20,时间模块是用ds12c887,两个采集模块将采集信号送入单片机89c51,随后单片机将信号进行整理,送入液晶12864显示。关键词:单片机89c51,温度传感器ds18b20,时钟芯片ds12c887, 液晶12864Abst

2、ract:This design is based on single chip 12864 LCD display system, using AT89C51 control circuit, realize the periphery LCD digital, temperature, time or date, and other functions. Can directly through holding the temperature sensor, to adjust the LCD screen above number. Temperature sensor adopts -

3、, clock module USES AT89C51, through to control - temperature sensors, clock module. In the LCD displayed. SCM joins convenient and make simple circuit, the attachment is concise, compact structure, the design with flexibility, fully realized the topic request. Keyword: 89c51 ds18b20 ds12c887 12864目

4、录1 课程设计任务 41.1 功能要求 41.2 元器件清单 42整体设计方案 52.1 设计思路 52.2 整体框图 52.3 各模块功能 52.4 单片机口线分布 63 硬件电路设计 63.1 AT89C51单片机 63.2 温度采集模块设计电路 83.3 时钟模块硬件电路 103.4 液晶模块硬件电路 134 控制软件设计 154.1 温度采集模块软件设计 154.2 时钟模块软件设计 165系统调试 165.1 温度采集模块调试及问题 165.2 时间模块调试及问题 176 个人小结 187 参考文献 218 附件 2281 附件一 硬件电路图 2282 附件二 设计成品实物图 238

5、3附件三 程序清单 241 课程设计任务1.1 功能要求本项目设置了一个液晶显示系统,它能够显示周围的温度和当天时间,通过温度传感器ds18b20将温度信号传给单片机处理,再经过液晶屏显示出来。时钟芯片ds12c887可提高时间的精度。利用单片机,结合传感器技术而开发设计了这一温度监控系统。课题中将传感器理论与单片机实际应用有机结合。1.2 元器件清单元器件数量89c511ds18b201ds12c8871液晶128641DC5V电源1按钮开关6电容若干电阻若干2整体设计方案2.1 设计思路本课题采用两个模块:温度模块和时间模块。温度采集模块使用ds18b20,现有温度传感器感应周围的温度,将

6、采集到的温度传送到单片机内,经过处理后将数据送入液晶屏内;时间模块是用ds12c887,硬件连接后,通过软件单片机直接对其进行处理,随后将信号进行整理,送入液晶显示。2.2 整体框图2.3 各模块功能温度传感器模块:采集温度信号传递给单片机时钟模块:能够自动产生年、月、日、时、分、秒等时间信息液晶模块:显示温度、时间单片机89C51:信号处理2.4 单片机口线分布口线功能P0液晶D0D7数据读、写口P1时钟模块数据接口P2温度传感器信号口、时钟模块控制接口P3液晶控制接口RST/Vpd复位信号输入端(高电平有效)ALE/-PROG地址锁存信号输出端PSEN外部程序存储器读选通信号EA/Vpp外

7、部程序存储器使能端3 硬件电路设计3.1 AT89C51单片机注:引脚说明:电源引脚Vcc(40脚):典型值5V。Vss(20脚):接低电平。外部晶振X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地。输入输出口引脚:P0口:I/O双向口。作输入口时,应先软件置“ 1”。P1口:I/O双向口。作输入口时,应先软件置“ 1”。P2口:I/O双向口。作输入口时,应先软件置“ 1”。P3口:I/O双向口。作输入口时,应先软件置“ 1”。控制引脚:RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。RST/Vpd(9脚):复位信号输入

8、端(高电平有效)。第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。ALE/-PROG(30脚):地址锁存信号输出端。第二功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。3.2 温度采集模块设计电路a、接线电路图: b、实物图: c、工作原理:由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20

9、是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。1) DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20

10、能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图3.1-1 DS18B20的写时序2) DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 图3.1-2 DS18B20的读时序d、设计原理:温度传感器感应周围的温度,将采集到的温度传送到单片机内,经过处理后将数据送入液晶屏内;3.3 时钟模块硬件电路a、

11、接线电路图:b、实物图:c、工作原理:1)DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节 RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。2)口线分布:GND、 VCCVC

12、C=+5V时,访问内部RAM中的数据,对其进行读、写操作;VCC+4.25V时,禁止用户对内部RAM进行读、写操作MOT模式选择脚,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式SQW方波输出脚,本课题不使用AD0AD7复用地址数据总线AS地址选通输入脚DS/RD数据选择或读输入脚R/W读/写输入端CS片选输入,低电平有效IRQ中断请求输入,低电平有效3)如表1所示其存储功能:d、设计原理:单片机P1口接时钟芯片数据口,其余控制口接P2口,通过单片机控制时钟芯片的控制端口,将时钟模块从数据口产生信号传入单片机内,分别读出时钟的时、分、秒、年

13、、月、日,最后显示到液晶。3.4 液晶模块硬件电路a、接线电路图:b、实物图:c、工作原理:1)管脚说明:2)读、写时序图:.写操作时序2. 读操作时序d、设计原理:由控制口来打开液晶的读、写操作,数据口处理单片机发送的指令显示温度、时间。4 控制软件设计4.1 温度采集模块软件设计a、功能:温度传感器采集周围温度变化信号b、流程图:4.2 时钟模块软件设计a、功能:实现时钟的时、分、秒、年、月、日,最后显示到液晶b、流程图:5系统调试5.1 温度采集模块调试及问题a、调试方法:改变环境,观察液晶显示数值是否与温度计测量数值相符b、出现问题:(1)液晶不显示解决方法:软件调试无问题,检查硬件线

14、路,经仔细排查,发现是晶振损坏(2)显示温度与实际温度有较大差别解决方法:修改软件中的参数5.2 时间模块调试及问题a、调试方法:将芯片与单片机相连,软件输入指令后,观察是否在液晶上显示正确b、出现问题:液晶显示不正确c、解决方法:调试软件,检查相关线路6 个人小结实验心得 在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。如:工业控制、仪器仪表、电讯技术、汽车与节能、商用产品、家用电器等。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。通过单片机课程设计,不仅加深了对单片机

15、理论的理解,将理论很好的应用到实践当中去,而且学回了如何培养我们的创新精神,从而不断超越自己。整个设计过程中,我也遇到了不少问题,单片机最小系统不工作,后来才发现是晶振坏掉了之后的液晶也不显示,后来对照同学发现也是硬件有问题。后来花了很长时间又重新检查线路、调试程序,最终成功实现了功能。为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片,机结合传感器技术而开发设计了这一温度监控系统。文中传感器理论单片机实际应用有机结合,详细地讲述了利用热敏传感器探测环境温度的过程,以及实现热电转换的原理过程。本设计应用性强,系统可

16、以作为生物培养液温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统等等。课题主要任务是完成环境温度检测,利用单片机实现温度调节并通过计算机实施温度监控。设计后的系统具有操作方便,控制灵活等优点。成员签名:实验心得 在本次设计过程中,遇到过许多的问题。刚开始不知道怎么把电话线上的语音信号录制到语音芯片中也不知道怎么把语音芯片中的语音信号上传到电话线上,后来查阅很多相关资料后原来使用变压器耦合到电话线。但是还是不知道怎么耦合,再继续研究后才搞明白了。在电路中采用了模拟器件和数字器件所以需要+5V和+3V电源供电。在本次设计的过程中,我发现很多的问题,给我的感觉就是很难,很不顺手

17、,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路,还有资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。同时,通过本次设计,巩固了我们学习过的专业知识,也使我们把理论与实践从真正意义上相结合了起来;考验了我们借助互联网络搜集、查阅相关文献资料,和组织材料的综合能力;从中可以自我测验,认识到自己哪方面有欠缺、不足,以便于在日后的学习中得以改进、提高;通过使用电子电路设计软件Protel99se , 也让我们了解

18、到计算机辅助设计(CAD)的智能化,有利于提高工作效率,虽然在设计中遇见很多的问题,但通过查阅书刊和网上收集资料,逐步解决了遇见的问题,对设计中出现的比较生疏的芯片进行了收集和学习,对掌握新的知识能力有了进一步的提高,节省了电路的设计需要。 成员签名: 实验心得 这次的实验遇到了不少的困难,原本想做一个温度、湿度和时间的液晶显示,但是效果与预期的并不非常乐观,刚开始的硬件连接就有问题,导致后来的时间跟不上,因为单单硬件检测就花了我们好多的时间,程序上只作出温度的显示,原先预定的时间遇到了非常大的困难,我们的液晶是12864这型号的,一行只显示8位,一共4行,可我的年月日和当天的时间加起来有二十

19、多位,最后不得不放弃,这是一大遗憾,尽管如此,这次单片机的课程设计对今后的学习工作有很大的帮助。我觉得就我们在课堂上学到的这点知识还是极其有限的,更多的东西还靠我们自己去课下学习。老师只起到一个引导我们学习的作用,关键还是在于我们自己。我们不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。这次的实验教会了我很多,令我感触最深的是硬件的检测,在程序一样的情况下,我们的液晶不显示而别人的却能显示,可是光凭肉眼却又无法看出线路的问题,在这样的情况下,我们学会了如何用万用表来检测电路,这不仅仅是理论上的,更是从

20、实际操作上慢慢体验出来的,这对我们也未尝不是件好事,在老师的指导下终于检测出虚汗加焊,然后再调试软件。 组长签名7 参考文献 1 沈任元 吴勇 常用电子元器件简明手册 机械工业出版社 2000.42 宋彩利 孙友仓 吴宏岐 单片机原理与C51编程西安交通大学出版社 2008.63 郭天祥 51单片机C语言教程入门、开发、拓展全攻略 电子工业出版社 2010.54 彭伟 单片机C语言程序设计100例 电子工业出版社 2010.65 皮大能,南光群,刘金华 单片机课程设计指导书北京理工大学出版社 2010.76 王义军 单片机原理及应用习题与实验指导书 中国电力出版社 2006.77 马静 单片机

21、原理与应用实践教学 中国计量出版社 2004.118 学林单片机网9 XX百科 8 附件81 附件一 硬件电路图82 附件二 设计成品实物图83附件三 程序清单#include#define uchar unsigned char#define uint unsigned intsbit DQ=P22; /ds18b20与单片机连接口sbit RS=P35;sbit RW=P36;sbit EN=P34;sbit PSB=P37;unsigned char code str1=温度: ;unsigned char code str2= ; uchar data disdata5;uint tv

22、alue; /温度值uchar tflag; /温度正负标志/*lcd12864程序*/ void delay1ms(unsigned int ms) /延时1毫秒(不够精确的) unsigned int i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat); void ds1820wr(uchar wdata) /写数据/ unsigned char i=0; for (i=8; i0; i-) DQ = 0

23、; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata=1; read_temp() /读取温度值并转换/ uchar a,b; ds1820rst(); ds1820wr(0xcc); /跳过读序列号/ ds1820wr(0x44); /启动温度转换/ ds1820rst(); ds1820wr(0xcc); /跳过读序列号/ ds1820wr(0xbe); /读取温度/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0

24、; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625); /温度值扩大10倍,精确到1位小数 return(tvalue); /*/ void ds1820disp() /温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30; /百位数 disdata1=tvalue%1000/100+0x30; /十位数 disdata2=tvalue%100/10+0x30; /个位数 disdata3=tvalue%10+0x30 ; /小数位 if(tflag=0) flagdat=0x20; /正温度不显示

25、符号 else flagdat=0x2d; /负温度显示负号:- if(disdata0=0x30) disdata0=0x20; /如果百位为0,不显示 if(disdata1=0x30) disdata1=0x20; /如果百位为0,十位为0也不显示 wr_com(0x98); wr_dat(flagdat); /显示符号位 wr_com(0x99); wr_dat(disdata0); /显示百位 wr_com(0x9a); wr_dat(disdata1); /显示十位 wr_com(0x9b); wr_dat(disdata2); /显示个位 wr_com(0x9c); wr_dat(0x2e); /显示小数点 wr_com(0x9d); wr_dat(disdata3); /显示小数位 /*主程序*/ void main() init_play(); /初始化显示 while(1) read_temp(); /读取温度 ds1820disp(); /显示

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1