永发信息网

51单片机,让8个led从头亮到尾再从尾亮到头,有没有更简单的方法呢。

答案:6  悬赏:30  手机版
解决时间 2021-11-07 19:43
51单片机,让8个led从头亮到尾再从尾亮到头,有没有更简单的方法呢。
最佳答案
void main (void)
{
unsigned int i, j = 0;
unsign char mask = 1;

while (1)
{
P1 = ~mask;
for(i=0;i<2000;i++);
P1 = 0xff;
for(i=0;i<2000;i++);
if (!j)
{
if (mask == 0x80)
j = 1;
else
mask <<= 1;
}
else
{
if (mask == 0x01)
j = 0;
else
mask >>= 1;
}
}
}
全部回答
是不是下面这个最简单:
#include
#include

void main (void)
{
unsigned char mask = 1, j = 0;
unsigned int i;

while (1) {
if (j < 7) mask = _crol_(mask, 1);
else mask = _cror_(mask, 1);

P1 = ~mask; for(i = 0; i < 30000; i++);
P1 = 0xff; // for(i = 0; i < 10000; i++);

j++;
j = j % 14;
}
}
#include
//这里既然用到每个P1口,就不用sbit每个P1口了,实可以对P1口直接赋值的。。
int delay(int a)
{
int b,c;
for(b=0;b for(c=0;c }//延时函数

main()
{
int d;
P1=0;//令P1口输出0,灯全不亮。
delay(100);//延时一下
P1=0x01;//延时后,让P1的第一个灯亮。这也是下面程序循环移动的条件,不然P1=0,移位就没用了。

while(1)//让灯循环跑起来,即进去死循环。
{
for(d=0;d<7;d++)
{
delay(100);
P1=P1<<1;//此时P1为00000001,开始循环左移动7次,最终为10000000
}

for(d=0;d<7;d++)
{
delay(100);
P1=P1>>1;//此时P1为10000000,开始循环右移动7次,最终为00000001

}
}
}

刚刚用我的学习板下载了HEX,虽然我的是P0口输出,但实验结果符合您的要求,现在改成P1口,应该OK。如果你硬件没描述错的话,你把上述程序灌到单片机看看。另外请注意我delay函数的安排,有的时候你出不来自己想要的效果,很可能是把延时函数安排错位置了。如有不懂,请继续咨询我。
辛苦完成,希望采纳。
#include
void delay1s()
{
unsigned char i;
TMOD=0x00;
for(i=0;i<0xc8;i++)
{
TH1=0x63;
TL1=0x18;
TR1=1;
while(!TF1);
TF1=0;
}
}
void main()
{
unsigned char led[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
unsigned char j;
TMOD=0x00;
while(1)
{

for(j=0;j<16;j++)
{

P0=led[j];
delay1s();

}
}
}
想要灯怎么亮改括号里的数组就可以了,希望可以帮到你
左移右移
我比较喜欢用" 循环 + 移位" , 应该还有更简单的,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
防水卷材阻根型与普通型有什么区别
智能电视MSD6A828与4核ARM Cortex-A9 处理器
国产胆机换进口电子管的玩法,有没有人玩过
问一下陕西广播电台,FM101.1是什么电台。有
不安于世是什么意思
库车县阿克吾斯塘供电营业厅地址在什么地方,
他是做夜宵的,一个人干,这两天不舒服从来不
“以近知远,以一知万,以微知明,此之谓也。
4-0=4,9-1=8,16-4=12,25-9=16,是什么规律
三星s6为什么不能下北京(信誉)赛车
锦州到底有没有凌钢啊 谁再那干过啊 谢谢
老蜂巢蜜是什么颜色的
商丘市示范区华商大道南东西路叫啥路?
挟字五笔怎么打
热水达到多少度才会对人体产生烫伤效果
推荐资讯
千人掌刚种时怎么根不坏
xxxtube99
营山哪里有掏耳朵的
86*86电盒的能配86*88的插座吗
如何在PKPM中导出如下的荷载,弯矩,剪力线,
西安市太华北路营业所地址在什么地方,想过去
我这两年不停地长胖从60公斤到78公斤了怎么办
型号为CEFR/SC和CEHR/SA的两种电缆有
求2013~2015摇滚歌曲 一定要好听 很嗨的
由字加页字怎么读
长沙牛耳教育有哪些课程,好不好?
为什么我买的短袖是 非直接接触皮肤的产品?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?