中易网

定时器做双向流水灯问题

答案:2  悬赏:30  
解决时间 2021-03-06 09:34
#include
#include
#define uint unsigned int
#define uchar unsigned char
uint x,num,i;
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar a;
void main()
{ i=0;
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{ P0=table[i];
if(num==4)
{ num=0;
i++;
if(i==8)
{i=0;}
}

}
}
void ex0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
我只能做单向的 谁能帮我改改做个双向的给10分
最佳答案
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
你为什么不在这个数组里头再多写一点数据呢?
既然你知道采取查表法来完成单向流水灯,那么你就一定知道查表法的原理,所以你只需在这数组里头继续写0xbf,0xdf,0xef,……,0xfe,这样数组里头的数据就可以完成流过去再流回来了。
最后把if(i==8)改成if(i==15)就OK了
全部回答
抛开单片的东西,你得这段代码 if((kk<161)&&(kk%20==0)) { p1=light[num1]; //这种方法不行,虽然灯大致上 num1++; //在流水,但其他等也会跳着亮。怎么回事呢? if(num1==8)num1=0; if(kk>160)kk=0; } if((kk<161)&&(kk%20==0))这句有问题,判断条件逻辑错了,20以内恒为真,
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问立参是什么中药?哪有卖的?谢谢
七年级政治 为什么说每个人的生命都是有价值
江格勒斯乡家禽养殖销售协会地址在哪,我要去
我打开PS不能新建文档了,图片也打不开,什么
那明净的夜晚,湖面水平如镜,连星星的倒影也不
最有毅力的动物是哪位动物啊?最有野性的又是
乙酰氯做反应,该如何预处理
金声琴行在什么地方啊,我要过去处理事情
槐泗镇聚福社区妇女维权站地址在什么地方,想
天外飞仙是哪部小说中的武功?
因为___,所以激动得流下了热泪
磨砂东西粘手如何清洗
张坪怎么去啊,有知道地址的么
一个锦囊上有个帽子一个慢有什么成语
怎么用手上的玉石珠子编毛衣链
推荐资讯
创维酷开电视酷K软件在哪下载!要具体地址
英特奇E9005的九点连线密码锁怎么解?
卫生纸288段什么意思
关于网页设计在互联网行业的发展方向
列王的纷争银币是干什么的
华联便利店(水上段)在哪里啊,我有事要去这个
顺雨浴池在什么地方啊,我要过去处理事情
在京东买了一个东西货到付款,不想要了怎么办
DNF各NPC台词?
1935年农历六月八日换算公历是几月几日?
广瑞家具灯饰窗帘城在什么地方啊,我要过去处
我现在上初中,发质不好,枯,侧面看头又有些
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?