4x4鍵盤設計說明書_第1頁
4x4鍵盤設計說明書_第2頁
4x4鍵盤設計說明書_第3頁
4x4鍵盤設計說明書_第4頁
4x4鍵盤設計說明書_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、4x44x4 鍵盤在單片機上的應用鍵盤在單片機上的應用摘 要近年來隨著電子產(chǎn)品的高速發(fā)展 ,單片機作為核心部件的正在不斷深入各個電子產(chǎn)品的控制中,同時帶動電子產(chǎn)品向著小型化、多功能化、智能化、高速化方向發(fā)展。比如,我們平常所使用的電飯煲、電冰箱、空調(diào)、計算器等電子產(chǎn)品都將單片機作為主要的控制器,使產(chǎn)品的控制和結(jié)果都變得簡單化。然而僅是單片機方面知識是不夠的,還應根據(jù)具體硬件結(jié)構(gòu),以及針對具體應用對象特點的軟件結(jié)合,以作完善。在嵌入式 pc 應用系統(tǒng)中,作為人機交互設備的鍵盤,往往采用結(jié)構(gòu)簡單按鍵少的矩陣鍵盤。標準鍵盤雖然能直接與嵌入式 pc 機的 ps/2 接口相連,但是體積大,按鍵多,不能滿

2、足需求,本文提出用一種 at89c52 單片機實現(xiàn)具有標準 ps/2 接口的矩陣鍵盤,具有便捷,實用的特點。關(guān)鍵詞:關(guān)鍵詞:接口,鍵盤,at89c52,lcd1602第 i 頁目 錄摘 要.i1 前言.12 2 總體設計總體設計.22.12.1 設計要求設計要求.22.2 整體方案設計.22.1.1 方案論證.22.1.2 方案比較.33 硬件設計.43.1 at89c51 單片機的功能 .43.2 復位電路的設置.53.3 4x4 鍵盤設計 .63.4 單片機模塊.73.5 lcd1602 模塊 .83.6 整體電路設計.94 軟件設計.115 keil 與 proteus 聯(lián)調(diào) .12結(jié)

3、論.13參考文獻.14附錄 1:電路總圖 .15附錄 2:軟件代碼 .16第 1 頁1 前言隨著社會經(jīng)濟的快速發(fā)展,人們對自動控制要求的地方也越來越多。而在生活和生產(chǎn)的各領域中,凡是有自動控制要求的地方都會有單片機的身影出現(xiàn);從簡單到復雜,從空中到地面,幾乎是凡能想像到的地方都有使用單片的需求?,F(xiàn)在盡管單片機的應用已經(jīng)很普遍,但仍有許多可以用單片機控制而尚未實現(xiàn)的項目,因此,單片機的應用大有想像和拓展空間。單片機的應用有利于產(chǎn)品的小型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強度,提高產(chǎn)品質(zhì)量,改善勞動環(huán)境,減少能源和材料消耗,保證安全等。單片機因其性價比高, 處理能力強, 且抗干擾能

4、力好, 在醫(yī)療器械、機電液控制、數(shù)據(jù)傳輸?shù)雀黝惞た叵到y(tǒng)和設備儀器中得到廣泛應用。一方面, 在實際應用中, 單片機經(jīng)常需要將采集到的數(shù)據(jù)發(fā)送給pc機進行處理或保存等; 另一方面, 工控系統(tǒng)和設備儀器設計, 因環(huán)境或軟硬件資源的限制, 也往往需要不同的通信接口。比如, 很多工控pc機的鍵盤接口因受惡劣環(huán)境不利于鍵盤的使用而處于閑置狀態(tài)。因此, 設計一個具有通用性的4x4鍵盤通信接口既方便pc機進行外設擴展, 又豐富了單片機的接口資源。目前, 單片機協(xié)議進行通信較多的是單片機接收4x4鍵盤設備的數(shù)據(jù), 而以單片機做為鍵盤與pc機通信則較為少見。但是,單片機應用的意義絕不僅限于它的廣闊范圍以及所帶來的

