⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atmega8controlds18b20andshowbyled.asm

📁 用ATMEGA8控制DS18B20,并用数码管显示的汇编程序
💻 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  ;启动温度转换
               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   ;读取温度的低字节
               
               call     read
               mov      r22,r17   ;读取温度的高字节
               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 ;数码管段码值
        .db  $fe,$38,$dd,$7d,$3b,$77,$f7,$3c,$ff,$7f,0,0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -