2018年5月8日 星期二

8051 (1) 單向跑馬燈。(Shift版本)


玩過 Arduino後再回頭寫8051,感覺Arduino人性化非常多,而且我手上這組8051,不是開發板,只能玩數位訊號,並沒有加AD轉換器,因為功能有限,就簡單寫幾篇囉。

上面這張板子是跟同事借的,單純只有I/O,而且這Layout有問題,怎麼I/O是沒規則的亂跳呢??

最大的好處是這張有ISP轉USB,這樣燒錄就很方便了!!

這篇就先來寫個最簡單的跑馬燈吧!!!

因為我這張8051最好是用低電位觸發,所以我都寫成低電為觸發囉。

就這樣,慢慢依序亮滅亮滅。

程式如下 :


#include "reg51.h"

unsigned int i;
unsigned char count=0; //計數器預設0。
void main()
{
while(1)   //Arduino的Loop,無限迴圈。
{
  P1=~(0X01<<count); //P1埠(00000001),P1.0為HIGH,"~"反向低電位觸發,位移1位。
                                      
for(i=0;i<20000;i++);//延遲。
count++;//每次延遲後位移+1。
if(count>=5){//如果位移達5次清除計數器。
count=0;
    }
  }
}

沒難度,超簡單跑馬燈完成!!

如果你要0X01、0X02、0X04、0X08..........輪者亮也可以,不過這樣的程式會很長,用位移是最理想的。



沒有留言:

張貼留言

8051 (6) 紅外線避障模組控制LED七段顯示器。

這篇要做的Project就是感測器測到訊號時,LED七段顯示器會開始計算偵測次數, 到第5次時會讓紅色LED燈發光。 程式如下: #include <reg52.h> unsigned char seg[5]={0xf9,...