Hackerpro 发表于 2016-1-9 08:52:27

点灯大师——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]
查看完整版本: 点灯大师——Blink的花样玩法