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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机数字温度计 课程设计说明书.docx

1、单片机数字温度计 课程设计说明书1系统的总体设计1.1 设计背景 温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要意义。在单片机的应用中,一个很重要的应用就是对温度进行测量。测量温度的关键是温度传感器,采用智能温度传感器以实现温度数字化,既能以数字形式直接输出被测温度值,具有测量误差小,分辨率高,抗干扰能力强,也能远距离传输数据,带串行总线接口等优点,温度的数字显示在LCD1602上。单片机,温度传感器与LCD1602等电子器件的互联,可以研制和开发具有高性价比的新一代测温系统基于单

2、片机的数字温度计。1.2 电路的总体工作原理温度控制系统采用AT89C51八位机作为微处理单元进行控制。系统框图如图1.1:图1-1 系统框图根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。选用数字温度传感器DS18B20,省却了采样保持电路、运放、数模转换电路以及进行长距离传输时的串并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器为点阵

3、字符LCD,1602液晶模块。检测范围-50摄氏度到110摄氏度。1.2.1 采用数字单片智能温度传感器DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。由于DS18B20将温度传感器、信号放大调理、A/D转换、接口全部集成

4、于一芯片,与单片机连接简单、方便,所以温度传感器采用DS18B20。图1-2 DS18B20温度传感器1.2.2 采用1602LCD液晶屏采用LCD液晶屏进行显示。LCD液晶显示器是一种低压、微功耗的显示器件,只要23伏就可以工作,工作电流仅为几微安,是任何显示器无法比拟的,同时可以显示大量信息,除数字外,还可以显示文字、曲线,比传统的数码LED显示器显示的界面有了质的提高。在仪表和低功耗应用系统中得到了广泛的应用。优点为:1 显示质量高,由于液晶显示器的每一个点收到信号后就一直保持那种色彩和亮度恒定发光,因此液晶显示器的画质高而且不会闪烁。2 数字式接口,液晶显示器都是数字式的,和单片机的接

5、口简单操作也很方便。3 功率消耗小,相比而言液晶显示器的主要功耗在内部电极和驱动IC上,因而耗电量比其他器件要小很多。图1-3 1602液晶模块2系统的硬件设计2.1 单片机最小系统的设计图2-1 AT89C51单片机最小系统AT89C51单片机如图2.1所示,其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,P3口具有第二功能为系统提供一些控制信号。时钟电路用于产生MCS-51单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。MCS-51内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片的

6、引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。电路中的微调电容通常选择为30pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率为12MHz。MCS-51的复位采用最简单的外部按键复位电路。按键自动复位是通过外部复位电路的来实现的.我们选用时钟频率为12MHz,C1取47f。2.2 温度传感电路设计2.2.1温度传感器DS18B20硬件上,DS18B20的VCC接外部电源,GND接地,I/O与单片机的I/O线相连。 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度

7、传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。2.2.2温度传感器DS18B20温度转换由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。根据DS18B20 的通讯协议,主机控制DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20 进行复位,复位成功后发送一条ROM 指令,最后发送RAM 指令,这样才能对DS18B20 进行预定的操作。复位要求主CPU 将数据线下拉500 微秒,然后释放,DS18B20 收到信号后

8、等待1660 微秒左右,后发出60240 微秒的存在低脉冲,主CPU 收到此信号表示复位成功。DS18B20 中的温度传感器可完成对温度的测量,以12 位转化为例:用16 位符号扩展的二进制补码读数形式提供,以0.0625/LSB 形式表达,其中S 为符号位。表2 DS18B20温度值格式表高8位SSSSS262524低8位232221202-12-22-32-4这是12 位转化后得到的12 位数据,存储在18B20 的两个8 比特的RAM 中。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。

9、表3是一部分温度值对应的二进制温度数据。表3一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 11

10、11FE6FH-551111 1100 1001 0000FC90H2.3 显示电路的设计2.3.1 1602LCD主要技术参数及引脚说明1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm液晶显示器是一种将液晶显示器件,连接器件,集成电路,PCB线路板,背光源,结构器件装配在一起的组件。根据显示内容和方式的不同可以分为,数显LCD,点阵字符LCD,点阵图形LCD在此设计中我们采用点阵字符LCD,这里采用常用的2行16个字的1602液晶模块。1602LCD采用标准的14脚接

11、口,各引脚接口说明如表4所示:表4 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据8D1数据1602采用标准的14脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读

12、写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。2.3.2 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表5所示:表5控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或

