1,040
社区成员
发帖
与我相关
我的任务
分享这是我参加朝闻道知识分享大赛的第2篇文章:
功能1:从左至右依次点亮八只led灯
功能2:从右至左依次点亮八只led灯
功能3:按顺序点亮奇数1357的led灯
功能4:按顺序点亮偶数2468的led灯
在仿真电路图中加入按钮等元器件,以实现以下功能
1.按下按键k1,实现功能1➕功能2
2.按下按键k2,实现加速点亮功能3的跑马灯
3.按下按键k3,实现减速点亮功能3的跑马灯
4.按下按键k4,暂停按键,并控制蜂鸣器长鸣


如下图绘制即可

#include"reg51.h"
sbit led=P2^0;
void delay()
{
unsigned char i,j,k;
for(i=0;i<50;i++)
for(j=0;j<20;j++)
for(k=0;k<100;k++);
}
unsigned char LEDdat1[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //1111 1110 //1111 1101/
unsigned char LEDdat2[8]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};
unsigned char LEDdat3[4]={0xFE,0xFB,0xEF,0xBF};
unsigned char LEDdat4[4]={0xFD,0xF7,0xDF,0x7F};
void main()
{
unsigned char n;
while(1)
{
for(n=0;n<8;n++)
{
P2=LEDdat1[n];
delay();
}
for(n=0;n<8;n++)
{
P2=LEDdat2[n];
delay();
}
for(n=0;n<4;n++)
{
P2=LEDdat3[n];
delay();
}
for(n=0;n<4;n++)
{
P2=LEDdat4[n];
delay();
}
}
}
#include <REGX51.H>
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
sbit beep=P2^0;
void delay(unsigned int n)
{
unsigned char i,j,k;
for(i=0;i<n;i++)
for(j=0;j<20;j++)
for(k=0;k<100;k++);
}
unsigned char LEDdat1[18]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};
unsigned char LEDdat2[5]={0xFE,0xFB,0xEF,0xBF,0xFF};
void main()
{
unsigned char n;
IT1=0;
EA=1;
EX1=1;
while(1)
{
if(key1==0)
{
for(n=0;n<18;n++)
{
P1=LEDdat1[n];
delay(50);
}
}
if(key2==0)
{
for(n=0;n<5;n++)
{
P1=LEDdat2[n];
delay(50);
}
}
if(key3==0)
{
for(n=0;n<5;n++)
{
P1=LEDdat2[n];
delay(200);
}
}
}
}
void int1() interrupt 2
{
if(key4==0)
{
beep=0;
while(1);
}
}
1、按下k1:从左至右依次点亮八只led灯,从右至左依次点亮八只led灯。

2、按下k2:加速点亮奇数1357的led灯。

3、按下k3:减速点亮奇数1357的led灯。

4、按下k4:暂停流水灯,蜂鸣器长鸣。

以上为此次帖子所有内容!