永发信息网

51单片机延时程序问题

答案:2  悬赏:60  手机版
解决时间 2021-07-26 08:16
  • 提问者网友:爱了却不能说
  • 2021-07-25 08:38
延时程序中要延时的 时间 怎么算 比方说 100ms、 200ms、 1s等等
最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-07-25 10:09

我以2MS为例说明一下:


单片机的晶振周期为12HZ,则执行一条代码为一个机器周期,为1微妙(uA),所以2MS=10*200(uA),


对R2赋值200(4位二进制数最大值为256,所以只能取到200)即#C8H。再对R2循环20次就实现了2MS延时。至于100ms、 200ms、 1s等等方法类似,只是调整相应的初值。多设置几次循环就行。


程序代码如下:


DELAY:


MOV R1,#0AH ;赋值R1为10次


DELAY1:


MOV R2,#C8H ;赋值R2为200次


DELAY2:


DJNZ R2,$ ;R2自减到0,不到0继续等待


DJNZ R1,DELAY1 ;R2减到0后R1自减1,重新给R2赋初值后继续循环,直到R1到0为止,延时结束


RET

全部回答
  • 1楼网友:往事隔山水
  • 2021-07-25 10:17
看你用汇编还是C
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