我想请教一个89S51的小程序 程序段是这样的
#include
#include
sbit sw1=P0^0;
sbit sw2=P0^1;
sbit LED=P1.0;
unsigned char i,j;
void Delay()
{
for(i=0;i<300;i++)
for(j=0;j<300;j++);
}
void shining()
{
while(sw1==0)
{
LED=0;
Delay();
LED=1;
Delay();
}
}
void main()
{
P1=0xFF;
P2=0xFF;
while()
{
if(sw1=0) shining()
if(sw2=0) LED=1
}
}
我刚自学C51C语言不到一个星期 这个是我看过一些程序后自己编的一点小程序
我不知道中间存在多少错误,小弟太菜,望各位大哥能帮忙纠正错误。
最后两条忘了加";"号了。。。。
新手写程序 实在习惯不好
不好意识啊
最后void main
{...
...
...
if(sw1==0) shining();
if(sw2==0) LED=1
}
}
兄弟,你写的这个程序只是适合于学校吧,如果你确定需要写8051系列的城市,你首先需要确定你的单片机的型号
sorry,我没有看清楚,是89S51,ATMEL,
unsigned char i,j;
void Delay()
{
for(i=0;i <300;i++)
for(j=0;j <300;j++);
}
// i, j 能到300?
// 老兄在开玩笑吧
同上楼!!!
unsigned char是八位的 只能到256吧?
void Delay()
{
for(i=0;i <300;i++)
for(j=0;j <300;j++);
}
///////////////////////////////////延时函数要带参数比较合适,方便改变延时时间。
还有有些完成任务的函数带返回值比较好,易于形成链式调用,有比较好的程序风格。
初学找一份高手的程序来看,在无形中就会提高了。
呵呵 ~~问题找到了 是char的问题
我换过int后 程序不出现错误
上KEIL调试
不出错误
但用学习机模拟
发现没有现象,后来才找出来 原来是那个keil里还有一个文件的属性要改过
就是创建好工程后,里面的头一个文件属性中的DEBUG里右上的那个USE属性要改过
还有一个关于频率的一个地方要改过的
呵呵 写一下自己发现的错误好给以后学习的人能更容易找到错误