5、經(jīng)濟效益上,更重要的意義還在于:單片機的應用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。從前必須有模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能使用單片機通過軟件編程的方法來實現(xiàn)。這種以軟件取代硬件并提高系統(tǒng)性能的控制系統(tǒng)“軟化”技術(shù),稱之為微控制技術(shù)。微控制技術(shù)是一種全新的概念,是對傳統(tǒng)控制技術(shù)的一次革命。隨著單片機應用的推廣普及,微控制技術(shù)必將不斷發(fā)展、日益完善和更加充實。第 2 頁2 總體設計2.1 設計要求利用 51 單片機設計一 4x4 行列鍵盤,并在 lcd 上顯示鍵值。同時顯示的鍵值為09、ad、#、*、這十六個值。2.2 整體方案設計本設計的整體思路是:利用 4x4 鍵盤,

6、通過 at89c52 單片機接收 4x4 鍵盤的鍵值,并顯示在 lcd1602 上。2.1.1 方案論證設計中采用了三個方案,具體的方案見方案一、方案二和方案三。方案一:普通鍵盤設計方案采用普通的 4x4 鍵盤,通過鍵盤掃描得到鍵值,有單片機控制并顯示在 lcd 上,優(yōu)點是成本低,設計簡單數(shù)字顯示比較直觀,缺點是鍵盤掃描效率不夠且容易出錯。4x4 鍵盤at89c52單片機lcd1602顯示圖 2.1 普通鍵盤整體方案一框圖方案二:數(shù)碼管顯示設計方案采用普通的 4x4 鍵盤,通過鍵盤掃描得到鍵值,由單片機控制并顯示在數(shù)碼管上,優(yōu)點是成本低,設計簡單,鍵盤自動掃描,自動識別,自動編碼,有鍵按下時才

7、發(fā)送數(shù)據(jù),因此減輕了 cpu 的負擔,缺點是數(shù)碼管顯示不直觀。4x4 鍵盤at89c52單片機數(shù)碼管顯示圖 2.2 4x4 鍵盤整體方案二框圖2.1.2 方案比較由于方案一采用的是 4x4 鍵盤,設計需要 cpu 不斷的掃描鍵盤,占用了大量的 cpu 資源,方案二利用 4x4 鍵盤,設計需要 cpu 不斷的掃描鍵盤,占用了大量的 cpu 資源,并且用第 3 頁數(shù)碼管顯示不夠直觀,交互界面不夠好,因此綜合方案一和方案二的優(yōu)點,本設計采用了方案一較好。第 4 頁3 硬件設計3.1 at89c51 單片機的功能 圖 3.1 at89c51單片機因?qū)⑵渲饕M成部分集成在一個芯片上而得名,具體說就把中央

8、處理器cpu(central processing unit)。隨機存儲器 ram(random ac cess memory)。只讀存儲器 rom(read only memory)。中斷系統(tǒng)、定時器計數(shù)器以及 io(input/output)接口電路等主要微型機部件集成在一個芯片上。雖然單片機只是一個芯片,但從它的組成和功能上看,它已經(jīng)具有了計算機系統(tǒng)一樣的屬性。為此,稱它為單片微型計算機 scmc(single chip micro computer),簡稱單片機。同時由于單片機主要應用與控制領域,并用以實現(xiàn)各種測試和控制功能,為了強調(diào)起控制屬性,也可以把單片機稱為微控制器 mcu(mi

9、cro controller unit)。在國際上,“微控制器”的叫法似乎更通用一些,而在我國則比較習慣與“單片機”這一名稱。第 5 頁還有就是單片機在應用時,通常是處于控制系統(tǒng)的核心地位并融入其中,即以嵌入的方式進行使用,為了強調(diào)其嵌入的特點,也常常將單片機稱為嵌入式微控制器emcu(embedded micro controller unit)。在單片機的電路和結(jié)構(gòu)中,有許多嵌入式應用的特點。3.2 復位電路的設置復位電路產(chǎn)生復位信號,復位信號送入rst后還要送至片內(nèi)的施密特觸發(fā)器,由片內(nèi)復位電路在每個機器周器的s5p2時刻對觸發(fā)器輸出采樣信號,然后由內(nèi)部復位電路產(chǎn)生復位操作所要的信號。一

