您的位置:首頁>正文

「機電一體化」單片機酷炫的燈光

hello大家好, 我是途說, 頭條原創作者, 日常分享機電一體化知識, 工科也能如此有趣。

這兩天跟大家分享了51單片機中按鈕開關和LED發光二極體的使用,

而且昨天那篇文章也給大家分享了發光二極體的有趣用法, 做了一個心形的燈牌, 可以逗女朋友開心, 但是為了大家能便於理解, 小編只是用了幾行特別簡單的程式實現了一些特別簡單的功能。 今天就厲害了, 看了今天的文章的朋友們就已經可以做出不同花樣的燈牌來了, 比如:

怎麼樣, 循序漸進的感覺還不錯吧, 結合前幾篇文章, 大家就已經可以自己動手做一些簡單的小作品來給家人朋友帶來歡樂, 誰說工科男不懂浪滿(`・ω・´)

下面咱們就開始這個項目的實施。

首先, 新建一個資料夾, 創建好protues和keil的工作介面, 如下:

然後是硬體部分, 大家對比下面的清單, 把需要用到的元件添加到元件庫:

添加完了過後就按照自己喜歡的形狀擺出相應的位置, 然後連好線就可以了, 這裡小編為了大家看得清楚, 就沒有弄形狀了:

這樣子咱們的硬體部分就設置好了,

有沒有發現這兩天的專案中硬體圖都挺簡單?

好了, 下面就是軟體部分了:

#include

sbit key=P1^0;

#define uchar unsigned char

#define uint unsigned int

uchar code LED_P0[]=

{

0xFC,0xF9,0xF3,0xE7,0xCF,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xbf,0xcf,0xdf,0xef,0xf7,0xfc,

0xfe,0xfb,0xfa,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfb,0xfa,0xf0,0xe0,0xc0,0x80,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

uchar code LED_P2[]=

{

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xFC,0xF9,0xF3,0xE7,0xCF,0x9f,0x3f,0x7f,

0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xfe,0xfb,0xfa,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfe,0xbf,0xcf,0xdf,0xef,0xf7,0xfc,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfb,0xfa,0xf0,0xe0,0xc0,0x80,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

void Delay( uint t)

{

uchar i;

while( t-- )

for(i=0;i<120;i++);

}

void main()

{

uchar i;

if(key==0)

{

while(1)

{

for(i=0;i<136;i++)

{

P0=LED_P0[i];

P2=LED_P2[i];

Delay( 100);

}

}

}

}

其實這個程式任然很簡單, 主要是為了二極體的閃爍花樣而使用了兩個陣列, 讓程式看起來很多, 其實大家可以跳過陣列直接看主程序, 遇到變數再往回看, 找到相應的變數代入到主程序中來就很容易理解了。

還是那句話, 程式部分知識教給一個思路, 畢竟每個人的創造力都不同, 大家可以發揮想像力設計出屬於自己的風格, 好了今天的專案就到這裡了。

我是途說, 頭條原創作者, 如果您覺得我的文章還有點意思, 就請您多多關注多多評論, 您的支持就是我無限的動力!

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示