下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、温度万年历设计的目的和意义 1.二、电路设计方案1三、原理设计1四、方案结构图3五、温度万年历1602驱动及显示的详细设计6六、心得与总结14一、温度万年历设计的目的和意义随着社会的发展,信息量的不断提升以前对信息交换的要求提高,温度万年历的发展以及投入市场变得非常有必要。本设计是基于51单片机并模拟日常 所用的日历,而51系列单片机是各单片机中最为典型和最有代表性的一种。通过本次设计,学习和巩固了单片机指令编程的相关知识,熟悉单片机各部件的组成及其功能。本设计将制作一种基于单片机控制的带实时温度显示、具有定时功能的电 子万年历。传统的电子日历大都体积大,功耗大,显示不准确等特点。为了缩
2、小体积,减小功耗,使其变得小巧灵敏,本设计加入了时钟芯片DS1302,可对 时间进行准确记时,同时可设置定时时间,实现定时功能。另外本设计具有显 示实时温度的功能。传统的温度传感器系统大都采用放大、调理、A/D转换, 转换后的数字信号送入计算机处理,处理电路复杂、可靠性相对较差,占用计 算机的资源比较多。本设计将采用DS18B20 一线制数字温度传感器,可将温度 信号直接转换成数字信号送给微处理器,电路简单,成本低,实现了时间温度同时显示的效果。最后,温度和时间都将通过LCD1602液晶显示器进行显示。 测试表明系统达到了设计要求的各项功能,各部分工作正常。二、电路设计方案采用AT89S52作
3、为主控制系统;直接采用单片机定时计数器提供秒信号;LCD 液晶显示屏作为显示。二、原理设计1. 基本原理:本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压 工作;时钟电路直接采用单片机定时计数器提供秒信号温度的采集由DS18B20构成;显示部份由LCD液晶显示屏显示。同时还添加了提醒功能,通过蜂鸣器实现。Lcd1602 液 晶屏显示模2. 总体框图STC89C52晶振振荡模块主控制模块键盘模块图13. 单元电路设计单片机主控制模块的设计AT89S52单片机为40引脚双列直插芯片,有四个I/O 口 P0,P1,P2,P3, MCS-51单片机共 有4个8位的I/
4、O 口( P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片 机的最小系统如下图2所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。DS18B20 性能独特的单线接口仅需一个端口引脚进行通信简单的多点分布应用无需外部器件可通过数据线供电零待机功耗测温范围-55+125 C,以0.5 C递增可编程的分辨率为912位,对应的可分辨温度分别为0.5 C、0.
5、25 C、0.125 C 和 0.0625 C温度数字量转换时间 200ms , 12位分辨率时最多在750ms内把温度转换为数 字应用包括温度控制、工业系统、消费品、温度计和任何热感测系统负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作GND :地DQ :单线运用的数据输入/输出引脚VD :可选的电源引脚4. 元件列表元件列表器件数量光汇51单片机开发板1杜邦线若干DS18B201LCD1602液晶屏1四、方案结构图此方案由于只用到51单片机芯片,因此各个功能都是由编程来实现大体程序流程框图如下初始化写日期、吋间显不子程序幵关扌鐸寸子程序日期修改子程序时间修改子程序显不结果返
6、回按键调整结构图:时钟调整一时钟调整二Protues电路图(部分):-cTRCla-PDJ1MDD FD.mbl PD2MD2 卩口 3" PD.WD4 PDMD? PD6MD6 POmDTP7IWP2.1JWS P22ft1D P2M11 PZftft12 验轴1 P2£MU 咋丁胆传P31WX0 Pl.lffXD pgjiNTO P3J1NT1P14/TUP3ST£ P3&W P3J/RDLCD1 -LP.il ShL'2016-02-2?Fri00 00 23 2C站吕岀40 S 口Lwcigg > > >s: q: hi
7、口o 口 anoao型型爼刃筑历t . -V 五-1LJZJ1”J&血-1L-.温度万年历整体电路图LCD1LO1BL'ITD"-RBGPACKa -<TEI&-2916-02-29 Fri 004412Ca饵吏超乱吕占吕呂詐曽百.-FF-in !5 乙D 6n L B 1jn:t'"时钟调整按键图LCD1-LltHfiL'2016-02-29 Fri 0 四 4412C时钟调整LCM显示图五、温度万年历1602驱动及显示的详细设计驱动部分的代码:头文件如下:#ifndef _1602_H_#define _1602_H_voi
8、d RdBusy(void);void WrComma nd(char comma nd);void WrData(char wrdata);#en dif1602驱动源代码如下:/*LCM1602驱动程序8线间接控制方式晶体频率12MHz*/*1602LCD各引脚接口说明VSS 电源地VDD 电源正极VL液晶显示偏压RS数据/命令选择读写选R/WRW*LCM1602驱动程序8线间接控制方式晶体频率12MHz*#in elude <reg51.h>#in elude vintrin s.h>/*1602LCD各引脚接口说明vss 电源地VDD 电源正极VL液晶显示偏压RS数据
9、/命令选择R/W RW 读写选择E 使能信号D0数据背光源正极D1数据背光源负极*/*1602接口定义*/#defi ne LCMPOsbit RSP2A5;0,comma nd; 1,datajkhjholkhkksbit RW =P2A6;O,write; 1,readsbit EP2A7;/下降沿有效/*常数定义*/#defi ne CMD 0RS=O,命令#defi ne DAT 1RS=1,数据/模块忙闲判断void RdBusy(void)char flag=0xff;doLCM=0xff;RS=CMD;RW=1;E=1;_n op_();_n op_();_nop_();/这三句
10、很重要flag=LCM;E=0;flag &=0x80;while(flag);/写命令void WrComma nd(char comma nd)LCM=comma nd;RS=CMD;RW=0;E=1;E=0;RW=1;RdBusy();/等待LCM完成本次操作/写数据void WrData(char wrdata)LCM=wrdata;RS=DAT;RW=0;E=1;E=0;RW=1;RdBusy();/等待LCM完成本次操作/*E使能信号D0数据背光源正极D1数据背光源负极*/显示头文件#ifndef_DISPLAY_H_#defi ne_DISPLAY_H_#defi neu
11、char un sig ned charvoid delayx5ms(i ntden t);void LemI nit(void);void ClrL in e(uehar line );void WritelL in e(uehar lin e,uchar* buf);void WrData2Addr(uchar addr,uehar dat);void disall();void offall();#en dif显示C源代码:#in elude <reg51.h>#i nclude "1602.h"#defi neLCMP0#defi neuehar un
12、sig ned eharexter n uchar flag;exter n uchar year,m on th,date,day,hour,m inu ,sec;extern uehar Dispbuf016;extern uehar Dispbuf116;extern code uehar Num2Asc16;extern code uchar WEEK21; exter n uchar slnum;/延迟子程序,基数5msvoid delayx5ms(i nt dent)int tmp;for(; den t>0; dent-)tmp=0x230; while(tmp-)c on
13、 ti nue;/模块初始化void Lcm In it(void)LCM=0;delayx5ms(40);/ 延迟 200msWrComma nd(0x38);/8bit接口,两行显示,5X7点阵delayx5ms(2);/延迟10msWrComma nd(0x38);/同上,该指令要写两次delayx5ms(1);/延迟5msWrComma nd(0x06);/地址加一,字符不移动WrComma nd(OxOc);烁WrComma nd(OxO1);/指定行清屏子程序void ClrL in e(uchar line )un sig ned char i=0;WrComma nd(0x80
14、+li ne);for(;i<16;i+)WrData('');/开显示,光标不显示,光标不闪/清屏/指向擦除行的首字符位void Write1L in e(uchar lin e,uchar* buf) uchar addr=0,i;if(li ne=0)addr=0x80;elseaddr=OxcO;WrComma nd(addr);for(i=0;i<16;i+)WrData(*buf+);void WrData2Addr(uchar addr,uchar dat)WrComma nd(addr);WrData(dat);void disall()Dispbu
15、f03=Num2Ascyear/10;Dispbuf04=Num2Ascyear%10;DispbufO6=Num2Ascmo nth/10;DispbufO7=Num2Ascmo nth%10;Dispbuf09=Num2Ascdate/10;Dispbuf010=Num2Ascdate%10;DispbufO12=WEEKday*3;Dispbuf11=Num2Aschour/10;Dispbuf12=Num2Aschour%10;Dispbuf14=Num2Ascmi nu/10;Dispbuf15=Num2Ascmi nu%10;Dispbuf17=Num2Ascsec/10;Disp
16、buf18=Num2Ascsec%10;Write1Li ne(O,&DispbufOO);Write1Li ne(1,&Dispbuf10);void offall()switch(s1 nu m)case 1:Dispbuf17=''break;case 2:Dispbuf15='' break;case 3:Dispbuf11=''Dispbuf12='' break;case 4:Dispbuf012=''Dispbuf013=''DispbufO14=''
17、break;case 5:Dispbuf09=''DispbufO1O=''break;case 6:DispbufO 6=''break;case 7:DispbufO4=''break;default :*Dispbuf0 =" ”;*Dispbuf1 =""WritelLi ne(O,&DispbufOO);WritelLi ne(1,&Dispbuf10);六、心得与总结经过万年历的设计,让我学到了很多,让我认识到了学习基础知识的重要性,当设计完整的系统时,要考虑到硬件和软件两者的结合,有时硬件的不足,我们可以用软件程序来弥补,从而节约硬件成本,在设计软件程序时要模 块化,可以提高程序的可读性。有一些灵活的技巧就需要我们认真的阅读元件 的数据手册,从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 极简风商用插画课程设计
- 课程设计小组成员互评
- 边坡工程课程设计滑坡
- 柴油过滤器课程设计
- 跑步机系统课程设计
- 认识大小课程设计意图
- 边坡施工安全管理专项方案
- 诗歌类课程设计
- 企业员工满意度学情分析方案
- 数据线的课程设计
- 神经外科学:颅内肿瘤
- 高一年级政治上学期期中试题(人教含答案)
- 结构性心脏病介入治疗及并发症的临床处理精编ppt
- 六年级上册心理健康教育课件-战胜挫折走向成功 全国通用(共19张PPT)
- 小学语文人教三年级上册(统编)第五单元-搭船的鸟学历案
- 苏教版三年级数学上册《认识千克》教案(南通公开课)
- 随州市炎帝神农故里风景区修建性详细规划
- 日、韩企业人力资源管理特点及启示
- 珍爱生命和法同行
- 一例消化道出血合并高血压糖尿病患者的护理查房课件
- 口腔技术操作规范全本
评论
0/150
提交评论