DS18B20汇编程序(完整版).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DS18B20汇编程序(完整版)

DS18B20汇编程序 ;实验目的:熟悉DS18B20的使用 ;六位数码管显示温度结果,其中整数部分2位,小数部分4位 ;每次按下RB0键后进行一次温度转换。 ;硬件要求:把DS18B20插在18B20插座上 ; 拨码开关S10第1位置ON,其他位置OFF ; 拨码开关S5、S6全部置ON,其他拨码开关全部置OFF ;*****************以下是暂存器的定义***************************** #INCLUDE<P16F877A.INC> #DEFINE DQ PORTA,0 ;18B20数据口 __CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC CBLOCK 20H DQ_DELAY1 DQ_DELAY2 TEMP TEMP1 TEMP2 ;存放采样到的温度值 TEMP3 COUNT COUNT1 ENDC TMR0_VALUE EQU 0AH ;寄存器初值为6,预分频比1:4,中断一次时间为4*(256-6)=1000us DQ_DELAY_VALUE1 EQU 0FAH DQ_DELAY_VALUE2 EQU 4H ;**********************以下是程序的开始************************ ORG 00H NOP GOTO MAIN ;入口地址 ORG 04H RETFIE ;在中断入口出放置一条中断返回指令,防止干扰产生中断 TABLE ADDWF PCL,1 RETLW 0C0H ;0的编码(公阳极数码管) RETLW 0F9H ;1的编码 RETLW 0A4H ;2的编码 RETLW 0B0H ;3的编码 RETLW 99H ;4的编码 RETLW 92H ;5的编码 RETLW 082H ;6 RETLW 0F8H ;7 RETLW 080H ;8 RETLW 090H ;9 ;***************************主程序******************************* MAIN CLRF PORTA CLRF PORTB BANKSEL TRISA CLRF TRISA ;A口所有先设置为输出 CLRF TRISD MOVLW 01H MOVWF TRISB ;B0口为输入,其他为输出 MOVLW 06H MOVWF ADCON1 ;关闭所有A/D口 MOVLW 01H MOVWF OPTION_REG ;分频比1:4,定时器,内部时钟源 BCF STATUS,RP0 CLRF TEMP CLRF TEMP1 CLRF TEMP2 ;清零临时寄存器 MOVLW 8H MOVWF COUNT MOVLW 38H MOVWF FSR CLRF INDF INCF FSR,1 DECFSZ COUNT,1 GOTO $-3 ;****************************循环处理部分************************ ;先启动18B20温度转换程序,在判断温度转换是否完成(需750us) ;未完成则调用显示子程序,直到完成温度转换 ;完成后读取温度值 ;送LCD

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档