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

📄 104.asm

📁 单片机开发资料光盘-双龙-686M.zip
💻 ASM
字号:
.include"8535def.inc"
.org $000
 rjmp RESET
.org $010
 rjmp ANA_COMP
RESET:   ldi r16,low(ramend)    ;栈指针置初值
         out spl,r16
         ldi r16,high(ramend)
         out sph,r16
wait_edge1:
         sbic acsr,aco          ;等待输入信号(AIN0)<(AIN1)
         rjmp wait_edge1        
wel_1:   sbis acsr,aco          ;等待输入信号(AIN0)>(AIN1)
         rjmp wel_1
;说明:AIN0穿越AIN1时,模拟比较器输出(ACO)就改变一次,程序可检测此标志。
wait_edge2:
         sbi acsr,acis0         ;选择模拟比较器中断模式为上升沿
         sbi acsr,acis1         
         sbi ACSR,ACI           ;清模拟比较器中断标志ACI
we2_1:   sbis ACSR,ACI          ;等待模拟比较器中断标志变1          
         rjmp we2_1
;说明:模拟比较器中断标志(ACI)是按ACIS1和ACIS0所规定的模式置位,程序可检测此标志。
ana_init:clr r17                ;清计数寄存器的高、低字节                
         clr r18      
         ldi r16,$13            ;清模拟比较器中断标志ACI,选上升沿触发                                  
         out ACSR,r16
         sei                    ;开中断
         sbi ACSR,ACIE          ;使能模拟比较器中断  
here:    rjmp here

ANA_COMP:in r1,sreg             ;保护标志寄存器
         subi r17,low(-1)       ;计数器加1
         sbci r18,high(-1) 
         out sreg,r1            ;恢复标志寄存器
         reti         
;说明:在模拟比较器中断使能位(ACIE)置1和全局中断使能后,就进入模拟比较器中断。

⌨️ 快捷键说明

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