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

📄 953.asm

📁 单片机开发资料光盘-双龙-686M.zip
💻 ASM
字号:
.include"8535def.inc"
.org $000
 rjmp main
.org $006
 rjmp tim1_cmp
main: ldi r16,low(ramend)  ;初始化堆栈指针
      out spl,r16
      ldi r16,high(ramend)
      out sph,r16
      ldi r16,$c0          ;达比较匹配值时,OC1A变高
      out tccr1a,r16
      ldi r16,$0C          ;256分频,CTC=1,匹配时清定时器1
      out tccr1b,r16
      ldi r16,$20          ;PD5作输出
      out ddrd,r16
      clr r16              ;使TCNT1初值为0
      out tcnt1h,r16
      out tcnt1l,r16
      ldi r18,$01          ;送比较匹配值312
      out ocr1ah,r18
      ldi r18,$38
      out ocr1al,r18
      ldi r16,$10          ;允许定时器1比较匹配中断
      out timsk,r16
      clr r16              ;清中断标志
      out tifr,r16
      sei
here: rjmp here

tim1_cmp:
      in r1,sreg           ;保护标志          
      in r18,tccr1a        ;读TCCR1A
      sbrs r18,6           ;判COM1A0是否为1          
      rjmp  aa             
      ldi r18,$00          ; 若为1,送下次比较匹配值156
      out ocr1ah,r18
      ldi r18,156
      out ocr1al,r18
      ldi r18,$80          ;下次达到比较匹配值156时OC1A引脚变低
      out tccr1a,r18
bc:   out sreg,r1          ;恢复标志
      reti
aa:   ldi r18,$c0          ;若COM1A0为零,下次达到比较匹配值时OC1A引脚变高
      out tccr1a,r18    
      ldi r18,$01          ;送下次比较匹配值312            
      out ocr1ah,r18
      ldi r18,$38
      out ocr1al,r18
      rjmp bc

⌨️ 快捷键说明

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