永发信息网

单片机汇编语言怎么计算延时程序的?

答案:3  悬赏:10  手机版
解决时间 2021-11-23 14:42
  • 提问者网友:轮囘Li巡影
  • 2021-11-23 08:19
单片机汇编语言怎么计算延时程序的?
最佳答案
  • 五星知识达人网友:第四晚心情
  • 2021-11-23 09:12
;12M晶振时如下:
DELAY1S:
MOV R2,#10 ;外层延时10*200*0.5ms=1s
DELAY1:
MOV R3,#200 ;次层延时200*0.5ms
DELAY2:
MOV R4,#250 ;内层延时0.5ms
DJNZ R4,$
DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET追问不是都要考虑机器周期吗?有些是2个,有些是1个追答是呀,DJNZ Rn,XXX是两个机器周期,MOV Rn,#XX,是一个机器周期,这个程序是大约1S。
全部回答
  • 1楼网友:愁杀梦里人
  • 2021-11-23 11:11
看晶振频率,与一条指令所需要的周期 12M的晶振,一个机器周期为1us,这样,1秒钟就好算了吧
  • 2楼网友:北方的南先生
  • 2021-11-23 09:32
你可以采用单片机中的定时器/计时器,一般都是8位的,也有16位的,采用中断方式。
8位定时器中断间隔的计算:1/晶振频率x256,比如单片机采用1M频率的晶振,1/1000000x256,那么这个定时器中断2次间的间隔时间为256us(微秒)。
你只要在中断程序中用个寄存器计数,每+1就是256us,1秒约为3906个中断间隔
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