51单片机延时程序问题

延时程序中要延时的 时间 怎么算 比方说 100ms、 200ms、 1s等等

我以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个回答  2013-08-01
看你用汇编还是C
相似回答