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;...
unsignedchardata= 0; ﻩ//初始化串口 ﻩuart_init(); ﻩSPI_Init(); printf("\n###SPITEST!###\n"); while(1) { ﻩﻩReset_MCP2515(); ﻩDelay_Ms(10); ﻩBit_Modify_MCP2515(0x0f,0xe0,0x40); ﻩ} } Mcp2515、c文件...
定义一个延时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=[(延时值...
2.观察这个延时程序你可以发现,总循环次数是ms*110次,就像上面说的如果循环一次耗时1毫秒,如果你想达到你延时某段时长的目的,只能由传入的ms决定了。ms越大延时越久。3.关于这段代码,其中的 for(j=110;j--;j>0); 运行时正常的,但是部分就没有意义了。要么改成 for(j=110;j--;);,...
什么编译工具?什么语言?好像是C语言,如果你没有typedef或者define CHAR这个类型的话,就会出错,因为是 char或非CHAR,小写非大写。
因为形参变量类型不同,UINT需要占用两个8位(16位)内存空间,而 51单片机 只能进行8位运行,对于16位的数没有直接可用的指令,需要一段不小的程序来处理,所以花费时间就长了。
include <reg52.h> define uchar unsigned char //宏定义 define uint unsigned int void delay_50ms(uint t){ uint j;for(;t>0;t--)for(j=6245;j>0;j--);} //延时函数 void main(){ uchar i,key;i=0; //【初始化i 】while(1){ P3=0Xff; //这是为了定位停下就是遇...
关于下面延时子程序说法正确的是 void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } }A.变量a, b为局部变量B.无符号整型变量c为形式参数C.无符号整型变量c具体值由调用这个延时子程序决定;D.通过执行fo
===voidDelay_nms(unsignedintms);//延时n毫秒bit Busy(void);//判忙voidWaitForEnable(void);//忙等待voidLcdWriteData(unsignedchardata);//写数据unsignedcharLcdReadData(unsignedcharAC);//读某地址的数据voidLcdWriteCommand(unsignedcharcmd, unsignedcharbusy);//写命令unsignedcharLcdReadAC(void);//读当...