?? atmega8controlds18b20andshowbyled.asm
字號:
.include "m8def.inc"
.org $00
rjmp main
.org $20
main: ldi r16,high(ramend)
out sph,r16
ldi r16,low(ramend)
out spl,r16
cli
sbi ddrc,3
sbi portc,3;pc3,tI/O
sbi ddrc,5
sbi ddrc,4
sbi portc,4 ;pc4(AB164)
sbi portc,5 ;pc5(clk164)
ldi r18,23
call shijinzhi
ldi r18,45
call shijinzhi
call chushihua
ldi r16,$cc ;$cc??rom
call write
ldi r16,$4e ;??????
call write
ldi r16,$7f ;12位精度,7fh
call write
scan: ldi r16,$44 ;啟動溫度轉(zhuǎn)換
call write
ldi r18,3
chushihua12: ldi r17,100 ;750us
chushihua10: ldi r16,255
chushihua11: dec r16
cpi r16,1
brsh chushihua11
dec r17
cpi r17,1
brsh chushihua10
dec r18
cpi r18,1
brsh chushihua12
call chushihua
ldi r16,$cc ;$cc
call write
ldi r16,$be ;$be??????
call write
call read
mov r21,r17 ;讀取溫度的低字節(jié)
call read
mov r22,r17 ;讀取溫度的高字節(jié)
mov r23,r21
ldi r16,0
call shumaguan
ldi r16,0
andi r23,$0f
cpi r23,8
brlo loop1
ldi r16,5
loop1: call shumaguan
lsr r21
lsr r21
lsr r21
lsr r21
andi r21,$0f
lsl r22
lsl r22
lsl r22
lsl r22
andi r22,$70
or r22,r21
mov r18,r22
call shijinzhi
call chushihua
ldi r16,$cc ;$cc跳過rom
call write
rjmp scan
;********************************************
chushihua: sbi ddrc,3
sbi portc,3
nop
nop
nop
nop
cbi portc,3
ldi r17,2 ;550us
chushihua0: ldi r16,200
chushihua1: cbi portc,3 ;8*******************
dec r16
cpi r16,1
brsh chushihua1
dec r17
cpi r17,1
brsh chushihua0
cbi ddrc,3
sbi portc,3
ldi r16,56 ;60us
chushihua3: dec r16
cpi r16,1
brsh chushihua3
chushi5a: sbic pinc,3
rjmp chushi5a
chushi5b: sbis pinc,3
rjmp chushi5b
chushihua6: ldi r16,223
chushihua7: dec r16
cpi r16,1
brsh chushihua7
ret
;******************************************
write: ldi r19,8
sbi ddrc,3
writ0: sbi portc,3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi portc,3
ldi r20,15
write1: dec r20
cpi r20,1
brsh write1 ;16us
cbi portc,3
ror r16 ;??
brcc write2
sbi portc,3
write2: ldi r20,37
write3: dec r20
cpi r20,1
brsh write3;40us
dec r19
cpi r19,1
brsh writ0
sbi portc,3
ret
;************************************************read
read: ldi r19,8
read0: sbi ddrc,3
sbi portc,3
nop
nop
nop
nop
nop
nop
nop
nop ;2us
cbi portc,3
ldi r16,3
read0a: dec r16
cpi r16,1
brsh read0a ;4us
sbi ddrc,3
sbi portc,3
ldi r16,8
read1: dec r16
cpi r16,1
brsh read1
cbi ddrc,3
sbi portc,3
clc
sbic pinc,3
sec
ror r17 ;??
ldi r16,50
read2: dec r16
cpi r16,1
brsh read2
dec r19
cpi r19,1
brsh read0
sbi ddrc,3
sbi portc,3
ret
;**************************************
shijinzhi: ; wdr
clr r27
clr r19 ;??
shi0: cpi r18,100
brlo shi1
subi r18,100
inc r27
rjmp shi0
shi1: cpi r18,10
brlo shi2
subi r18,10
inc r19
rjmp shi1
shi2: mov r16,r18
call shumaguan ;??????
mov r16,r19
call shumaguan ;??????
mov r16,r27
call shumaguan
;wdr
ret
;***********************************8
shumaguan: ;wdr
ldi r17,8
ldi r31,4
mov r30,r16
lpm r16,z
shumg1: sbi portc,4
rol r16
brcs shumg2
cbi portc,4
shumg2: cbi portc,5 ;pc5(clk164)
sbi portc,5
dec r17
cpi r17,1
brsh shumg1
wdr
ret
;*****************************
.org $200 ;數(shù)碼管段碼值
.db $fe,$38,$dd,$7d,$3b,$77,$f7,$3c,$ff,$7f,0,0
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -