这几天反复看ds18b20资料
这几天反复看ds18b20资料,做了个温度计
;**************************************
;利用PIC16C54+DS18B20测量温度
;两位数码管显示
;**************************************
LIST P=16C54
STATUS EQU 3H
Z EQU 2H
F EQU 1H
W EQU 0H
C EQU 0H
RA EQU 5H
RB EQU 6H
#DEFINE INT RA,0
cblock 7H
Y1
Y2
COUNT1
COUNT2
COMD
DATE
BIN_L ;要进行转换的字节
GE ;转换后的 个位
SHI ;转换后的 十位
BAI ;转换后的 百位
DATE_L
DATE_H
endc
ORG 1FFH
GOTO START
ORG 00H
;============================ START:
MOVLW 0FFH
TRIS RA
BTFSS INT
GOTO START
CALL REST ;复位18B20
MOVLW 0CCH ;跳过ROM
CALL WR1820
MOVLW 044H ;启动温度转换
CALL WR1820
CALL _750US ;转换过程等待
CALL REST
MOVLW 0CCH
CALL WR1820
MOVLW 0BEH ;读内部RAM中的9字节
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
CALL WR1820 ;读数据前先复位18B20
NOP
NOP
CALL RE1820 ;读数据
MOVF DATE,W ;读低8位
MOVWF DATE_L
CALL RE1820
MOVF DATE,W ;读高8位
MOVWF DATE_H
MOVF DATE_L,W ;-----显示处理--------------- ;(读出数据后乘以0.0625后,在此除以16显示)
RRF DATE_H,F
RRF DATE_L,F
RRF DATE_H,F
RRF DATE_L,F
RRF DATE_H,F
RRF DATE_L,F
RRF DATE_H,F
RRF DATE_L,F
MOVF DATE_L,W
MOVWF BIN_L
CALL DISP
GOTO START ;============================ ;---动态扫描显示------------- DISP:
MOVLW 00H
TRIS RA
TRIS RB
CALL _BCD
MOVF GE,W
ANDLW 0FH
CALL CHABIAO
MOVWF RB
BCF RA,1
CALL DELAY
BSF RA,1
;
MOVF SHI,W
ANDLW 0FH
CALL CHABIAO
MOVWF RB
BCF RA,2
CALL DELAY
BSF RA,2
;
MOVF BAI,W
ANDLW 0FH
CALL CHABIAO
MOVWF RB
BCF RA,3
CALL DELAY
BSF RA,3
RETLW 00H ;---二进制转BCD码----------------------------------
_BCD:
CLRF BAI
CLRF SHI
CLRF GE
MOVF BIN_L,F
SKPNZ
RETLW 00H BAI_:
MOVLW .100
SUBWF BIN_L,W
SKPC
GOTO SHI_
MOVWF BIN_L
INCF BAI,F
GOTO BAI_ SHI_:
MOVLW .10
SUBWF BIN_L,W
SKPC
GOTO GE_
MOVWF BIN_L
INCF SHI
GOTO SHI_ GE_:
MOVF BIN_L,W
MOVWF GE
RETLW 00H ;============================
DELAY:
MOVLW 03FH
MOVWF Y1
MOVLW 020H
MOVWF Y2
DECFSZ Y2
GOTO $-1
DECFSZ Y1
GOTO $-5
RETLW 00H ;=============================
_750US:
MOVLW 09H
MOVWF Y1
MOVLW 01AH
MOVWF Y2
DECFSZ Y2
GOTO $-1
DECFSZ Y1
GOTO $-5
RETLW 00H ;=============================
;---查
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
子程序----
CHABIA
ADDWF 2,F
RETLW 048H
RETLW 07DH
RETLW 0C4H
RETLW 054H
RETLW 071H
RETLW 052H
RETLW 042H
RETLW 07CH
RETLW 040H
RETLW 050H ;=====复位段====================
REST:
;-----关数码管,防止鬼影--------
MOVLW 0
TRIS RB
MOVLW 0FFH
MOVWF RB ;-------------------------------
MOVLW 00H
TRIS RA
BSF INT
NOP
BCF INT
MOVLW D'200'
MOVWF Y1 LP:
DECFSZ Y1
GOTO $-1
MOVLW 0FFH
TRIS RA
MOVLW D'30'
MOVWF Y1
DECFSZ Y1
GOTO $-1
BTFSC INT
GOTO REST
MOVLW D'80'
MOVWF Y1
DECFSZ Y1
GOTO $-1
BTFSS INT
GOTO LP
RETLW 00H ;===============================
;----写18B20-------------------
WR1820:
MOVWF COMD
MOVLW 8
MOVWF COUNT2 WR0:
MOVLW 0
TRIS RA
BCF INT
NOP
NOP
MOVLW 2
MOVWF COUNT1 WR1:
DECFSZ COUNT1,1
GOTO WR1
MOVLW 0FH
BTFSC COMD,0
BSF INT
BTFSC COMD,0
TRIS RA
BCF STATUS,C
RRF COMD,1
MOVLW D'20'
MOVWF COUNT1 WR2:
DECFSZ COUNT1,1
GOTO WR2
BSF INT
MOVLW 0FH
TRIS RA
DECFSZ COUNT2,1
GOTO WR0
RETLW 0
;----读18B20---------------- RE1820:
MOVLW 8
MOVWF COUNT2 RE0:
MOVLW 0
TRIS RA
BCF INT
MOVLW 2
MOVWF COUNT1 RE1:
DECFSZ COUNT1,1
GOTO RE1
MOVLW 0FH
TRIS RA
NOP
BTFSS INT
BCF STATUS,C
BTFSC INT
BSF STATUS,C
RRF DATE,F
MOVLW D'20'
MOVWF COUNT1 RE2:
DECFSZ COUNT1,1
GOTO RE2
DECFSZ COUNT2,1
GOTO RE0
BSF INT
RETLW 0
;===============================
END