求教,环形跑马灯的编程(C语言)

30个跑马灯连接在P0.0到P0.29,顺时针环形排列,输出1亮,0灭。(主频20M)(1)开始全灭,顺时针点亮500MS后熄灭,顺序往下,循环3圈。(2)1,30号灯亮... 30个跑马灯连接在P0.0到P0.29,顺时针环形排列,输出1亮,0灭。(主频20M)
(1)开始全灭,顺时针点亮500MS后熄灭,顺序往下,循环3圈。
(2)1,30号灯亮500MS后熄灭,然后1号灯顺时针依次亮,30号灯逆时针依次亮,循环10圈。
展开
 我来答
478617
推荐于2016-03-31 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:94.3万
展开全部
你CPU的种类是什么都不说,编个毛的程序呀
第一个
P0 = 0x00000000;
int t = 3;
while(t--) //3次循环
{
while(1)
{
delay(500); //延时500毫秒
P0 <<= 1; //点亮下一个灯
P0 |= 1;
if(P0==0x7FFFFFFF) //灯全亮后,全部熄灭
{
P0 = 0x00000000;
break; //跳出小循环
}
}
}
第二个
int d1 = 0x20000000; //30号等亮
int d2 = 0x00000001; //1号等亮
P0=d1|d2;
int t = 10;
while(t--) //循环10次
{
while(1);
{
delay(500); //延时500毫秒
d1 >>= 1; //控制逆时针依次亮
d2 <<=1; //控制顺时针依次亮

P0=d1|d2; //合成输出
if(d1==0) //循环一次结束
{
int d1 = 0x20000000;

int d2 = 0x00000001;
P0=d1|d2;
break;
}
}
}
追问
这道题还有最后一小问,老师说很难:1,30号灯一开始亮,然后1号灯300MS后熄灭顺时针依次亮,30号灯500MS熄灭逆时针依次亮。当顺时针的灯和逆时针的灯碰头的时候(亮同一盏的时候)转变方向,延时时间减少20MS,对撞10圈。         完成了就采纳你的答案,谢谢了!
追答
int d1_M = 15; //延时1最大计数
int d2_M = 25; //延时2最大计数
int d1_m = 0, int d2_m = 0; //计数
int flag; //标示,flag=1时表示有灯移位了
int d2 = 0x20000000;
int d1 = 0x00000001;
P0 = d1 | d2;
int t = 10;
while(t--)
{
while(1)
{
flag = 0;
delay(20); //延时20毫秒
d1_m ++;
d2_m ++;
if(d1_m >= d1_M) //顺时针依次亮延时到达
{
flag = 1;
d1_m = 0; //计数置零
P0 &= ~d1; //关闭原来的灯
d1 = d2_M) //逆时针延时到达
{
flag = 1;
d2_m = 0;
P0 &= ~d2;
d2 >>= 1;
if(d2 == 0x00000000) d2 = 0x20000000;
P0 |= d2;
}
if(d1 == d2 && flag == 1) //两灯相碰
{
int tmp = d2_M; //交换计数
d2_M = d1_M;
d1_M = tmp;
tmp = d1_m;
d1_m = d2_m;
d2_m = tmp;
d1_M--; //最大计数减少1,即减少20毫秒
d2_M--;
break;
}
}
}
乾璺
2014-08-17 · TA获得超过692个赞
知道小有建树答主
回答量:582
采纳率:0%
帮助的人:100万
展开全部
你这要实用的?还是抽象解决就行?
追问
不用使用,是单片机的考试题,能把第二小题解决吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
258369甘世杰
2014-08-17 · TA获得超过129个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:58.7万
展开全部
问题在哪儿
追问
怎么用C语言实现上面2个小问
追答
原题是这样描述的吗,我有点读不懂:顺时针点亮500MS后熄灭,顺序往下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式