能给我一个带参数的吗 谢谢了
追答改下不难吧;简单的就这样改吧
void delay(unsigned char c)
{
unsigned char a,b,d;
for(d=c;d>0;d--)
{
for(b=129;b>0;b--)
for(a=45;a>0;a--);
}
}
什么 是 CTC
追答就是定时器啊
非常准确
必须会用
stc12c5a60s2单片机 延时函数怎么写 晶振11.0592Mhz 和 12M
1T单片机11.0592MHz:void delay(void) \/\/误差 -0.018084490741us { unsigned char a,b,c;for(c=8;c>0;c--)for(b=197;b>0;b--)for(a=2;a>0;a--);}
求STC12C5A60S2单片机在11.0592M晶振下的延时100us的程序
void Delay100ms()\/\/@11.0592MHz{unsigned char i, j, k;i = 5;j = 52;k = 195;do{do{while (--k);} while (--j);} while (--i);}
为什么单片机晶振实际是11.0592MHz,而不是12MHz
用11.0592晶振的原因是51单片机的定时器导致的,用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的。比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C51...
单片机晶振频率12M与11.0592的区别
9600=(2^SMOD÷32)×((12M\/12)\/(256-TH1))TH1≈249.49 当然11.0592M就要比12m准确多了。波特率越高就越明显!
用c语言为单片机STC12C2052写一段简单的延时程序!
LOOP2:DJNZ 70H,LOOP2 NOP DJNZ 72H,LOOP3 MOV 70H,#48 LOOP4:DJNZ 70H,LOOP4 定时器延时:晶振12MHZ,延时1s,定时器0工作方式为方式1 DELAY1:MOV R7,#0AH ;;晶振12MHZ,延时0.5秒 AJMP DELAY DELAY2:MOV R7,#14H ;;晶振12MHZ,延时1秒 DELAY:CLR EX0 MOV T...
51单片机用11.0592晶振和12MHZ的编程有区别吗
区别不大,但与定时器有关的初值需修改,因都是要求时间准确的场合才用定时器,例如串口异步通信,普通的延时函数有误 差关系不大
晶振为什么选择11.0592MHz?
使用11.0592晶体振动的原因是51单片机定时器引起的。使用51单片机定时器制作波特率发生器时,若使用11.0592Mhz的晶体振动,则定时器设置的值按公式为整数。如果使用12Mhz晶体振荡器,波特率会偏离。例如,如果使用计时器将0XFD取为9600,那么实际的波特率是10000。通常,波特率偏差在4%左右。因此,STC90C...
关于无源晶振 11.0592MHZ
单片机常用的是12M跟11.0592MHZ 。一般情况下,一个机器周期是12个时钟周期,所以用12M时,一个机器周期是1US,好计算,而且速度相对是最高的,当然现在也有更高频率的单片机。而进行通信是,一般选择11.0592M,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到...
51单片机脉冲为什么是11.0592而不是12
51单片机的串口工作方式有4种,方式0、方式2的波特率是固定的,只与单片机的系统晶振频率有关。方式1、方式3波特率是可变的,不止与系统晶振频率有关,还与定时器T1有关。因为51单片机的波特率发生器只能由定时器T1或定时器T2产生,由于我们使用的是STC98C52单片机,是标准51架构的单片机没有T2模块。)...
求各位谁有STC12C5A60S2单片机第二串口的程序
void UartInit(void)\/\/4800bps@11.0592MHz { AUXR &= 0xf7;\/\/波特率不倍速 S2CON = 0x50;\/\/8位数据,可变波特率 BRT = 0xB8;\/\/设定独立波特率发生器重装值 AUXR |= 0x04;\/\/独立波特率发生器时钟为Fosc,即1T AUXR |= 0x10;\/\/启动独立波特率发生器 } 串口2查询方式函数,注意不要开中断...