标题:
请教单片机按键顺序点灯的思路
[打印本页]
作者:
风继续吹
时间:
2019-10-11 18:18
标题:
请教单片机按键顺序点灯的思路
请教各位大神,我是新手, 单片机32个IO口中设置3个按键,如先触发第一个按键后29个IO口正向顺序亮灯,间 隔为1秒,等待触发第二个按键后灯正向顺序关灯, 如先触发第二个按键时逆向亮灯,再等待触发第一个按键后逆向关灯。第三个按键为全开和顺序开的选择,请问程序的思路是如何呢?
作者:
xianfajushi
时间:
2019-10-11 22:12
这个简单主循环中搞定,计数29个中分别按8,16,24,29进行判断,再设3个状态变量即可。
作者:
xianfajushi
时间:
2019-10-11 22:20
1569567480_848734.png
(74.34 KB, 下载次数: 26)
下载附件
2019-10-11 22:19 上传
以上16个LED例子可供思路参考。
作者:
xianfajushi
时间:
2019-10-11 22:21
#include "reg51.h"
#include<intrins.h>
void LedXunHuan()
{
unsigned char i = 0, t = 0, Cnt = 0;
while(1)
{
if(!i) P1 = 0xff;
else if(i==9)P1 = 254;
else if(i>8) P1 = _crol_(P1,1); else P1<<=1;//逐个递亮,_crol_(P1,1);单个亮,点亮16个的把其中一个P1改为P2即可.
Cnt=89;
while(Cnt) if(!++t) --Cnt;
if(++i>16)i=0;//if(i++>=8)i=0;if(++i>=9)i=0;等价3式
}
}
void main()
{
LedXunHuan();
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1