10、般的復位電路可分為上電自動復位和按鍵復位,我們在此選用的是上電復位。上電自動復位原理:rst引腳是復位信號的輸入端,只要高電平的復位信號持續(xù)兩個機器周期以上的有效時間,就可以使單片機上電復位。上電自動復位是通過電容充電實現(xiàn)的,上電瞬間,rst端電位與vcc相同,隨充電電流的減少,rst的電位逐漸下降,直到復位信號無效。按鍵復位在此不在作過多的介紹,其原理和上電復位是相同的。但其采用的是脈沖復位電路和電平復位電路兩種。復位電路和單片機最小系統(tǒng)如下圖3.2所示:圖 3.2 復位電路第 6 頁3.3 4x4 鍵盤設計圖 3.3 4x4 鍵盤行列式鍵盤因為管理程序比較復雜,所以行列式鍵盤采用掃描技術(shù)。

11、常采用的掃描技術(shù)有:掃描法、反轉(zhuǎn)法、狀態(tài)矩陣法等。而本次設計采用線反轉(zhuǎn)法掃描的過程步驟如下:(1)先從 p1 口的高 4 位輸出低電平(列) ,低 4 位輸出高電平(行):即 p1=0 x0f。從 p1口讀取鍵盤狀態(tài)。這時,如低 4 位中只要有一位出現(xiàn)“0” ,說明此行中有鍵按下。各行有鍵按下時,從p1 口讀取的數(shù)值依次是:0eh、0dh、0bh、07h。(2)再從 p1 口的低 4 位輸出低電平(行) ,高 4 位輸出高電平(列):即 p1=0 xf0。從 p1口讀取鍵盤狀態(tài)。這時,如高 4 位中只要有一位出現(xiàn)“0” ,說明此列中有鍵按下。各列有鍵按下時,從p1 口讀取的數(shù)值依次為:e0h、

12、d0h、b0h、70h。(3)將兩次讀取的特征值,根據(jù)圖 3.2 進行組合,得到當前“按鍵的特征碼” 。3.4 單片機模塊stc89c52 單片機是 atmel 公司生產(chǎn)的單片機,51 的內(nèi)核,具有處理能強、運行速度快、功耗低等優(yōu)點。最小系統(tǒng)包括單片機,電源,復位電路。單片機接收 ps2 鍵盤的鍵值,并控第 7 頁制 lcd 的顯示。其系統(tǒng)框圖如下圖所示:接收 4x4 鍵值盤stcat89c2單片機控制 lcd1602顯示電源供電復位電路圖 3.4 單片機控制系統(tǒng)框圖stc89c52 單片機有 4x8 個 io 口,其中 p0 口需外接上拉電阻,因此本次設計采用 p1 口作為 4x4 鍵盤接口

13、,p0 口作為與 lcd1602 的接口,其電路圖如下圖 3.5 所示:圖 3.5 單片機最小系統(tǒng)圖第 8 頁3.5 lcd1602 模塊lcd1602 采用 8 位并行數(shù)據(jù)傳輸,其操作時序如下圖 3.6 所示:圖 3.6 lcd 單片機圖lcd1602 的指令集對應的指令碼如表 3.1 所示碼指 令說 明rsr/wd7 d6d5d4d3d2d1d0清除顯示屏000000000*光標回到原點000000001*進入模式設定00000001i/ds顯示幕 on/off0000001dcb移位000001s/cr/l*功能設定00001dlnf*字發(fā)生器地址設定0001acg設置顯示地址001ad

14、d忙碌標志位 bf00bf顯示數(shù)據(jù)10寫入數(shù)據(jù)讀取數(shù)據(jù)11讀出數(shù)據(jù)i/d i/d=1 表示加 1 i/d=0 表示減 1s s=1 表示顯示幕 on s=0 表示顯示幕 off d d=1 表示顯示幕 on d=0 表示顯示幕 off c c=1 表示光標 on c=0 表示光標 off b b=1 表示閃爍 on b=0 表示閃爍 ons/c s/c=1 表示顯示屏幕移位 s/c=0 光標移位r/l r/l=1 表示右移 r/l=0 表示右左移 d/l d/l=1 表示 8 位 d/l=4 表示 4 位 f f=1 表示 5x10 點矩陣 f=0 表示 5x7 點矩陣 n n=1 表示 2

