点灯大师——Blink的花样玩法
本帖最后由 Hackerpro 于 2016-1-9 08:57 编辑点LED是单片机的基本功,跟人家说你会点LED可能会被高手笑话
不过只要你敢想的话,一个LED也可以很强大
1、单闪、双闪、快闪、慢闪、常亮……每种方式表示一种状态,不错吧
2、摩斯码?晃晃灯
3、……我能想到的,目前就这些了
static const u8 LedTab = {0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};//存放闪灯方式,转成二进制后,0灭1亮,可以自己随意设定
uiDataOne = LedTab;
while(1)
{
for (i = 0; i < 8; i++)
{
if (0 != (uiDataOne & 0x80)) LED(ON);
else LED(OFF);
uiDataOne = uiDataOne << 1;
delay(20);
}
delay(100);//用来间隔两次闪灯过程
}
其实程序是借鉴了HC595的驱动程序,这个demo对spi理解有很大帮助的
红线就是数据端电平
目前设定的控制位数为8个,也可以用用两个16进制数来表示,就可以有更多的花样
我用STM32定时器做的,用定时器去实现闪灯,main只管显示内容
Arduino也可以,不过貌似只能在主程序跑了
页:
[1]