用51单片机设计一个16位的跑马灯 要求通过一个开关控制3种不同的模式 用汇编语言写,三种模式随意

关键是如何通过一个开关控制模式的切换
三种模式是三种循环模式,如果从中断里直接跳出去执行循环指令,那岂不是执行不到中断返回语句了么

一个开关,比如导通了1秒一个模式,3秒一个模式,5秒一个模式。

要么在一定时间内,检测开关导通的次数

我觉得应该弄的直观点,从51上接4个led做指示用,一个灯表示待运行,还有3个灯,亮一个表示模式1,亮两个表示模式2,亮3个表示模式3

开机的时候,待运行灯亮,等待设定模式,这时候开始按按键设定模式,同时待运行灯灭。模式灯随按键操作变化。

模式设定好了,停止按键操作,两秒后待运行灯亮,表示模式设定完毕。这时候长按按键,开始跑马灯。短按按键则返回模式设定。

当开始运行跑马灯的时候,可以设定运行一遍返回,也可以中断返回。

个人想法,不知行不行
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-20
用个存储单元,按下一次计1.按下第二次计2,按下第三次计3。然后判断这单元里的数,根据1、2或3分别转向三 种花样。
第2个回答  2011-12-20
#include<reg51.h>
void delay(unsigned int i);
main()
{
unsigned char a=0xff;

while(1)
{
P2 = a;
delay(1000);
a++;
while(0)
{
P2=a;
delay(1000);
a--;
}

}

}
void delay (unsigned int i)
{
unsigned char j;
for(i;i>0;i--)
for(j=500;j>0;j--);
}
相似回答