;这是一个使用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
|