13、字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电

14、平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块

15、不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如下:表6 基本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无3软件设计思想及流程3.1系统主程序图3-1 主程序流程图3.2读温度子程序图3-2 读温度子程序流程3.3转换温度子程序图3-3 温度转换子程序流程图3.4计算温度子程序 图3-4 计算温度子程序流程图 图3-5

16、显示温度子程序4 Protuse仿真图图4-1 数字温度计连线图图4-2数字温度计仿真图5全文总结经过一周的时间的单片机课程设计,查阅了大量的关于传感器、单片机及其接口电路、以及控制方面的理论。经过了一番特殊的体验后,经历了失败的痛苦,也尝到了成功的喜悦。第一次靠用所学的专业知识来解决问题。检查了自己的知识水平,使我对自己有一个全新的认识。我们在单片机单片机理论课程的基础上,通过对此次课程设计的学习,使我们在软件编程、调试、相关仪器设备和相关软件的使用技能的方面得到了较全面的锻炼提高,增进对单片机的感性认识,加深对单片机理论方面的理解;加深了单片机内部功能结构的应用;使我们掌握单片机的内部功能

17、模块的应用,掌握单片机接口功能和扩展应用,掌握一些特殊器件及常用器件的使用方法,学习编制综合程序;了解和掌握单片机应用系统的软硬件设计方法及调试过程。强化了单片机应用电路的设计与分析能力,提高了我们在单片机应用方面的实践技能,充分发挥我们的主观能动性,激发我们的学习兴趣,培养我们主动利用单片机解决工程实际问题的意识。这些培养和锻炼对于我们以后走向工作岗位来说,也是很重要的。总之,这一次的课程设计使我们学到了许多东西,我从中获益匪浅。6参考文献1吴亦锋,陈德为.单片机原理与接口技术.北京:电子工业出版社,2010.112周润景.单片机电路设计、分析与制作.北京:机械工业出版社,2010.53蔡振

18、江.单片机原理及应用.北京;机械工业出版社,2007.14高洪志.MCS-51单片机原理及应用技术.北京:人民邮电出版社,2009.45张精武.单片机系统的PROTEUS设计与仿真. 北京:电子工业出版社,2007.46胡汉才.单片机原理及其接口技术.(第2版).北京:清华大学出版社,2004附录:源程序代码 TEMP_ZH EQU 26H ;实测温度值存放单元 TEMPL EQU 27H TEMPH EQU 28H TEMPHC EQU 29H ;正、负温度值标记 TEMPLC EQU 2AH TEMPFC EQU 2BH LCD_X EQU 2FH ;LCD 字符显示位置 LCD_RS E

19、QU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号 LCD_EN EQU P2.2 ;LCD 允许信号 DQ EQU P3.3 ;DS18B20数据信号 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60H MOV A,#00H MOV R0,#20H ;将20H2FH 单元清零 MOV R1,#10HCLEAR: MOV R0,A INC R0 DJNZ R1,CLEAR LCALL SET_LCDSTART: LCALL RST ;调用18B20复位子程序 LCALL MENU_OK ;DS1820存在,调用

20、显示正确信息子程序 LCALL TEMP_BJ ;显示温度标记 JMP START2START1: SJMP $START2: LCALL RST ;调用DS18B20复位子程序 MOV A,#0CCH ;跳过ROM匹配命令 LCALL WRITE MOV A,#44H ;温度转换命令 LCALL WRITE LCALL RST MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE MOV A,#0BEH ;读温度命令 LCALL WRITE LCALL READ ;调用DS18B20数据读取操作子程序 LCALL CONVTEMP ;调用温度数据BCD 码处理子程序 LCALL

21、DISPBCD ;调用温度数据显示子程序 LCALL CONV ;调用LCD显示处理子程序 SJMP START2 ;循环;* 显示温度标记子程序 *TEMP_BJ: MOV A,#0CBH LCALL WCOM MOV DPTR,#BJ1 ;指针指到显示消息 MOV R1,#0 MOV R0,#2BBJJ1: MOV A,R1 MOVC A,A+DPTR LCALL WDATA INC R1 DJNZ R0,BBJJ1 RETBJ1: DB 00H,C;* 显示正确信息子程序 *MENU_OK: MOV DPTR,#M_OK1 ;指针指到显示消息 MOV A,#1 ;显示在第一行 LCALL

