200hz频率输出.asm

来自「AT89S52单片机程序50例(00-50)」· 汇编 代码 · 共 25 行

ASM
25
字号
;程序名称  200Hz频率输出
;程序功能  利用定时/计数器T1定时,在P1.0口产生200Hz的频率输出。
;          实际应用例如:传感器前级推动。可用示波器观察。

     ORG 0000H  ;程序起始地址
     AJMP MAIN  ;跳转至MAIN
     ORG 001BH  ;定时/计数器T1的中断服务子程序的入口地址
     AJMP TIMER1  ;跳转至TIMER1

MAIN:MOV TMOD,#00010000B  ;定时/计数器T1工作于方式1,16位计数器
     MOV TH1,#0F6H
     MOV TL1,#46H ;频率产生的时间,2.49ms
     SETB EA  ;CPU开总中断
     SETB TR1  ;启动定时/计数器T1
     CLR P1.0  ;产生一个低电平,实际上是从P1.0口产生频率
     SETB ET1  ;开定时/计数器T1溢出中断
LOOP:AJMP LOOP  ;无限循环

;定时/计数器T1的中断服务子程序
TIMER1:CPL P1.0  ;产生一个低电平,一个高电平和一个低电平形成一个周期。
       MOV TH1,#0F6H
       MOV TL1,#46H  ;重置频率产生时间,重新初始化
  RETI  ;中断返回
END

⌨️ 快捷键说明

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