9种单片机常用的软件架构
#include<reg51.h>//包含51系列单片机的寄存器定义//延时函数,用于产生一定的延迟voiddelay(unsignedintcount){unsignedinti;while(count--){for(i=0;i<120;i++){}//空循环,用于产生延迟}}voidmain(){//初始设置P1端口为输出模式,用于控制LEDP1=0xFF;//将P1端口...
51单片机精确延时函数集锦
voiddelay1s(void){unsignedcharh,i,j,k;for(h=5;h>0;h--)for(i=4;i>0;i--)for(j=116;j>0;j--)for(k=214;k>0;k--);}50ms延时子程序(12MHZ)voiddelay_50us(uint16t){uint8j;for(;t>0;t--)for(j=6245;j>0;j--);}200ms延时子程序(12MHZ)...
STC12延时函数的探究
应该是8*1*(1/12)=8/12根据程序分析猜想t=1时这个延时函数应该为1us最为合理。用示波器测试过执行一个delay(5000)大约5.8ms。51执行一个delay(5000)大约40064us嗯,用示波器测得那个IO口的频率变化为85.47HZ,那么一个delay(5000)就是(1/85.47)/2*1000=5850us这里的t设的uint型,有误差,加上LED=1...
51单片机的软件延时
typedefunsignedintINT16U;voiddelay_ms(INT16Ums)//INT16U等价于unsignedintINT16Ui;do{i=MAIN_Fosc/9600;while(--i);//96Tperloop}while(--ms);//--msms=ms-1//5us延时函数,自动适应主时钟#defineMAIN_Fosc11059200UL//定义主时钟HZvoiddelay5us()#...
用C51编写单片机延时函数
参考了51单片机KeilC延时程序的简单研究后,我们可知道,在KeilC中获得最为准确的延时函数将是voiddelay(unsignedchart){while(--t);}反汇编代码如下:执行DJNZ指令需要2个机器周期,RET指令同样需要2个机器周期,根据输入t,在不计算调用delay()所需时间的情况下,具体时间延时如下:...