这个其实就是让单片机一直在那里执行空指令,达到延时的效果。延时时间越长,越小的话,延时时间越短..为了防止出现意外,所以特意写成了uint ..也就是无符号的数,,防止给出的参数为负数的话,将会延时很久很久。
定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) // xms代表需要延时的毫秒数 { unsigned int x,y;for(x=xms;x》0;x--)for(y=110;y》0;y--);} 使用:void Delay10us(uchar Ms){ uchar data i;for(;Ms》0;Ms--)for(i=26;i》0;i--);} i=[(延时值...
定义一个函数 delay10ms 形参是无法好整型变量 望采纳哦
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。void delay_ms(unsigned int ms_number) // ms延时函数 (AT89C51 @ 11.0...
void delay voiddelay_ms(uint #include #define uint unsigned int #define uchar unsigned char uint voiddelay(uint voidmain voiddelay(uint voidlefttoright() p2=0xf0;p0=oxof; delay(10); p0=0x00; delay(10); p3=0xof; delay(500); p0=oxf0; delay(10); p0=0x00; delay(10); p3=0xf0;...
2.观察这个延时程序你可以发现,总循环次数是ms*110次,就像上面说的如果循环一次耗时1毫秒,如果你想达到你延时某段时长的目的,只能由传入的ms决定了。ms越大延时越久。3.关于这段代码,其中的 for(j=110;j--;j>0); 运行时正常的,但是部分就没有意义了。要么改成 for(j=110;j--;);,...
你传进来的参数。void DELAY_MS (unsigned int a)。比如你调用它 , DELAY_MS(10) //10就是a。
voidDelay_nms(unsignedintms) { unsignedintx,y;for(x=ms; x>0; x--)for(y=110; y>0; y--); } 实际使用时,上面的所有函数可写在一个C语言文件,然后把相关的定义放在头文件中,主程序只需要把该文件添加进工程,即可调用所有的函数了。头文件一般作如下定义。
void delay(unsigned int count) { unsigned int i,j; for(i=0; i { for(j=0;j<120;j++) } } void main(void) { while(1) { P10=1; delay(800) ; P10=0; delay(800) } } 设单片机系统时钟频率为12MHz,工作于12时钟模式,试编程使P1.2引脚输出周期为5ms的方波。 请为每条语句加上详细的...
同意楼上的说法,不过我还是觉得有三步你可以检查的 第一,如果你的P0口没有接上啦电阻,你换到P2口试试 第二,你检查你仿真的频率设置的是好多啊,一般51单片机你设置12MHZ就可以了啊 第三, 如果还是仿真出来还是全亮你把delay(150);改成delay(500);或者更大试试,...