微控制器控制跑馬燈

2021-07-07 07:31:38 字數 1730 閱讀 7402

一、跑馬燈和流水燈的區別 

好多人分不清跑馬燈和流水燈,還以為是同一種狀態,雖然難度等級是一樣的,但是燈的亮滅顯示方式是不一樣的。請看下圖

二、微控制器控制led燈的常用電路接法

弄清楚跑馬燈的顯示狀態後可以開始進行設計了,   在日常的跑馬燈設計電路中led燈一般接為這兩種形式,共電源或共地,也就是通常說的灌電流式和拉電流式

三、電路分析與程式設計

大家可以根據自己實際的電路需要選擇其中一種接法,由於at89s52微控制器io埠不操作時是高電平所以下面我選擇的是共電源接法。

電路分析:當電路輸出高電平[埠為1]led燈滅,當電路輸出低電平[埠為0]led燈亮

大家可以按照自己的思路程式設計,方法不唯一,下面我將介紹3種方法

方法一:不利用演算法,直接使用io控制[可以說是最蠢的方法,但是一樣能實現效果,並且容易理解]

#include

//led輸出埠位定義

sbit led0=p0^0;

sbit led1=p0^1;

sbit led2=p0^2;

sbit led3=p0^3;

sbit led4=p0^4;

sbit led5=p0^5;

sbit led6=p0^6;

sbit led7=p0^7;

//延時函式

void delay(void)

void main()

}方法二:借助陣列對上面程式進行改進,使埠一次性賦值定義

#include

#define uchar unsigned char       

#define uint unsigned int

//定義乙個一維陣列

unsigned char table=;

//延時函式

void delay(void)

void main()}}

方法三:利用函式封裝庫

#include

#include //此為呼叫函式的標頭檔案必須新增

#define uchar unsigned char 

#define uint unsigned int

//延時函式

void delay(void)

void main()

}還有移位運算等其他的方法在這裡就不一一列出,大家可以自己嘗試!

微控制器實驗 跑馬燈

實驗效果 知識點 org 0000h 主程式 main mov a,0feh acc初始化,11111110b loop mov p1,a 將acc的資料傳送到p1口 lcall delay 呼叫延遲子程式 rl a 將acc中的資料左右一位 ljmp loop 回到loop標記處,點亮下一盞燈 d...

51微控制器實現跑馬燈

今天準備重新把課設時自己焊的51微控制器班子拿出來玩一玩。我的板子晶振是12mhz的,led燈只有兩個,分別接了p0.0和p0.1。下面是跑馬燈的實現,p0是乙個8位的數,每個位就代表了它對應的io口的電平輸出,當然因為我的板子設計時led另一端接的vcc而不是gnd,所以另一端,也就是微控制器端需...

51微控制器跑馬燈程式

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 c documents and settings administrator 桌面 脈衝 mai xheng.uv2 project fil...