📄 delay.asm
字号:
*------------------------------------------------------*
*文件说明:包含2个延时子程序,一个ms级延时,一个us级延时 *
*------------------------------------------------------*
*Delay_ms:毫秒级延时子程序-----------------------------*
*功 能:毫秒级延时子程序, 延时T=500*HX个时钟周期 *
*入 口:HX=T/500 ;(HX的取值范围#!1--#!65535) *
*调用例:LDHX #!1000 ;延时T=500*1000=50000个时钟周期 *
* JSR Delay_ms *
*备 注:在总线频率为f=2.4576MHz时,每周期T=0.4us *
* 最大延时:65535*500*0.4us=13s *
*------------------------------------------------------*
Delay_ms:
LDA #!96 ;2个时钟周期
BSR Delay_us ;490个时钟周期
AIX #-!1 ;2个时钟周期
CPHX #!0 ;3个时钟周期
BNE Delay_ms ;3个时钟周期
RTS ;4个时钟周期(忽略)
*Delay_us:微秒级延时子程序-----------------------------*
*功 能:微秒级延时子程序,延时T=(10+5*A)个时钟周期 *
*入 口:寄存器A=(T-10)/5 (A的取值范围#!1--#!255) *
*备 注:由总线频率计算每个周期时间. *
* 设总线频率为f=2.4576MHz,每个周期为T0=1/f≈0.4us*
* 若用BSR调用:T=10+5*A的来源 *
* LDA(2),BSR(4),循环体(5*A),RTS(4) *
*------------------------------------------------------*
Delay_us:
NOP ;1个时钟周期
NOP ;1个时钟周期
DBNZA Delay_us ;3个时钟周期
RTS ;4个时钟周期
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -