c语言三重循环延时程序

2024-03-03 18:04:42 浏览

不可能的,是不是你的编译有错的啊我改的晶振12M,在KEIL 4.0 里面编译的,为你得出的结果最大也就是40ms,这是软件原因,不可能出现100ms那么大的差距,是你的软件的原因。不信你实际编写一个秒钟,利用原理计算编写一个烧进单片机和利用软件测试的秒程序烧进单片机,你会发现原理计算的程序是正确的

三重循环延时程序

void delay(unsigned int x) //延时 x ms { unsigned int i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } 延时1ms 即为使x=1; 这程序延时约1ms(x=1时用keil测出来约 0.96831272ms,近似1ms),用c语言很难做到准确的1ms。注意晶振为11.0592MHZ的时候用~ 晶振为12MHZ时 把 i=120 近似值1ms

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

5、输入主函数,定义单片机的端口,写入延时函数。

6、中断跳转,使流水灯运行起来。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。