




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计说明书 题 目: 温度检测系统设计 系 部: 专 业: 班 级: 学生姓名: 学 号: 指导教师: 年 月 日目 录1设计任务与要求11.1设计任务11.2设计要求12设计方案13硬件电路设计13.1 最小系统电路13.2 温度采集模块33.3 显示模块43.4 硬件总体仿真图74主要参数计算与分析74.1DS18B20的主要参数74.2STC89C52RC的主要参数84.3LCD1602的主要参数85软件设计95.1主程序流程图95.2温度测量系统各子模块96心得体会127参考文献128附录128.1实物图128.2元件清单138.3C语言程序141 设计任务与要求1.1 设计
2、任务设计一个温度检测系统。1.2 设计要求(1)用温度传感器18B20测环境温度,用LCD1602显示测量结果。(2)用PROTEUS仿真。(3)焊接电路板并调试运行。2 设计方案总体设计方案采用STC89C52RC单片机作控制器,温度传感器选用DS18B20来设计数字温度计。主控制器由单片机STC89C52RC实现,测温电路由温度传感器DS18B20实现,显示电路由LCD1602液晶显示器直读显示。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。该设计控制器使用单片机STC89C52RC,测
3、温传感器使用DS18B20,实现温度显示,能准确达到以上要求。如图一所示。图一 总体设计方案3 硬件电路设计 3.1 最小系统电路单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统,对于51系列单片机来说,最小系统包括:单片机、时钟电路、复位电路。如图二所示:图二 最小系统电路3.1.1 时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率
4、可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。如图三所示:图三 时钟电路3.1.2 复位及复位电路复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。RST引脚是复位信号的输入端。复
5、位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。复位电路如图四所示:图四 复位电路3.2 温度采集模块3.2.1 温度传感器的选择DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20的读写时序和测温原理与DS1
6、820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度
7、寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。3.2.2 DS18B20管脚功能及接线方法管脚功能:GND为电源地、DQ为数字信号输入/输出端、VDD为外接供电电源输入端(在寄生电源接线方式时接地)接线方法:面对着平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!同时,接反也是导致该传感器总是显示85的原因。实际操作中将正负反接,传感器立即发热,液晶屏不能显示读数,正负接好后显示85。另外,如果使用51单片机的话,那么中间那个引脚必须接上4.7K10K的上拉电阻,否则,由于高电平不能正常输入/输出,要么通电后立即显示85,要么用几
8、个月后温度在85与正常值上乱跳。DS18B20管脚如图五所示。图五 DS18B20管脚DS18B20与单片机的连接电路,如图六所示。图六 DS18B20与单片机的连接电路3.3 显示模块3.3.1 LCD的选择 LCD是一种工业型字符液晶,它能够显示32个字符(16列×2行),工作电压为3.3V或5V,对比度可自行调节,LCD的内部内部含有复位电路,用来提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。由于LCD1602功耗低、体积小、显示多样,常用在微型仪表和低功耗应用中。市面上字符液晶绝大多数是基于HD44780液晶芯片,LCD1602控制原理也基于H
9、D44780。LCD1602采用标准14脚(无背光)或16脚(有背光)接口。3.3.2 LCD1602显示器的管脚功能 LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表一所示。表一 LCD1602显示器引脚说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 图七 LCD1602管脚图第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3
10、脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。液晶与单片机的连接
11、电路如图八所示。图八 液晶与单片机的连接电路 3.4 硬件总体仿真图本设计大体可分为三个部分,即CPU处理模块、温度采集模块、显示模块。CPU处理模块采用单片机STC89C52RC,包括时钟电路、复位电路;温度采集模块采用温度传感器DS18B20进行温度采集,通过P3.6管脚发送到CPU进行处理;显示模块采用16管脚的LCD1602,数据通过单片机的P2口传输到LCD1602,最终LCD1602将温度显示出来。如图九所示。图九 硬件总体仿真图4 主要参数计算与分析4.1 DS18B20的主要参数(1) 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器
12、与DS18B20的双向通讯。(2) 测温范围 -55+125,固有测温误差(注意,不是分辨率,这里之前是错误的)1。(3) 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。(4) 工作电源: 3.05.5V/DC (可以数据线寄生电源)(5) 在使用中不需要任何外围元件(6) 测量结果以912位数字量方式串行传送(7) 不锈钢保护管直径 6(8) 适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温(9) 标准安装螺纹 M10X1, M12X1.5, G1/2&quo
13、t;任选(10) PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。4.2 STC89C52RC的主要参数 (1) 增强型8051 单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择,指令代码完全兼容传统8051.2?(2) 工作电压:5.5V3.3V(5V 单片机)/3.8V2.0V(3V 单片机)(3) 工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz(4) 用户应用程序空间为8K 字节(5) 片上集成512 字节RAM(6) 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是
14、漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 (7) ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片(8) 具有EEPROM 功能(9)具有看门狗功能(10) 共3 个16 位定时器/计数器。即定时器T0、T1、T2(11) 外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒(12) 通用异步串行口(UART),还可用定时器软件实现多个UART(13) 工作温度范围:-40+85(
15、工业级)/075(商业级)4.3 LCD1602的主要参数显示容量:16×2个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm5 软件设计5.1 主程序流程图图十 主程序流程图5.2 温度测量系统各子模块5.2.1 DS18B20读取温度部分读温度值模块需要调用4个子程序,分别为:DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作 l DS18B20写字节子程序:对DS18B20发出命令 l DS18B20读字节子程序:读取DS18B20存储器的数据 l
16、延时子程序:对DS18B20操作时的时序控制读温度值模块流程,如图十一所示:图十一 读温度值模块流程DS18B20初始化子程序流程图,如图十二所示:图十二 DS18B20初始化子程序流程本系统中液晶显示器初始化程序流程,如图十三所示:图十三 液晶显示器初始化程序流程6 心得体会经过两周时间的努力,基于单片机的简易温度系统设计基本完成。但设计中的不足之处仍然存在。这次设计是我第一次设计电路,并用Proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil C51软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的
17、设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的简易温度系统设计使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量温度准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易温度测量的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了STC89C52RC单片机芯片,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很
18、多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。7 参考文献1 单片机原理及应用.张兰红,邹华主编.机械工业出版社,2016.2 数字电子技术基础(第5版).阎石编.高等教育出版社,2006.3 模拟电子技术基础(第五版).童诗白编.高等教育出版社,2006.4 电路(第5版).邱关源编.高等教育出版社,2006.5 电子技术课程设计指导.彭介华编.高等教育出版社,2005年出版. 6 电子技术基础实验电子电路实验、设计、
19、仿真.陈大钦主编. 高等教育出版社,2002年出版.8 附录8.1 实物图8.2 元件清单温度检测单机用元器件明细表名称封装型号参数数量瓷片电容直插30PF2石英晶体直插11.0592MHZ1电阻直插1/4W10K1电解电容直插22UF/16V1CPU双列直插STC89C52RCHD1CPU座双列直插DIP-401电阻直插1/4W4.7K1温度传感器直插DS18B201电位器直插3296W-10310K1液晶显示器LCD160211P杜邦线彩色母对母两头插好杜邦头孔对孔40根一排单根长度20cm30针排针直插脚距2.54高111X40单排插针30线最小系统板1洞洞板9X7CM单面18.3 C语
20、言程序#include "reg51.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned intuchar code table1 =" " /欢迎显示 uchar code table2 =" "/欢迎显示uchar code str1 =" Temperature " uchar code str2 =" "/*管脚定义*sbit lcd_rs = P30; /液晶数据命令选择端sb
21、it lcd_en = P31; /液晶使能sbit DQ = P36; /液晶使能/*参数定义*uint tvalue;/温度值uchar tflag;/温度正负标志uchar data disdata5;/*子函数定义*void delay(uint z); /delay延时子程序void init_lcd(); /LCD1602初始化函数void write_com(uchar com); /LCD1602写指令函数void write_data(uchar date); /LCD1602写数据函数void lcd1602_display(uchar *q,uchar *p);/LCD1
22、602显示函数void welcome_1(); /LCD1602显示欢迎函数1void delay_DS18B20(uint i); /delay_DS18B20函数void Init_DS18B20_display(); /DS18B20初始化显示void Init_DS18B20(); /DS18B20初始化uchar ReadOneByte(); /DS18B20读一字节void WriteOneByte(uchar dat); /DS18B20写一字节Read_Temperature(); /DS18B20读取温度值并转换void DS18B20_display(); /DS18B2
23、0温度显示/*主函数*void main()welcome_1();Init_DS18B20_display();while(1)Read_Temperature();DS18B20_display(); /*delay延时子程序*void delay(uint z)uint x,y;for(x=0;x<z;x+)for(y=0;y<114;y+);/*LCD1602初始化函数*void init_lcd()write_com(0x38); /设置16*2显示,5*7点阵,8位数据接口write_com(0x08); /写一个字符后地址指针加1 write_com(0x01); /
24、显示清零,数据指针清零write_com(0x06); /写一个字符后地址指针加1write_com(0x0c); /关显示,光标不显示不闪烁/*LCD1602写指令函数*void write_com(uchar com)delay(5);lcd_rs = 0; / 选择写指令lcd_en = 0; / 将使能端置0P2 = com; / 将要写的命令送到数据总线上delay(5); / 延时5ms,待数据稳定lcd_en = 1;/ 由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5); / 延时5ms,待数据稳定lcd_en = 0; / 将使能端置0以完成脉冲/*LCD
25、1602写数据函数*void write_data(uchar date)delay(5);lcd_rs = 1; / 选择写数据lcd_en = 0; / 将使能端置0P2 = date; / 将要写的数据送到数据总线上delay(5); / 延时5ms,待数据稳定lcd_en = 1; / 由于初始化已将lcd_en置为0,使能端给一个高脉冲,delay(5); / 延时5ms,待数据稳定lcd_en = 0; / 将使能端置0以完成脉冲/*LCD1602显示函数*void lcd1602_display(uchar *q,uchar *p)write_com(0x80); / 现将数据指
26、针定位到第一行第一个字处while(*q!='0')write_data(*q);q+;delay(1);write_com(0xc0); / 现将数据指针定位到第二行第一个字处while(*p!='0')write_data(*p);p+;delay(1);/*LCD1602显示欢迎函数1*void welcome_1()init_lcd();lcd1602_display(table1,table2);delay(300); /*DS18B20初始化显示*void Init_DS18B20_display()init_lcd();lcd1602_displa
27、y(str1,str2); /*LCD1602显示函数*void delay_DS18B20(uint i)while(i-);/*DS18B20初始化*void Init_DS18B20()DQ = 1; /DQ复位delay_DS18B20(4); /延时DQ = 0; /DQ拉低delay_DS18B20(100); DQ = 1; /拉高delay_DS18B20(40);/*DS18B20读一字节*uchar ReadOneByte()uchar i,dat = 0;for(i=8;i>0;i-)DQ = 0;/给脉冲信号dat>>=1;DQ = 1; /给脉冲信号
28、if(DQ) dat|=0x80;delay_DS18B20(10);return (dat);/*DS18B20写一字节*void WriteOneByte(uchar dat)uchar i;for(i=8;i>0;i-)DQ = 0;DQ = dat&0x01;delay_DS18B20(10);DQ = 1;dat>>=1;/*DS18B20读取温度值并转换*Read_Temperature() uchar a,b; Init_DS18B20(); WriteOneByte(0xcc); /跳过读序列号 WriteOneByte(0x44); /启动温度转换 Init_DS18B2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工个人工作总结(合集15篇)
- 2025反假货币考试题库及答案
- 名校集团管理办法
- 员工学习管理办法
- 商业安全管理办法
- 商会社会管理办法
- 商场店员管理办法
- 商户星级管理办法
- 啤酒储存管理办法
- 器材检验管理办法
- 神昏中医护理常规
- 现代家庭教育方法
- 肺炎患者的护理
- 站桩教学课件
- 2025年公务员考试时事政治模拟题附答案详解(模拟题)
- 2025年江苏省事业单位招聘考试教师招聘语文专业知识试卷(中学语文教师)
- 住院医师规范化培训教学病例讨论实施规范
- 2025-2030中国半导体产业链市场运行态势及前景展望与投资风险评估
- 2000-2015年考研英语一真题及详细解析
- 开关柜局部放电检测技术课件
- 联合国国际货物销售合同公约(中英文对照)
评论
0/150
提交评论