51 定時器掃瞄矩陣鍵盤 數碼管顯示

2021-06-26 19:27:37 字數 1273 閱讀 5634

大二的時候學完51寫的乙個綜合程式。

用定時器中斷掃瞄行,即行已知;

再在主程式中判斷列;

得到的行列值帶入顯示函式display()。

按下鍵顯示,鬆開取消顯示。

涉及原理理解,**邏輯比較混亂,可讀性低。

#includeunsigned char i,j,l,r,add=0,temp;					//注意微控制器的行列對應的引腳                   

unsigned char line_l=,

row_l=; //燈的顯示陣列

unsigned char line_nt=,

row_nt=,

nt_wei=; //數碼管顯示功能陣列

sbit d=p2^6;

sbit w=p2^7;

bit light_on(); //燈開關

void dispaly(); //顯示在燈和數碼管上

void delay_10ms(); //delay

void initialization(); //初始化

void main()

p1=0xff;

} }}/*------------------------------

初始化 中斷配置

------------------------------*/

void initialization()

/*------------------------------

用定時器掃瞄列

------------------------------*/

void scan() interrupt 1

if(add==2)

if(add==3)

if(add==4)

}/*------------------------------

點燈條件

即按著鍵盤時點燈 放開時關燈

------------------------------*/

bit light_on()

/*------------------------------

顯示在燈和數碼管上

------------------------------*/

void dispaly()

} et0=1;

}//delay---------------

void delay_10ms()

定時器動態掃瞄數碼管LED矩陣顯示

矩陣led顯示,採用 掃瞄,可以實現多級調亮度,動態掃瞄所有led燈亮度同一,不會出現一組led燈點亮的個數不同導致亮度不同,8 8矩陣的單個led燈閃爍 犧牲了亮度,整體亮度會下降乙個級別,但是如果io口的驅動能力比較好的的話是不影響的 掃瞄思路 第一級掃瞄位掃瞄 一段數碼管或者一行led 每個燈...

矩陣鍵盤 數碼管

在沒有數字顯示的開始,順序為矩陣鍵盤後,依次顯示的數碼管0 f,6同時數字控制靜態展示。數字控制和矩陣式鍵盤 首先關閉全部的數碼管的段選不讓數碼管顯示不論什麼數字。然後位選中全部的數碼管,接下來僅僅須要選中全部的數碼管,以後的操作的僅僅須要送段選資料即可了,接著進入while 大迴圈不停的掃瞄鍵盤是...

定時器數碼管時鐘

mai.c handlebars include system.h include key.h extern uchar flag 1ms 在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。void main void 程式的主函式 在這裡插入 片key.c include key.h...