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

📄 k3_three.asm

📁 串口通信 频率测量 EEPROM读写程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
      k2_60_90: rjmp m_k2_press  
      d60_90: rcall delay
              sbic PIND,7
              rjmp display60_90
              rcall change_disp
 display70_90: cpi r27,2
              brne display80_90
              rcall disp_70                                                  
              rcall  delay1
              sbic PIND,7 
              rjmp c70_90  
              rjmp d70_90			
      c70_90: cpi r17,0
              breq k2_70_90    
              rjmp m_wait_k1
      k2_70_90: rjmp m_k2_press  
      d70_90: rcall delay
              sbic PIND,7
              rjmp display70_90
              rcall change_disp  
 display80_90: cpi r27,3
              brne display90_90
              rcall disp_80                                                  
              rcall  delay1
              sbic PIND,7 
              rjmp c80_90  
              rjmp d80_90			
      c80_90: cpi r17,0
              breq k2_80_90    
              rjmp m_wait_k1
      k2_80_90: rjmp m_k2_press  
      d80_90: rcall delay
              sbic PIND,7
              rjmp display80_90
              rcall change_disp 
 display90_90:rcall disp_90                                                  
              rcall  delay1
              sbic PIND,7 
              rjmp c90_90  
              rjmp d90_90			
      c90_90: cpi r17,0
              breq k2_80_90    
              rjmp m_wait_k1
      k2_90_90: rjmp m_k2_press  
      d90_90: rcall delay
              sbic PIND,7
              rjmp display90_90
              rcall change_disp   
;-----------------------------------------------
display120:ser r16
           out DDRC,r16 ;portc is output mode and turn off all LEDS
           ldi r21,$00
           out PORTC,r21 ;turn off "50" display
           ldi r21,$06
           out SPDR , r21 
           ldi r17,0b0000100
           out PORTC,r17 ;PC.2 display "1"
    ; wait0:sbis SPSR,7
    ;       rjmp wait0             
           rcall delay
           ldi r17,0b0000000 
           out PORTC,r17 
           ldi r21,$5b
           out SPDR , r21 
           ldi r17,0b0001000
           out PORTC,r17 
           out PORTC,r17 ;PC.3 display "2"
    ; wait0:sbis SPSR,7
    ;       rjmp wait0             
           rcall delay
           ldi r17,0b0000000 
           out PORTC,r17 
          ldi r21,$3f
           out SPDR , r21 
           ldi r17,0b0010000
           out PORTC,r17 ;PC.4 display "0"
    ; wait0:sbis SPSR,7
    ;       rjmp wait0             
           rcall delay
           ldi r17,0b0000000 
           out PORTC,r17  
           ret
;-----------------------------------------------

;-----------------------------
 b1_d0: rcall turn_off                                                         
            rcall display_0 
            rcall dispbyte_1      
           ; rcall trans_wait                        
            rcall delay
            rcall turn_off   
            ret
;-----------------------------
disp_10: rcall display_1
            rcall dispbyte_0            
           ; rcall trans_wait                                           
            rcall delay
            rcall b1_d0
             rcall delay
            rcall turn_off
            ldi r27,-4
            ret
;-----------------------------
disp_20: rcall display_2
            rcall dispbyte_0            
           ; rcall trans_wait                                           
            rcall delay
            rcall b1_d0
             rcall delay
            rcall turn_off
            ldi r27,-3
            ret
;-----------------------------
disp_30: rcall display_3
            rcall dispbyte_0            
           ; rcall trans_wait                                           
            rcall delay
            rcall b1_d0
             rcall delay
            rcall turn_off
            ldi r27,-2
            ret  
;-----------------------------
disp_40: rcall display_4
            rcall dispbyte_0            
           ; rcall trans_wait                                           
            rcall delay
            rcall b1_d0
             rcall delay
            rcall turn_off
            ldi r27,-1
            ret 

 ;-----------------------------
disp_50: rcall display_5
            rcall dispbyte_0            
           ; rcall trans_wait                                           
            rcall delay
            rcall b1_d0
            ldi r27,0
            ret
 ;-----------------------------
   disp_60: rcall turn_off
            rcall display_6
            rcall dispbyte_0            
           ; rcall trans_wait                                           
            rcall delay
            rcall b1_d0           
            ldi r27,1           
            ret
;------------------------------
   disp_70:rcall turn_off
            rcall display_7
            rcall dispbyte_0            
            ;rcall trans_wait                                           
            rcall delay
            rcall b1_d0           
            ldi r27,2
            ret
