如何用单片机设计一个8路的跑马灯?本人急用!!在此表示重谢!

用单片机控制8个LED依次发光,但有一个开关控制,只要按一下开关,就有一个发亮,再按一下,那么下一个LED发亮,依次循环下去。再次表示感谢!用的是51的单片... 用单片机控制8个LED依次发光,但有一个开关控制,只要按一下开关,就有一个发亮,再按一下,那么下一个LED发亮,依次循环下去。再次表示感谢!
用的是51的单片
展开
 我来答
mycnnc
2010-10-19 · 超过22用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:28.3万
展开全部
我也是刚学单片机的,交流下。我没加延时去抖动什么的,用8952。源程序很菜,呵呵。如尺坦果实际使用,在每次检测开关动作前加上0.5S的延时就好游应该可以了友困销
org 0000h
ajmp one
org 0030h

one:mov p0,#0ffh
mov p1,#0ffh

key1:jnb p0.0,next1
ajmp key1
next1:clr p1.0
key2:jnb p0.0,next1
ajmp key2
next2:setb p1.0
clr p1.1
key3:jnb p0.0,next2
ajmp key3
next3:setb p1.1
clr p1.2
key4:jnb p0.0,next3
ajmp key4
next4:setb p1.2
clr p1.3
key5:jnb p0.0,next4
ajmp key5
next5:setb p1.3
clr p1.4
key6:jnb p0.0,next5
ajmp key6
next6:setb p1.4
clr p1.5
key7:jnb p0.0,next6
ajmp key7
next7:setb p1.5
clr p1.6
key8:jnb p0.0,next7
ajmp key8
next8:setb p1.6
clr p1.7
key9:jnb p0.0,next8
ajmp key9
next9:setb p1.7
clr p1.8

ajmp one
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zgx7261663
2010-10-19 · TA获得超过356个赞
知道答主
回答量:98
采纳率:0%
帮助的人:83.5万
展开全部
#include <reg51.h>
#include <intrins.h>
unsigned char scan_key();
void proc_key(unsigned char key_v);
void delayms(unsigned char ms);
sbit K1 = P3^4;
sbit K2 = P3^5;
char code SST516[3] _at_ 0x003b;
main()

{
unsigned char key_s,key_v;
key_v = 0x03;
P1 = 0xfe;
while(1)
{
key_s = scan_key();
if(key_s != key_v)
{
delayms(10);
key_s = scan_key();
if(key_s != key_v)
{
key_v = key_s;
proc_key(key_v);
}
}
}
}
unsigned char scan_key()
{
unsigned char key_s;
key_s = 0x00;
key_s |= K2;
key_s <<= 1;
key_s |= K1;
return key_s;
}
void proc_key(unsigned char key_v)
{
if((key_v & 0x01) == 0)
{
P1 = _cror_(P1,1);
}
else if((key_v & 0x02) == 0)
{
P1 = _crol_(P1, 1);
}
}
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
P1接8路跑灯,P3.4接按键,为搭歼薯右移,P3.5可以接另一改哗个按键,为左移知者,你试试,不一定对。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式