51單片機結(jié)構(gòu)簡單,架構(gòu)體系完備,學習資料豐富,應用領域廣泛。通過對51單片機的學習,可幫助小白實現(xiàn)快速入門電子設計,理解電路系統(tǒng)工作原理,為高級嵌入式芯片的學習及開發(fā)打下堅實基礎。
本篇描述
1、51+Proteus8.10;
2、學習矩陣鍵盤電路及驅(qū)動;
仿真設計
采用Proteus作為仿真設計工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。
軟件設計
采用Keil作為軟件設計工具。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
+關注
關注
242文章
23578瀏覽量
668182 -
單片機
+關注
關注
6056文章
44799瀏覽量
643618 -
Proteus
+關注
關注
79文章
1692瀏覽量
107798 -
51單片機
+關注
關注
275文章
5707瀏覽量
125650 -
矩陣鍵盤
+關注
關注
7文章
207瀏覽量
31804
原文標題:5051-矩陣鍵盤點亮對應LED
文章出處:【微信號:電子開發(fā)圈,微信公眾號:電子開發(fā)圈】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
51單片機按鍵檢測--獨立按鍵與矩陣鍵盤

51單片機 點亮一個LED LED閃爍

評論