永发信息网

哪位大虾帮帮我用AT89C51单片机控制8个Led的流水灯的单片机程序 希望是能够仿真运行的啊!急求

答案:3  悬赏:10  手机版
解决时间 2021-03-29 17:25
  • 提问者网友:情歌越听越心酸
  • 2021-03-29 02:06
哪位大虾帮帮我用AT89C51单片机控制8个Led的流水灯的单片机程序 希望是能够仿真运行的啊!急求
最佳答案
  • 五星知识达人网友:神的生死簿
  • 2021-03-29 03:20
你的LED用错模型了,要用LED-RED 那几个后面带颜色的。
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar i,j;
void delay(uint ms)
{
uchar k;
while(ms--)
for(k=0;k<123;k++);
}
void main()
{
while(1)
{
i=0xfe;
for(j=0;j<7;j++)
{
P1=i;
i=_crol_(i,1);
delay(500);
}

for(j=0;j<7;j++)
{
P1=i;
i=_cror_(i,1);
delay(500);
}

for(j=0;j<8;j++)
{
P1=i;
i=i<<1;
delay(500);
}
i=0x7f;
for(j=0;j<8;j++)
{
P1=i;
i=i>>1;
delay(500);
}
}
}追问有单片机程序的吗?追答这个就是单片机的。
全部回答
  • 1楼网友:十鸦
  • 2021-03-29 04:26
这么简单的代码 不会写 ?追问········
  • 2楼网友:动情书生
  • 2021-03-29 03:41
我也觉得挺简单的,现在手机登的,回去如果记得就给你,还有proteus的仿真
#include
#include
typedef unsigned char uchar;
typedef unsigned int uint;

uchar code LED[]={0xfe,0xfd,0xfb,0xf7,0xdf,0xbf,0x7f,
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,
0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,
0xff};
void delay(uint);
uint i;
void main(){
P1=0xfe;
while(1){
for(i=0;i<24;i++){
P1=LED[i];
delay(300);
}
}
}
void delay(uint ms){
uint i,y;
for(i=0; i< ms; i++)
for(y=113; y>0 ;y--);
}追问你好,如果有时间请加QQ401773203,我还有几个问题想请教你啊,谢谢啦追答你两次说的不一样啊,第一次说还有全部反向点亮,你后面追问没有提到这个了。、
你看看
#include
typedef unsigned char uchar;
typedef unsigned int uint;
/*
* 用总线形式的,也可以用移位实现
*/
uchar code LED1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};
uchar code LED2[]={0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff};
uint i,n=1;
void delay(uint);
void int0() interrupt 0 {
n=0;
}
void int1() interrupt 2 {
n=1;
}
void main(){
P1=0xff;
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
while(1){
for(i=0;i<16;i++){
if(!n) break;
P1=LED1[i];
delay(300);
}
for(i=0;i<8;i++){
if(n) break;
P1=LED2[i];
delay(300);
}
}
}
void delay(uint ms){
uint i,y;
for(i=0; i< ms; i++)
for(y=113; y>0 ;y--);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