; 定时器0中断服务程序
T0IT: PUSH PSW ;
MOV PSW, #10H ;
MOV TH0, #TIMEH ;
MOV TL0, #TIMEL ;
INC R7 ;
CJNE R7, #32H, T0IT1 ;
MOV R7, #00H ;
SETB TIME1SOK ;1S定时到标志
T0IT1: POP PSW ;
RETI ;
; 主程序
MAIN: LCALL DISP1 ;调用显示子程序
JNB TIME1SOK, $ ;
CLR TIME1SOK ;测温每1S一次
JNB TEMPONEOK, MAIN2 ;上电时先温度转换一次
LCALL READTEMP1 ;读出温度值子程序
LCALL CONVTEMP ;温度BCD 码计算处理子程序
LCALL DISPBCD ;显示区BCD码温度值涮新子程序
LCALL DISP1 ;消闪烁,显示一次
MAIN2: LCALL READTEMP ;温度转换开始
SETB TEMPONEOK ;
LJMP MAIN ;
;子程序
INITDS1820: SETB TEMPDIN ;
NOP ;
NOP ;
CLR TEMPDIN ;
MOV R6, #0A0H ; DELAY 480us
DJNZ R6, $
MOV R6, #0A0H
DJNZ R6, $ ;
SETB TEMPDIN ;
MOV R6, #32H ; DELAY 70us
DJNZ R6, $ ;
MOV R6,#3CH
LOOP1820: MOV C, TEMPDIN ;
JC INITDS1820OUT ;
DJNZ R6,LOOP1820
MOV R6, #064H ; DELAY 200us
DJNZ R6, $ ;
SJMP INITDS1820 ;
RET ;
;
INITDS1820OUT: SETB TEMPDIN ;
RET ;
;读DS18B20的程序, 从DS18B20中读出一个字节的数据
READDS1820: MOV R7, #08H ;
SETB TEMPDIN ;
NOP ;
NOP ;
READDS1820LOOP: CLR TEMPDIN ;
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
本文关键字:温度计 51单片机,单片机-工控设备 - 51单片机