51微控制器流水燈電路以及C程式碼
流水燈是51微控制器的入門級實驗,以下是其電路圖以及C程式碼
流水燈proteus電路圖
此圖發光二極體採用 共陽極式連線
流水燈C程式碼
#include<reg51.h>
#define TIME 1
//巨集定義秒數,方便更改間隔時間
void delaySec(unsigned char n);
void Movinglight();
unsigned char code MovinglightArray[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char i,n = 1;
int main()
{
Movinglight();
return 0;
}
void Movinglight()
{
while(1)
{
for(i = 0;i < 8;i++)
P1 = MovinglightArray[i];
delaySec(TIME);
}
}
void delaySec(unsigned char n)
{
unsigned int i,j,l;
for(l = 0;l < n;l++)
for(i = 0;1000;i++)
for(j = 0;j < 114;j++);
}/*當n為1時,誤差約0.001s*/
授人以魚不如授人以漁,在此,筆者覺得應該給大家簡單剖析一下以上的程式碼,以方便初學者更加容易更改和理解程式碼。
我看程式碼習慣從主函式開始,相信大家大多都是這樣的吧?
進入主函式:
1,呼叫Movinglight函式
進入Movinglight函式:
1,呼叫while函式,1代表死迴圈
2,for迴圈,依次給P1口賦值
初學者一般看不懂0x 加 數字,其實0x 加 數字的意思,0x就是表示後兩位是16進位制數。
但是微控制器處理是按照二進位制處理資料的。
所以我們把上述例子轉化為位元組(即八個二進位制位)。
例如,0xfe = 1111 1110;0xfd = 1111 1101。
不要糾結0xfe或者0xfd的,對應微控制器來說,P1口的值不重要,這個值包含的位才是控制微控制器的關鍵所在,微控制器只在意它所代表的二進位制數的位是0還是1。
根據電路圖,P1.7對應二進位制數的最高位,P1.0對應二進位制數的最低位。
拿0xfe舉例大家就能更好地理解了。
0xfe = 1111 1110。
分解開來實際上是:
P1.0 = 0
P1.1 = 1
P1.2 = 1
P1.3 = 1
P1.4 = 1
P1.5 = 1
P1.6 = 1
P1.7 = 1
最低位為0,其餘為均為1。
那麼0和1有什麼含義?
以本實驗為例,在微控制器通電的情況下:
P1.0 = 0 表示這個引腳處為低電平。
其餘引腳處則是高電平。
那什麼是高低電平呢?
說白了就是高低電勢。
其實我認為說成高低電勢更容易為廣大讀者理解。
高低電平是相對的,比如5V相對於0V 是高電平,但是相對於10V 又是低電平。
但是圈子裡的所有書都是說電平的。
一般情況下,微控制器是5V和0V。
一端高電平,一端低電平才能形成電壓,發光二極體才能點亮。兩邊都是高電平或者兩邊都是低電平發光二極體都不能被點亮。
通常情況下,通電情況下微控制器引腳預設為高電平。
由於發光二極體正極連線公共正電壓源,所以只有位為0時,燈才會亮。
以上內容如果有什麼謬誤,敬請指正。
相關文章
- 51微控制器實現流水燈
- 一個51程式設計和模擬——流水燈程式設計
- 微控制器三個引腳控制16路流水燈
- 51微控制器入門:LED燈控制(01)
- 基於STC51微控制器的霓虹燈
- 1、51微控制器實現LED燈的閃爍
- C51微控制器——紅外遙控 驅動程式
- 51微控制器mcp4728驅動程式原始碼原始碼
- 基於51微控制器的交通燈Proteus模擬設計
- 簡單的51微控制器多工作業系統(C51)作業系統
- 51微控制器串列埠交通燈protues模擬交通燈串列埠控制系統交通燈管制東西南北管制串列埠
- 流水燈實現
- 51微控制器入門:數碼管(3)
- 輕鬆玩轉51微控制器C語言pdfC語言
- 51微控制器學習歷程(二)快速入門51微控制器
- 51微控制器實現數碼管顯示
- 51微控制器程式框架之矩陣按鍵框架矩陣
- 51微控制器程式框架之組合按鍵框架
- 51微控制器程式下載失敗原因排查
- 微控制器呼吸燈
- 基於51微控制器的小車避障電路實現-PCB下載站
- 51微控制器定時器數碼管顯示定時器
- 51微控制器程式框架之LED閃爍_方法1框架
- 流水燈和蜂鳴器
- 51微控制器紅外接收
- 快速入門51微控制器
- 51微控制器彙編教程
- 基於微控制器的光控路燈設計含程式和模擬圖
- 51微控制器非常簡潔的矩陣掃描程式矩陣
- 51微控制器彙編程式,溫溼度報警專案
- 51微控制器學習跳轉
- 51微控制器序列通訊原理
- 物聯網智慧路燈應用程式碼解析(下)
- 139【畢設課設】基於微控制器音訊放大器聲控燈控制電路設計音訊
- 51微控制器競賽設計44例全部帶proteus模擬+程式
- python、51微控制器、百度ai介面PythonAI
- 基於51微控制器的定時器定時器
- 2020-10-31 51微控制器學習