大二的時候學完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...