22、 LCD_PRINT MOV DPTR,#M_OK2 ;指针指到显示消息 MOV A,#2 ;显示在第一行 LCALL LCD_PRINT RETM_OK1: DB MADE BY HAO ,0M_OK2: DB TEMP: ,0;*DS18B20复位子程序 *RST: SETB DQ NOP CLR DQ; MOV R0,#6BH ;主机发出延时复位低脉冲 MOV R1,#04HTSR1: DJNZ R0,$ MOV R0,#6BH DJNZ R1,TSR1 SETB DQ ;拉高数据线 NOP NOP NOP MOV R0,#32HTSR5: MOV R0,#06BHTSR6: DJNZ

23、R0,$ ; 时序要求延时一段时间TSR7: SETB DQ RET;* 将自定义字符写入LCD的CGRAM中 *STORE_DATA: MOV A,#40H LCALL WCOM MOV R2,#08H MOV DPTR,#D_DATA MOV R3,#00HS_DATA: MOV A,R3 MOVC A,A+DPTR LCALL WDATA ;写入数据 INC R3 DJNZ R2,S_DATA RETD_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H;* DS18B20数据写入操作子程序 *WRITE: MOV R2,#8 ;一共8位数据 CLR CWR

24、1: CLR DQ ;开始写入DS18B20总线要处于复位(低)状态 MOV R3,#07 DJNZ R3,$ ;总线复位保持16微妙以上 RRC A ;把一个字节DATA 分成8个BIT环移给C MOV DQ,C ;写入一位 MOV R3,#3CH DJNZ R3,$ ;等待100微妙 SETB DQ ;重新释放总线 NOP DJNZ R2,WR1 ;写入下一位 SETB DQ RET;* DS18B20数据读取操作子程序 *READ: MOV R4,#2 ;将温度低位、高位、从DS18B20中读出 MOV R1,#TEMPL ;存入25H、26H、单元RE00: MOV R2,#8RE01

25、: CLR CY SETB DQ NOP NOP CLR DQ ;读前总线保持为低 NOP NOP NOP SETB DQ ;开始读总线释放 MOV R3,#09 ;延时18微妙 DJNZ R3,$ MOV C,DQ ;从DS18B20总线读得一位 MOV R3,#3CH DJNZ R3,$ ;等待100微妙 RRC A ;把读得的位值环移给A DJNZ R2,RE01 ;读下一位 MOV R1,A INC R1 DJNZ R4,RE00 RET;* 温度值 BCD 码处理子程序 *CONVTEMP: MOV A,TEMPH ;判温度是否零下 ANL A,#08H JZ TEMPC1 ;温度零

26、上转 CLR C MOV A,TEMPL ;二进制数求补(双字节) CPL A ;取反加1 ADD A,#01H MOV TEMPL,A MOV A,TEMPH CPL A ADDC A,#00H MOV TEMPH,A MOV TEMPHC,#0BH ;负温度标志 MOV TEMPFC,#0BH SJMP TEMPC11TEMPC1: MOV TEMPHC,#0AH ;正温度标志 MOV TEMPFC,#0AHTEMPC11: MOV A,TEMPHC SWAP A MOV TEMPHC,A MOV A,TEMPL ANL A,#0FH ;乘0.0625 MOV DPTR,#TEMPDOTT

27、AB MOVC A,A+DPTR MOV TEMPLC,A ;TEMPLC LOW=小数部分 BCD MOV A,TEMPL ;整数部分 ANL A,#0F0H ;取出高四位 SWAP A MOV TEMPL,A MOV A,TEMPH ;取出低四位 ANL A,#0FH SWAP A ORL A,TEMPL ;重新组合 MOV TEMP_ZH,A LCALL HEX2BCD1 MOV TEMPL,A ANL A,#0F0H SWAP A ORL A,TEMPHC ;TEMPHC LOW = 十位数 BCD MOV TEMPHC,A MOV A,TEMPL ANL A,#0FH SWAP A

28、;TEMPLC HI = 个位数 BCD ORL A,TEMPLC MOV TEMPLC,A MOV A,R4 JZ TEMPC12 ANL A,#0FH SWAP A MOV R4,A MOV A,TEMPHC ;TEMPHC HI = 百位数 BCD ANL A,#0FH ORL A,R4 MOV TEMPHC,ATEMPC12: RET;* 二-十进制转换子程序 *HEX2BCD1: MOV B,#100 DIV AB MOV R4,A MOV A,#10 XCH A,B DIV AB SWAP A ORL A,B RETTEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H ; 小数部分码表DB 05H,05H,

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

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