15、行顯示行 n=0 表示 1 行顯示行第 9 頁 bf bf=1:內(nèi)部正在動作 bf=0:可接受指令或數(shù)據(jù)碼 5表 3.1 指令碼lcd1602 接口由 8 位數(shù)據(jù)線,電源地電源正,液晶顯示偏壓信號(vl) ,數(shù)據(jù)命令選擇端(rs) ,讀寫選擇端(rw)組成。其接口信號說明如下圖 3.7 所示:圖 3.7 接口信號說明圖可以在 1602 的液晶顯示偏壓信號端接一個可變電阻,調(diào)節(jié)顯示亮度,初始狀態(tài)時,調(diào)至 1602 上面一排顯示 12 個黑塊為止,lcd1602 電路圖如下圖 3.8 所示:圖 3.8 lcd1602 電路圖3.6 整體電路設計最終設計電路如下圖 3.9 所示,4x4 鍵盤有鍵按下

16、就讀出數(shù)據(jù),最終在 lcd1602 液晶顯示器上顯示。第 10 頁圖 3.9 4x4 鍵盤顯示電路第 11 頁4 軟件設計1、主程序設計:首先初始化 io 口和鍵盤、lcd1602,然后接收按鍵的鍵值,并通過 8位并行傳輸方式傳送給 lcd1602 顯示。2、獲取鍵值程序:按照 4x4 鍵盤協(xié)議操作,鍵盤按下時發(fā)送通碼,彈起時發(fā)送斷碼,在單片機中,將接收到的碼字與第二套掃描碼比較,得出鍵值。本次設計共采用 16 個鍵,模擬鍵。3、lcd 顯示程序:首先初始化 lcd1602 端口和寄存器,然后接收單片機傳送的數(shù)據(jù),通過 1602 寫操作時序顯示接收到的數(shù)據(jù)。開始初始化鍵盤、lcd接收鍵值lcd

17、1602上顯示處理鍵值4.1 程序整體設計框圖第 12 頁5 keil 與 proteus 聯(lián)調(diào)在 protues 上進行仿真實驗。首先使用 keilc 將編寫完成的程序編譯生成 hex 文件,將 hex 文件燒錄到兩片單片機中,進行仿真實驗,結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來。圖 5.1 仿真效果圖第 13 頁結(jié) 論本系統(tǒng)采用第二套鍵盤掃描碼,利用 4x4 鍵盤作為輸入,準確度比普通鍵盤高,完成了系統(tǒng)的仿真圖,電路圖和程序設計,實現(xiàn)了系統(tǒng)的功能。本次設計完成后,在效果上能完全達到原先設計的功能。例如,通過按下按鍵“1” ,能將數(shù)值“1”發(fā)送到 lcd 上顯示驅(qū)動

18、程序經(jīng) keil uvision3 編譯,在 at89c52 上單片機通過,該模擬鍵盤接口可以作為一個接口模塊嵌入到其他設備儀器和工程控制系統(tǒng),增加了與pc 機的通信途徑。在應用和測試結(jié)果分析中,該接口模塊具有較高的可靠性與穩(wěn)定性由于時間倉促和我們自身水平有限,本設計在功能上也只是完成了一些基本功能,對于電路的可靠性,穩(wěn)定性等參數(shù)還未做過詳細的測試。仿真中出現(xiàn)的一些問題,也尚未解決。經(jīng)過繁忙而又緊張的課程設計,終于順利的完成了設計任務。雖然在這段時間里每天都那么繁忙,但是在這忙碌的過程中卻得到了許多的收獲。經(jīng)過課程設計,在查閱資料的過程中,學習了基于單片機的 c 語言程序設計,了解了單片機串行

19、通信的基本知識,對于以后的學習和工作都有很大的益處。在學習的過程中,也遇到了一些困難,比如開始的時候,由于發(fā)送端和接收端的通信協(xié)議沒有做好,導致數(shù)據(jù)不能正確的傳輸,在解決問題的過程中,對于通信協(xié)議的實現(xiàn)有了深刻的認識。通過這次課程設計,鍛煉了自己獨立思考的能力。第 14 頁參考文獻參考文獻1 張培仁.基于 c 語言編程 mcs-51 單片機原理與應用m. 北京:清華大學出版社,2003. 2 楊振江、杜鐵軍.流行單片機實用子程序及應用實例m.西安電子科技大學出版社,2002. 3 蔡美琴、張為民.mcs-51 系列單片機系統(tǒng)及其應用(第二版)m. 北京:高等教育出版社,2004.4 蘇家健.單

