好文档 - 专业文书写作范文服务资料分享网站

51单片机C语言精确延时程序(超级准)

天下 分享 时间: 加入收藏 我要投稿 点赞

51单片机C语言精密延时程序

程序如下:

void delayms(unsigned char t) {

unsigned char j; unsigned char i; do {

j=3; do {

i=165; do { --i; } while(i!=0);

--j;

}

while(j!=0); --t; }

while(t!=0); }

该程序延时时基为1ms,所以最大延时时间是255ms 下面是反编译的汇编程序

C:0x0031 7E03 MOV R6,#0x03

C:0x0033 7DA5 MOV R5,#0xA5

C:0x0035 DDFE DJNZ R5,C:0035

C:0x0037 DEFA DJNZ R6,C:0033

C:0x0039 DFF6 DJNZ R7,delayms(C:0031)

C:0x003B 22 RET 延时时间计算公式如下:

((R5*2 + 2+1)*R6+2+1)R7

假设R7=1,上式为(165*2+3)*3+2+1 =1002us!!!!!

以上程序使用的晶振是12MHz,如果使用的是其他频率的晶振只需计算出1ms的机器周期

数,代入5*2 + 2+1)*R6+2+1,选择合适的R5,R6即I,j的值就行了。

51单片机C语言精确延时程序(超级准)

51单片机C语言精密延时程序程序如下:voiddelayms(unsignedchart){unsignedcharj;unsignedchari;do{j=3;do{i=165;do
推荐度:
点击下载文档文档为doc格式
0ruhf8dwl65ap1c1kzfj507xn0uyj200qjn
领取福利

微信扫码领取福利

微信扫码分享