51單片機結(jié)構(gòu)簡單,架構(gòu)體系完備,學(xué)習(xí)資料豐富,應(yīng)用領(lǐng)域廣泛。通過對51單片機的學(xué)習(xí),可幫助小白實現(xiàn)快速入門電子設(shè)計,理解電路系統(tǒng)工作原理,為高級嵌入式芯片的學(xué)習(xí)及開發(fā)打下堅實基礎(chǔ)。
本篇描述
1、51+Proteus8.10;
2、學(xué)習(xí)矩陣鍵盤電路及驅(qū)動;
仿真設(shè)計
采用Proteus作為仿真設(shè)計工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。
軟件設(shè)計
采用Keil作為軟件設(shè)計工具。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。
#include#define uchar unsigned char #define uint unsigned int #define KEY P1 uchar uca_LineScan[4]={0xEF,0xDF,0xBF,0x7F}; uchar KeyScan() { uchar Temp=0; uchar ucRow=0,ucLine=0; for(ucLine=0;ucLine<4;ucLine++) { KEY=uca_LineScan[ucLine]; Temp=KEY & 0x0F; if(Temp!=0x0F) { switch(Temp) { case 0x0E: ucRow=10;break; case 0x0D: ucRow=20;break; case 0x0B: ucRow=30;break; case 0x07: ucRow=40;break; default: ucRow=50;break; } break; } } KEY=0x0F; return ucRow+ucLine+1; } void KEY_CTRL(unsigned char KeyCode) { switch(KeyCode) { case 11:P2=0xff;P3=0x7f;break; case 12:P2=0xff;P3=0x3f;break; case 13:P2=0xff;P3=0x1f;break; case 14:P2=0xff;P3=0x0f;break; case 21:P2=0xff;P3=0x07;break; case 22:P2=0xff;P3=0x03;break; case 23:P2=0xff;P3=0x01;break; case 24:P2=0xff;P3=0x00;break; case 31:P3=0x00;P2=0x7f;break; case 32:P3=0x00;P2=0x3f;break; case 33:P3=0x00;P2=0x1f;break; case 34:P3=0x00;P2=0x0f;break; case 41:P3=0x00;P2=0x07;break; case 42:P3=0x00;P2=0x03;break; case 43:P3=0x00;P2=0x01;break; case 44:P3=0x00;P2=0x00;break; default:break; } } void main() { while(1) { KEY_CTRL(KeyScan()); } }
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
240文章
22907瀏覽量
650117 -
單片機
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628369 -
Proteus
+關(guān)注
關(guān)注
78文章
1690瀏覽量
106078 -
51單片機
+關(guān)注
關(guān)注
272文章
5689瀏覽量
122164 -
矩陣鍵盤
+關(guān)注
關(guān)注
7文章
205瀏覽量
31345
原文標題:5051-矩陣鍵盤點亮對應(yīng)LED
文章出處:【微信號:電子開發(fā)圈,微信公眾號:電子開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論