20、片機原理及應用技術(shù)m. 北京:高等教育出版社,2004.5 c 語譚浩強.言程序設計(第三版)m.北京:清華大學出版社,2005.6 黃惟公.單片機原理與應用技術(shù):西安電子科技大學出版社 20077 張毅剛.mc-51 單片機應用設計(二版):哈爾濱工業(yè)大學出版社 20058 李廣第.單片機基礎.北京:北京航空航天大學出版社9 楊文龍.單片微機原理及應用:西安電子科技大學出版社10 胡漢才.單片機原理及接口技術(shù).北京:清華大學出版第 15 頁附錄附錄 1 1:電路總圖:電路總圖圖 附錄 1 4x4 鍵盤顯示電路總圖第 16 頁附錄附錄 2 2:軟件代碼:軟件代碼1 鍵碼處理程序:#includ

21、e smc1602.hvoid vkeyprocess(unsigned char uckeycode)vwritecmd(0 xc7);switch(uckeycode)case 11:vshowonechar(1);break; /1case 12:vshowonechar(2);break; /2case 13:vshowonechar(3);break; /3case 21:vshowonechar(4);break; /4case 22:vshowonechar(5);break; /5case 23:vshowonechar(6);break; /6case 31:vshowone

22、char(7);break; /7case 32:vshowonechar(8);break; /8case 33:vshowonechar(9);break; /9case 41:vshowonechar(0);break; /0case 14:vshowonechar(a);break; /acase 24:vshowonechar(b);break; /bcase 34:vshowonechar(c);break; /ccase 44:vshowonechar(d);break; /d case 43:vshowonechar(#);break; /#case 42:vshowonech

23、ar(*);break; /*default:break;2 鍵盤掃描子程序:#include 第 17 頁#define scanport p1 /44 鍵盤掃描端口,低 4 位是行線,高 4 位是列線。 /采用逐列掃描的方法,無按鍵時,低 4 位輸出 1,高 4位輸出 0。 /當有按鍵時,高 4 位輸出掃描電位,低 4 位輸入掃描結(jié)果。/*/* *全局變量*unsigned char uca_linescan4=0 xef,0 xdf,0 xbf,0 x7f;/列線掃描電壓,分為第1,2,3,4 根列線 /為低電平,其他為高電平。/*/* *函數(shù)實現(xiàn)* /*unsigned char uc

24、keyscan()unsigned char uctemp=0; /掃描狀態(tài)暫存。unsigned char ucrow=0,ucline=0; /行號,列號。for(ucline=0;ucline4;ucline+)/列掃描scanport=uca_linescanucline; /輸出掃描電位。uctemp=scanport&0 x0f; /輸入掃描電位,并屏蔽高 4 位。if(uctemp!=0 x0f) /判斷該列是否有按鍵按下。switch(uctemp)case 0 x0e: ucrow=10;break; /如果有,則判斷行號。case 0 x0d: ucrow=20;b

25、reak;case 0 x0b: ucrow=30;break;case 0 x07: ucrow=40;break;default: ucrow=50;break;第 18 頁break; /scanport=0 x0f; /恢復 p1 口return ucrow+ucline+1;/返回按鍵編碼。格式為 2 位數(shù),高位為行號,低位為列號。3 驅(qū)動程序:/*#include /#define lcdrs p2_0 /寄存器選擇信號: /0-數(shù)據(jù)寄存器; /1-指令寄存器。#define lcdrw p2_1 /讀寫信號: /1-讀 lcd; /0-寫 lcd。#define lcde p2_2 /片選信號,當輸入下降沿信號時, /執(zhí)行指令或傳送數(shù)據(jù)。#define lcdport p0 /lcd 數(shù)據(jù)接口。/* *延時函數(shù)*/*void vdelay()unsigned int uicount;for(uicount=0;uicount: vwriteda

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論