;-----------------------------                 
    disp_80:rcall turn_off
            rcall display_8
            rcall dispbyte_0            
            ;rcall trans_wait                                           
            rcall delay
            rcall b1_d0              
            ldi r27,3
            ret
;-------------------------------                         
   disp_90: rcall turn_off
            rcall display_9
            rcall dispbyte_0            
            ;rcall trans_wait                                           
            rcall delay
            rcall b1_d0           
            ldi r27,4
            ret    
;-----------------------------
 b4_d0: rcall turn_off                                                         
            rcall display_0 
            rcall dispbyte_4      
           ; rcall trans_wait                        
            rcall delay
            rcall turn_off   
            ret
;----------------------------
    tad_030:rcall turn_off
            rcall display_0
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_3
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,-3
            ret    
;----------------------------
    tad_060:rcall turn_off
            rcall display_0
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_6
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,-2
            ret  
;----------------------------
    tad_090:rcall turn_off
            rcall display_0
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_9
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,-1
            ret   
;----------------------------
    tad_120:rcall turn_off
            rcall display_1
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_2
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,0
            ret    
;----------------------------
    tad_150:rcall turn_off
            rcall display_1
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_5
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,1
            ret     
;----------------------------
    tad_180:rcall turn_off
            rcall display_1
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_8
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,2
            ret  
;----------------------------
    tad_210:rcall turn_off
            rcall display_2
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_1
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,3
            ret  
 ;----------------------------
    tad_240:rcall turn_off
            rcall display_2
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_4
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,4
            ret  
 ;----------------------------
    tad_270:rcall turn_off
            rcall display_2
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_7
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,5
            ret  
 ;----------------------------
    tad_300:rcall turn_off
            rcall display_3
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_0
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,6
            ret  
 ;----------------------------
    tad_330:rcall turn_off
            rcall display_3
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_3
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,7
            ret  
 ;----------------------------
    tad_360:rcall turn_off
            rcall display_3
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_6
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,8
            ret 
  ;----------------------------
    tad_390:rcall turn_off
            rcall display_3
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_9
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,9
            ret 
 ;----------------------------
    tad_420:rcall turn_off
            rcall display_4
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_2
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,10
            ret 
 ;----------------------------
    tad_450:rcall turn_off
            rcall display_4
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_5
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,11
            ret 
 ;----------------------------
    tad_480:rcall turn_off
            rcall display_4
            rcall dispbyte_2
            rcall delay
            rcall turn_off
            rcall display_8
            rcall dispbyte_3            
            ;rcall trans_wait                                           
            rcall delay
            rcall b4_d0           
            ldi r26,12
            ret 
;************************************************
  seg_code:.db $3f,$06,$5b,$4f,$66,$6d,$7d,$07
           .db $7f,$6f,$77,$7c,$39,$5e,$79,$71 
 display_0:ldi r21,$3f            
           out SPDR , r21 
           ret
 display_1:ldi r21,$06
           out SPDR , r21 
           ret
 display_2:ldi r21,$5b
           out SPDR , r21 
           ret 
 display_3:ldi r21,$4f
           out SPDR , r21 
           ret
 display_4:ldi r21,$66
           out SPDR , r21 
           ret
 display_5:ldi r21,$6d
           out SPDR , r21 
           ret
 display_6:ldi r21,$7d
           out SPDR , r21 
           ret
 display_7:ldi r21,$07
           out SPDR , r21 
           ret
 display_8:ldi r21,$7f
           out SPDR , r21 
           ret
 display_9:ldi r21,$6f
           out SPDR , r21 
           ret
 turn_off: ser r16
           out DDRC,r16
           ldi r17,0b0000000
           out PORTC,r17  
           ret
dispbyte_0:ldi r17,0b00000001
           out PORTC,r17 
           ret
dispbyte_1:ldi r17,0b00000010
           out PORTC,r17 
           ret
dispbyte_2:ldi r17,0b00000100
           out PORTC,r17 
           ret
dispbyte_3:ldi r17,0b00001000
           out PORTC,r17 
           ret
dispbyte_4:ldi r17,0b00010000
           out PORTC,r17 
           ret
trans_wait:sbis SPSR,7
           rjmp trans_wait             
           ret
    m_min: ret
    t_add: ret
    t_min: ret
 change_disp: ret      
              

⌨️ 快捷键说明

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