芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

IC解密DS18B20保温热水器程序

                                                                                                 ;DS18B20和AT89C2051制作的热水器程序!两位数码管显示温度,设定温度时数码管IC解密成闪烁状态,延时几秒后跳转到被测温度
;本程序由陈永飞同志开发!IC解密;DS18B20的正电源就是红线接+5伏,兰线接地,黄线接P3.2,红线和黄线之间接一个4.7K的上拉电阻
;这是关于DS18B20的读写程序,数据脚P3.2,晶振12MHz
;温度传感器18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒
;可以将检测到的温度直接显示到AT89C2051的p1口输数码管段码到两位一体数码管上
;显示温度00到99度,很准确哦~~无需校正!
;p3.1驱动加热管装置,让温度保温在0-99度内
;p3.0保温指示灯,p3.4是温度设定按键加1度;p3.5是温度设定按键减1度,p3.7是数码管高位位码,p3.3是数码管低位位码
;程序16进制的温度值放在29h里,我用可调节0度到99度的16进制值(#08H/#0EH)与之比较
;1至40度的16进制为:01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH     1-10度
;                   0BH 0CH 0DH 0EH 0FH 10H 11H 12H 13H 14H     11-20度
;                   15H 16H 17H 18H 19H 1AH 1BH 1CH 1DH 1EH     21-30度
;                   1FH 2OH 21H 22H 23H 24H 25H 26H 27H 28H     31-40度
;                   29H 2AH 2BH 2CH 2DH 2EH 2FH 30H 31H 32H     41-50度
;                   33H 34H 35H 36H 37H 38H 39H 3AH 3BH 3CH     51-60度
;                   3CH 3DH 3EH 3FH 40H 41H 42H 43H 44H 45H     61-70度
;                   46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH     71-80度
;                   51H 52H 53H 54H 55H 56H 57H 58H 59H 5AH     81-90度
;                   5BH 5CH 5DH 5EH 5FH 60H 61H 62H 63H 64H     91-100度
;=========================================================================================
;单片机内存分配申明!
       TEMPER_L EQU 29H          ;用于保存读出温度的低8位
       TEMPER_H EQU 28H          ;用于保存读出温度的高8位(特别是可位寻址,程序中用的着哦)
       TIAO_H   EQU 27H       ;用于保存设定温度的数据(最低温度的设定,高温度为低温度加2度)
       FLAG1 EQU 38H             ;是否检测到DS18B20标志位
       a_bit equ 20h             ;数码管个位数存放内存位置
       b_bit equ 21h             ;数码管十位数存放内存位置
       SL   EQU  22H            ;设定温度时数码管个位数存放内存位置
       SH   EQU  23H             ;设定温度时数码管十位数存放内存位置
       sdwd  equ 24h            ;设定温度压缩BCD码位
      DS18B20 BIT P3.2        ;定义DS18B20的数据脚为P3.2端口
       ORG 0000H
       MOV sdwd,#25H         ;;;;设定初始温度37度,上电后内部设定温度
  MAIN:LCALL INIT_1820           ;调用复位DS18B20子程序
MAIN1:LCALL GET_TEMPER          ;调用读温度子程序
;进行温度显示,这里我是用两位数码管来显示温度,显示范围00到99度,显示精度为1度
;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位
;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度
;这个转化温度的方法可是我想出来的哦~~非常简洁无需乘于0.0625系数
       MOV A,29H
       MOV C,40H                 ;将28H中的最低位移入C
       RRC A
       MOV C,41H
       RRC A
       MOV C,42H
       RRC A
       MOV C,43H
       RRC A
       MOV 29H,A
       LCALL DISPLAY             ;调用数码管显示子程序
;这里是后加的,做为控制在0-99度内恒温的程序!p3.1驱动加热管装置
      setb p3.4
      setb p3.5
      jnb p3.4,DD1             ;按下后转加1程序
      jnb p3.5,DD2             ;按下后转减1程序



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信