PIC16F877A+汇编语言DS18B20温度采集程序_第1页
PIC16F877A+汇编语言DS18B20温度采集程序_第2页
PIC16F877A+汇编语言DS18B20温度采集程序_第3页
PIC16F877A+汇编语言DS18B20温度采集程序_第4页
PIC16F877A+汇编语言DS18B20温度采集程序_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TEMP2;存放采样到的温度值DS18B20温度采集程序PIC16F877A+汇编语言;六位数码管显示温度结果,其中整数部分2位,小数部分4位;每次按下RB0键后进行一次温度转换。硬件要求:把DS18B20插在18B20插座上;拨码开关S10第1位置ON,其他位置OFF;拨码开关S5、S6全部置ON,其他拨码开关全部置OFF.*以下是暂存器的定义*TEMP2;存放采样到的温度值TEMP2;存放采样到的温度值#INCLUDE#DEFINEDQPORTA,0;18B20数据口_CONFIG_DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OF

2、F&_PWRTE_ON&_WDT_OFF&_HS_OSC;调试模式关闭,写保护,一半ROM可在线改写,EEPROM加密,低压编程关闭,掉电检测关闭,上电延时开,看门狗关,4M晶振HS振荡CBLOCK20HDQ_DELAY1DQ_DELAY2TEMPTEMP1TEMP3COUNTCOUNT1ENDCTMRO_VALUEEQUOAH;寄存器初值为6,预分频比1:4,中断一次时间为4*(256-6)=1OOOusDQ_DELAY_VALUE1EQU0FAH.*DQ_DELAY_VALUE2EQU4H以下是程序的开始*ORGOOHTEMP2;存放采样到的温度值TEMP2;存放采样到的温度值NOPGOT

3、OMAIN;入口地址ORGO4HTEMP2;存放采样到的温度值TEMP2;存放采样到的温度值RETFIE;在中断入口出放置一条中断返回指令,防止干扰产生中断TABLEADDWFPCL,1RETLWOCOH;O的编码(公阳极数码管)RETLWOF9H;1的编码RETLWOA4H;2的编码RETLWOBOH;3的编码RETLW99H;4的编码RETLW92H;5的编码TEMP2;存放采样到的温度值TEMP2;存放采样到的温度值RETLWO82H;6CLRFTEMP2;清零临时寄存器TEMP2;存放采样到的温度值RETLW0F8H;7RETLW080H;8RETLW090H;9.*主程序*MAINC

4、LRFPORTACLRFPORTBBANKSELTRISACLRFTRISACLRFTRISDMOVLW01HMOVWFTRISBMOVLW06HMOVWFADCON1MOVLW01HMOVWFOPTION_REGBCFSTATUS,RP0;A口所有先设置为输出;B0口为输入,其他为输出;关闭所有A/D口;分频比1:4,定时器内部时钟源CLRFTEMPCLRFTEMP1MOVLW8HMOVWFTEMPTEMP2;存放采样到的温度值MOVWFCOUNT.*循环处理部分*MOVLW38HMOVWFFSRCLRFINDFINCFFSR,1DECFSZCOUNT,1GOTO$-3先启动18B20温度转

5、换程序,在判断温度转换是否完成(需750us);未完成则调用显示子程序,直到完成温度转换;完成后读取温度值;送LCD显示LOOPBTFSCPORTB,0;判断温度转换按键是否按下GOTOLOOP1;否,转显示CALLDELAY;消抖BTFSCPORTB,0;再次判断GOTOLOOP1CALLRESET_18B20;调用复位18B20子程序MOVLW0CCHTEMP2;存放采样到的温度值;SKIPROM命令;温度转换命令;调用温度转换所需要的750MS延时;SKIPROM命令;读温度命令;调用读温度低字节;保存到TEMPI;调用读温度高字节;保存到TMEP2CALLWRITE_18B20MOVL

6、W44HMOVWFTEMPCALLWRITE_18B20CLRFSTATUSCALLDELAY_750MSNOPCALLRESET_18B20MOVLW0CCHMOVWFTEMPCALLWRITE_18B20MOVLW0BEHMOVWFTEMPCALLWRITE_18B20CALLREAD_18B20MOVFWTEMPMOVWFTEMP1CALLREAD_18B20MOVFWTEMPMOVWFTEMP2CALLRESET_18B20LOOP1CALLTEMP_CHANGE;调用温度转换程序TEMP2;存放采样到的温度值CALLDISPLAYGOTOLOOP;调用LCD显示程序;循环工作CALL

7、TEMP_CHANGE;调用温度转换程序TEMP2;存放采样到的温度值CALLTEMP_CHANGE;调用温度转换程序TEMP2;存放采样到的温度值复位子程序根据介绍写数据时应遵照如下规定:主控制器把总线拉低至少,等待后,把总线拉低做为返回给控制器的应答信号拉低释放总线等待TEMP2;存放采样到的温度值根据设置为输入数据线是否为低否则继续复位延时一段时间后再次判断设置为输出写子程序介绍写数据时应遵照如下规定:TEMP2;存放采样到的温度值TEMP2;存放采样到的温度值写数据0时,主控制器把总线拉低至少TEMP2;存放采样到的温度值写数据时,主控制器把总线拉低,但必须在内释放位数据先保持为高拉低判断写的数据为还是为拉拉1,拉立拉即拉拉拉高拉数拉据拉线拉继拉续拉拉保持拉拉数据拉拉线为拉拉低保持释放总线是否写完位数据读子程序根据介绍读数据时应遵照如下规定:读数据时,主控制器把总线拉低后,再把总线拉低读数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论