以下的错误实在纳闷,求赐教!谢谢啦
#define uchar unsigned char;
void delay02s(void);
void main()
{
while(1)
{
p1^0=0;
delay02s();
p1^0=1;
delay02s();
}
}
void delay02s(void) //延时0.2秒子程序
{
uchar i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
像你这样写程序,这风格太乱了,还有你直接就用P1^0这样应该不行吧,4L讲的就不错,一般要使用某个端口总线中的一个引脚的话用位定义sbit LED = P1^0;在没用到的引脚不要去占用他,很多场合都需要利用串转并的芯片来节省51的引脚资源的。建议你看宋雪松老师的《手把手教你学51单片机》,想效果更好的话在买书,不要光靠PDF的电子书,纸质的书可以在上面写下你的理解,这样效果更好些。我也是菜鸟,大家可以互相学习哈
uchar 定义时多了一个分号
#include<reg51.h>
#define unsigned char uchar ;
void delay02s(void);
void main()
{
while(1)
{
P1^0=0;
delay02s();
P1^0=1;
delay02s();
}
}
void delay02s(void) //延时0.2秒子程序
{
uchar i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
看你的程序风格,应该是初学者,建议你这样写代码,对你以后有好处,
#incloude"reg52.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
sbit LED = P1^0;
void Delay200ms() //@11.0592MHz
{
uint8 i, j, k;
_nop_();
i = 2;
j = 103;
k = 147;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(void)
{
while(1)
{
LED = 0;
Delay_200ms();
LED = 1;
Delay_200ms();
}
}
不明白,可追问
头文件应该是#include"reg52.h",不好意思打错了
嗯嗯,是呢!
嗯嗯,谢谢提醒,添了句sbit L=p1^0;果然好了