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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第3组 06103班 傅兰涛Word格式.docx

1、DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分率。由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符

2、号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。 DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节内容作比较。若TH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗

3、余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在-55所

4、对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍关闭就重复上述过程,直到温度寄存器值大致被测温度值。硬件介绍系统框图原理图LCD液晶模块设计:4*4键盘模块设计:DS18B20温度采集模块设计:软件设计流程图如下:源程序及程序注释;-KEYBOARD-HOR_DATA EQU 08H ;PORTD

5、行VER_DATA EQU 06H ;PORTB 列HOR_TRIS EQU 88H ;TRISDVER_TRIS EQU 86H ;TRISBFSR EQU 04HPCL EQU 02HKEY EQU 20HDATA1 EQU 21HDATA2 EQU 22HCHARCOUNT EQU 23HTABLE EQU 40HSTATUS EQU 03HZ EQU 2 COMPARE EQU 50H-LCD-LCD_DATA EQU 08H ;PORTDLCD_DATA_TRIS EQU 88H ;LCD_CTRL EQU 09H ;PORTELCD_CTRL_TRIS EQU 89H ;TRISE

6、ADCON1 EQU 9FHLCD_E EQU 1LCD_RS EQU 0TMR0 EQU 01HTMR0B EQU D176INTCON EQU 0BHOPTION_REG EQU 81H-18B20-PORTA EQU 5HTRISA EQU 85HTEMP EQU 24HTEMP1 EQU 25HTEMP2 EQU 26HCOUNT EQU 27HCOUNT1 EQU 28HC EQU 0INDF EQU 00HPP EQU 29HKEYDATA EQU 2AHPLUS1 EQU 71HPLUS2 EQU 72HWARNHH EQU 2BHWARNHL EQU 2CHWARNLH EQU

7、 2DHWARNLL EQU 2EHBIAOZHI EQU 2FH-WARNING-PORTC EQU 7HTRISC EQU 87HCOUNT2 EQU 31H- ORG 0X00 NOP GOTO MAIN-显示WARNING MAX:-WARNHTABLE MOVF CHARCOUNT,w ADDWF PCL,1 RETLW WARNIG MXRETLW :-显示WARNING MIN-WARNLTABLE -显示WELCOME TO USE-WELCOMETABLE ;显示WELCOME USEELCOTUS-显示TEMPERATURE:TEMPTABLE ;TEMPERATURE:P

8、-显示MAX TEMP-MAXTABLE -显示MIN TEMP-MINTABLE -显示CHECK:CHECKTABLE ;BDF-翻译程序-TRANSLATELCD0 ;123456789-显示AVERAGE TEMP-AVETABLE V-显示GOODBYE-ENDTABLE Y-主函数- MAIN CALL LCDINTI MOVLW 0X0C ;开显示,关光标 CALL LCDPUTCMD CALL LCDCLAR MOVLW 0X01 ;右移1位显示 CALL LCDDDRAM CALL DISPWELCOME CALL DELAY250MS MOVLW 0X00 MOVWF PP

9、 MOVWF BIAOZHI CALL KEY1 CALL CHECKCHECK ;报警温度输入程序 BANKSEL TRISA CLRF TRISC MOVLW 01H MOVWF OPTION_REG MOVLW 06H MOVWF ADCON1 ;将A,E端口设置成普通I/O端口 BANKSEL PORTA MOVLW 00H ;关中断 MOVWF INTCON CALL DISPTEMP MOVLW 0XC6 ;换行再移六位 GOTO LOOP ;温度检测程序-在RAM中建立位置码位-KEY1 MOVLW 0DBH ; 0 MOVWF 40H MOVLW 077H ; 1 MOVWF

10、41H MOVLW 07BH ; 2 MOVWF 42H MOVLW 07DH ; 3 MOVWF 43H MOVLW 07EH ; 4 MOVWF 44H MOVLW 0B7H ; 5 MOVWF 45H MOVLW 0BBH ; 6 MOVWF 46H MOVLW 0BDH ; 7 MOVWF 47H MOVLW 0BEH ; 8 MOVWF 48H MOVLW 0D7H ; 9 MOVWF 49H MOVLW 0DDH ; A MOVWF 4AH MOVLW 0DEH ; B MOVWF 4BH MOVLW 0E7H ; C MOVWF 4CH MOVLW 0EBH ; D MOVWF

11、4DH MOVLW 0EDH ; E MOVWF 4EH MOVLW 0EEH ; F MOVWF 4FH RETURN-报警温度输入程序(A B C C E F输入无效)-CHECKCHECK CALL DISPWARNH ;WARNING MAX界面程序 MOVLW 0C6H CALL LCDDDRAM ;换行并右移6个单位 MOVLW 0X0F CALL LCDPUTCMD ;开光标并闪烁TT1 CALL CHECK ;按键及显示程序 MOVLW 0X0A SUBWF FSR,0 BTFSC STATUS,0 ;比较键值是否比A大 GOTO TIM1 ; 是,调用函数TIM1 MOVLW

12、 30H ;否,把值加30(转换成ASCII码)赋给报警上限温度的十位 ADDWF FSR,0 MOVWF WARNHH TT2 GOTO TIM2 ; 是,调用函数TIM2否,把值加30(转换成ASCII码)赋给报警上限温度的个位 MOVWF WARNHL CALL LCDCLAR ;清屏函数 CALL DISPWARNL ;WARNING MIN界面程序 MOVLW 0C6H ; MOVLW 0X0F ;TT3 GOTO TIM3 ; 是,调用函数TIM3否,把值加30(转换成ASCII码)赋给报警下限温度的十位 MOVWF WARNLHTT4 GOTO TIM4 ; 是,调用函数TIM4

13、否,把值加30(转换成ASCII码)赋给报警下限温度的个位 ADDWF FSR,0 MOVWF WARNLLTIM1 换行并右移6个单位(回位,即输入无效,再次覆盖) GOTO TT1 TIM2 MOVLW 0XC7 ;换行并右移7个单位(回位,即输入无效,再次覆盖) GOTO TT2TIM3 GOTO TT3 TIM4 GOTO TT4 -按键和键盘防抖及调用显示子程序-CHECK CALL SCANBOARD COMF KEY,0 BTFSC STATUS,2 ;判断是否有键按下 GOTO CHECK ;无键按下 MOVLW .13 ;预置外循环变量 MOVWF DATA2 CALL DE

14、LAY2 ;调用延时子程序,消除抖动影响再次判断是否有键按下,否,有键按下是,无键按下 MOVF KEY,0 MOVWF KEYDATA CALL TRANSLATE ;把键位码翻译成16进制数 MOVF FSR,0 CALL TRANSLATELCD ;把16进制数翻译成用于显示的ASCII码 BANKSEL LCD_DATA_TRIS ;把D,E端口设置为输出 CLRF LCD_DATA_TRIS CLRF LCD_CTRL_TRIS BANKSEL LCD_DATA CALL LCDPUTCHAR ;调用显示子程序 CHECK1 MOVLW .117 MOVWF DATA2 ;产生100毫秒延时 CALL SCANBOARD COMF KEY,0 ;位置码取反 BTFSS STATUS,2 ;测试按键释放否 GOTO CHECK1 ;否继续检测 RETURN -键盘扫

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

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