单片机8位流水灯 代码哪里错了 求达人指点!!

作者&投稿:贡世 (若有异议请与网页底部的电邮联系)
~ #include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar a;
void delay(uint);
void main()
{
a=0xfe;
P0=a;
while(1)
{
a=_crol_ (a,1);
delay(50);
P0=a;
}
}
void delay(uint x)
{
uint c,d;
for(c=x;c>0;c--)
for(d=1000;d>0;d--);
}
//你试试这个程序行不?
//错误一:#define uint unrigned int -----应该是unsigned
//错误二:for 中的;要用英文的,不要用中文的;

程序主要是语法上的错误

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int //unsigned 不是unrigned
#define uchar unsigned char
uchar a;
void delay(uint);
void main() //缺少括号
{
a=0xfe;
P0=a;
while(1)
{
a=_crol_ (a,1);
delay(50);
P0=a;
}
}
void delay(uint x)
{
uint c,d;
for(c=x;c>0;c--) //分号一定要是英文状态下的分号
for(d=1000;d>0;d--);
}

我知道你的意思了,
把你
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar a;
void delay(uint);
void main
{
a=0xfe;
P0=a;
delay(50);
while(1)
{
a=_crol_ (a,1);
P0=a;
delay(50);
}
}
void delay(uint x)
{
uint c,d;
for(c=x;c>0;c--)
for(d=1000;d>0;d--);
}
循环左移的话我建议你不要这么写
while(1)
{
a = (a<<1)|(a>>7);
P0 = a;
delay();
}
你先试试看

#define uchar unsigned char
#define uint unsigned int //你看看你写的什么

void delay(uint x)
{
uint c,d;
for(c=x,c>0,c--)
for(d=1000,d>0,d--);//uint类型最大值貌似为255 你给改成255看看
}
还有声明延时函数的里面写成void delay(uint x)

你的二极管是怎么挂的?共阴还是共阳?
还有,你把delay多加一点看看。

这样看你的程序貌似没什么问题,编译通过了吗?编译器有什么提示?


印江土家族苗族自治县15730579151: 单片机8位流水灯 代码哪里错了 求达人指点!! -
兀有奚阿赛: #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char uchar a; void delay(uint); void main() { a=0xfe; P0=a; while(1) { a=_crol_ (a,1); delay(50); P0=a; } } void delay(uint x) { uint c,d; for(c=x;c>0;c--) for(d=1000;d...

印江土家族苗族自治县15730579151: STC89C52RC单片机8位流水灯C语言程序180秒循环一次,不知道错在哪里! -
兀有奚阿赛: 时间显然是错误的,间隔180秒,那么闪烁延时就应该90秒,你参数100,只有100毫秒.所以时间上需要调整一下,即使你循环5次,200*5,也才1秒.

印江土家族苗族自治县15730579151: 51单片机的流水灯程序.求修改(有错误) -
兀有奚阿赛: 你的程序不是很合理,定时器的值错误,定时器,中断都配置了,但是没用到,可能对这些还不是很了解,给你个程序,是流水灯的,很短,自己去研究下,不明白的地方去查资料,不知道怎么查的话联系我也可以,祝成功. #include "reg52....

印江土家族苗族自治县15730579151: 51单片机我写的流水灯程序,效果是灯亮依次向左传递无限循环,想知道这段代码哪错了. -
兀有奚阿赛: 每次都是第二个灯亮,不流动?是因为你的temp没有保存移位后的值.这样改改: for(i=1;i<8;i++){temp<<=1;P0=temp;delay()}

印江土家族苗族自治县15730579151: 求大神解决51单片机流水灯问题 我写的哪里错了? #include<reg52.h> #include< -
兀有奚阿赛: 错误的地方给你改过来了,你自己对照着看一下,不明白的 可以问我.#include<intrins.h>#include<reg52.h>#define unit unsigned int#define unchar unsigned char unchar zizai; void delayqt(unit); void main() { while(1) { zizai=0xfe; P1=zizai; zizai=_...

印江土家族苗族自治县15730579151: 单片机流水灯这个程序哪里错误了 -
兀有奚阿赛: #define mm unsigend int应该是:#define mm unsigned int

印江土家族苗族自治县15730579151: 自己编写程序,自己编写几种,这里一种单片机流水灯这个程序哪里错误了 -
兀有奚阿赛: #define mm unsigend int 这句错了!应该是:#define mm unsigned int

印江土家族苗族自治县15730579151: 单片机C51,请帮忙,错误在哪,八路流水灯—第一次按下按钮时,只有D1发光;第二次只有D2,查询方式 -
兀有奚阿赛: while(1){ if(key==0) delay(10); if(key==0) {key_num++; 这个延时函数有问题,你的延时的是10是10us.没起到延时的作用.所以你按一下后 这个Key_num的值都已经不知道飞到哪里了.

印江土家族苗族自治县15730579151: 用单片机c语言编流水灯时,总是出现编译错误,请高手指点错误在何处,该如何改 -
兀有奚阿赛: #define uint unsigned int;#define uchar unsigned char; 把这两句后面的分号去掉试试、、应该就好了

印江土家族苗族自治县15730579151: 51单片机点亮LED 流水灯,程序错在哪! -
兀有奚阿赛: 顺序错了.P1=LED[i];delay(500); //延时后再熄灭,不然是看不出来亮了.P1=0xff;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网