首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用ds18b20做的温度控制系统!

用ds18b20做的温度控制系统!

;这是一个使用DS18B20集成数字温度传感器(参见DS18B20.PDF)测量温度的实用程序.
;第1,2个数码管显示温度值
;硬件:将P1.0口线的跳线器置焊盘位置(下方),连接DS18B20,即可.
;本程序使用DS18B20的12位单点采样模式,采样周期约0.8秒钟,每按键一次就采样一次!
;程序编制人:蔡祥荣 2004/06/20
;----------------------------------------------------------------------------------  
         TEMP         EQU 21H         ;当前温度值
         BUFF_LED1    EQU 22H         ;数码管显示缓存
         BUFF_LED2    EQU 23H
         BUFF_LED3    EQU 24H
         BUFF_LED4    EQU 25H
         BUFF_LED5    EQU 26H
         BUFF_LED6    EQU 27H
         BUFF_LED_LP  EQU 28H         ;T0键盘显示扫描缓存
         BUFF_1820L   EQU 30H
         BUFF_1820H   EQU 31H
         F_BEEP       BIT 01H


         LED_PORT   EQU   P0
         DIG_PORT   EQU   P2
         KEY_PORT   EQU   P2
         KEY        BIT   P3.3
         BEEP       BIT   P2.0
         DS18B20    BIT   P1.0
        org   000h
        JMP   main
        ORG   00BH
        JMP   T0_INT
         
        ORG   100H
   main:MOV   SP ,#40H
        MOV   PSW,#00H
        MOV   TMOD,#21h
        MOV   TH0,#240     ;T0=4MS
        MOV   TL0,#96
        SETB   TR0
        SETB   ET0
        SETB   EA
        MOV    R0,#7FH      ;初始化RAM区,
CLR_RAM:MOV    A,#00H
        MOV    @R0,A
        DJNZ   R0,CLR_RAM
        MOV    P1,0FFH      ;INIT
        MOV    P2,0FFH
        MOV    P0,0FFH
        MOV    P3,0FFH
        MOV    BUFF_LED3,#10H  ;将数码管LED3-LED6消隐
        MOV    BUFF_LED4,#10H
        MOV    BUFF_LED5,#10H
        MOV    BUFF_LED6,#10H
       
WAIT_KEY:JB     KEY,$          ;等候按键
         SETB   F_BEEP
         CLR    BEEP
         LCALL  GET_TEMP
         LCALL  BIN_BCD
         MOV    BUFF_LED2,B
         MOV    BUFF_LED1,A
         CLR    F_BEEP
         JMP    WAIT_KEY

我是个学生
返回列表