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

📄 7705.asm

📁 avr 单片机8515 对ad7705 的测试程序
💻 ASM
字号:


;**************************************************************************************
.include "8515def.inc"

.org $000
     rjmp RESET
 
     
.def  delay0    =r1
.def  adc_a0h   =r2
.def  adc_a0l   =r3
.def  adc_a1h   =r4
.def  adc_a1l   =r5
.def  adc_b0h   =r6
.def  adc_b0l   =r7
.def  adc_b1h   =r8
.def  adc_b1l   =r9
.def  a2        =r10
.def  a3        =r11
.def  a4        =r12 
.def  b2        =r13
.def  b3        =r14
.def  b4        =r15
.def  delay1    =r17     
.def  cmp_status=r18     
.def  status    =r19
.def  point_a_no=r20 
.def  point_b_no=r21
.def  cmp0      =r22
.def  cmp1      =r23
.def  cmp2      =r24
.def  cmp3      =r25

.equ  cs1    =0
.equ  cs0    =1
.equ  rdy0   =2
.equ  rdy1   =3 
.equ  do     =5
.equ  di     =6
.equ  sck    =7 
    
.equ  atpoint=0
.equ  num    =41          ;共41个刻度 
.equ  bias   =16  
RESET:    
     ldi  r16,high(ramend)
     out  sph,r16
     ldi  r16,low(ramend)
     out  spl,r16
     ldi  r16,$ff     
     out  ddra,r16
     out  ddrc,r16
     sbi  ddrb,cs0
     sbi  ddrb,cs1
     cbi  ddrb,rdy0
     cbi  ddrb,rdy1
     sbi  ddrb,5
      
     cbi  ddrb,6
     sbi  ddrb,7 
     ldi  r16,$00
     out  porta,r16
     ldi  r16,$ff
     out  portc,r16
 



 


     sbi portb,cs0
     cbi portb,cs1    
       
 
AD_INI_A:
     rcall delay7ms                ;晶振稳定时间
            ;选择A组传感器     
     ldi r16,$20             ;时钟寄存器
     rcall putchar
     ldi r16,$0c
     rcall putchar            ;4.9152MHz,200Hz数据更新,
     
     ldi r16,$10           ;设置寄存器,通道0           
     rcall putchar
          
     ldi r16,$4a            ;自较需9个输出周期,缓冲模式,增益为2,双极性
     rcall putchar
     
     rcall delay56ms
     rcall delay56ms 
     rcall delay56ms 
     rcall delay56ms 
      
AD_INI_A_1:
     ldi  r16,$11            ;设置寄存器           
     rcall putchar
          
     ldi  r16,$4a            ;自较需9个输出周期,缓冲模式,增益为2,双极性
     rcall putchar  
      
     rcall delay56ms 
     rcall delay56ms  
      rcall delay56ms 
      rcall delay56ms  
      rcall delay56ms 
      
      
aa1:     
      sbi portb,cs0
     cbi portb,cs1    
       
      
      ldi  r16,$38            
     rcall putchar  
    
     rcall delay56ms  
      rcall delay7ms 
       rcall delay7ms 
       
       
       
       
wait:     
    sbic  portb,rdy1
    rjmp  wait
   
   rcall getchar
    mov  r2,r16
    rcall getchar
    mov  r3,r16
    
    
ait:     
    ;sbic  portb,rdy1
   ; rjmp   ait     
    ldi    r16,$28
    rcall  putchar
    rcall  getchar
     
 
   
   
    ldi  r16,$39            
    rcall putchar   
     
     
    rcall delay56ms
    
    rcall delay7ms
    rcall delay7ms
   
  
wait11:     
    sbic  portb,rdy1
    rjmp  wait11      
    
    rcall getchar 
    mov  r4,r16
    rcall getchar
    mov  r5,r16
    
 
    
   
    
    
     rjmp   aa1
;***************     
     
RST:
    sbi   portb,cs0
    cbi   portb,cs1
    
    ldi   r16,$ff
    rcall putchar
    ldi   r16,$ff
    rcall putchar
    ldi   r16,$ff
    rcall putchar
    ldi   r16,$ff
    rcall putchar
    ldi   r16,$ff
    rcall putchar
    rcall delay56ms 
    ret

     

     
     
 
       
  
 
 
getchar:         ; sck-- 常态1  r16 -常态0 
       ldi  r16,0        
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<7
       sbi  portb,sck                          ;MSB
       nop
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<6
       sbi  portb,sck                           
       nop              
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<5
       sbi  portb,sck                           
       nop    
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<4
       sbi  portb,sck                           
       nop      
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<3
       sbi  portb,sck                           
       nop    
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<2
       sbi  portb,sck                           
       nop     
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<1
       sbi  portb,sck                           
       nop    
       
       cbi  portb,sck
       nop
       sbis pinb,di
       sbic pinb,di
       sbr  r16,1<<0
       sbi  portb,sck                           
       nop                               ;LSB 
       
       ret
putchar:         ;sck-- 常态1  r16 do--常态0 
       cbi  portb,sck
       sbrs r16,7
       cbi  portb,do
       sbrc r16,7
       sbi  portb,do
       sbi  portb,sck  
       nop 
       
       cbi  portb,sck
       sbrs r16,6
       cbi  portb,do
       sbrc r16,6
       sbi  portb,do
       sbi  portb,sck  
       nop
       
       cbi  portb,sck
       sbrs r16,5
       cbi  portb,do
       sbrc r16,5
       sbi  portb,do
       sbi  portb,sck  
       nop
       
       cbi  portb,sck
       sbrs r16,4
       cbi  portb,do
       sbrc r16,4
       sbi  portb,do
       sbi  portb,sck  
       nop
       
       cbi  portb,sck
       sbrs r16,3
       cbi  portb,do
       sbrc r16,3
       sbi  portb,do
       sbi  portb,sck  
       nop
       
       cbi  portb,sck
       sbrs r16,2
       cbi  portb,do
       sbrc r16,2
       sbi  portb,do
       sbi  portb,sck  
       nop
       
       cbi  portb,sck
       sbrs r16,1
       cbi  portb,do
       sbrc r16,1
       sbi  portb,do
       sbi  portb,sck  
       nop
       
       cbi  portb,sck
       sbrs r16,0
       cbi  portb,do
       sbrc r16,0
       sbi  portb,do
       sbi  portb,sck  
           
       sbi  portb,do
       
        ret        
delay56ms:
      rcall  delay7ms   
      rcall  delay7ms   
       rcall  delay7ms   
        rcall  delay7ms   
         rcall  delay7ms   
          rcall  delay7ms   
           rcall  delay7ms   
            rcall  delay7ms   

  ret
     
delay5us:
     ldi  delay1,10
delay5us_1:
     dec  delay1
     brne delay5us_1
     ret   
delay100us:

     ldi  delay1,255
delay100us_1:
     dec  delay1
     brne delay100us_1
     ret   
        
delay7ms:
      ldi  delay1,$65
      mov  delay0,delay1
      ldi  delay1,$ff
delay7ms_1:
      dec  delay1
      brne delay7ms_1
      ldi  delay1,$aa                 
      dec  delay0
      brne delay7ms_1
      ret
 

⌨️ 快捷键说明

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