單片機課程設(shè)計鍵盤輸入在LED數(shù)碼管上的顯示

上傳人:仙*** 文檔編號:28315680 上傳時間:2021-08-25 格式:DOC 頁數(shù):15 大?。?76.02KB
收藏 版權(quán)申訴 舉報 下載
單片機課程設(shè)計鍵盤輸入在LED數(shù)碼管上的顯示_第1頁
第1頁 / 共15頁
單片機課程設(shè)計鍵盤輸入在LED數(shù)碼管上的顯示_第2頁
第2頁 / 共15頁
單片機課程設(shè)計鍵盤輸入在LED數(shù)碼管上的顯示_第3頁
第3頁 / 共15頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《單片機課程設(shè)計鍵盤輸入在LED數(shù)碼管上的顯示》由會員分享,可在線閱讀,更多相關(guān)《單片機課程設(shè)計鍵盤輸入在LED數(shù)碼管上的顯示(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 課 程 設(shè) 計 課 程 單片機的控制系統(tǒng)課程設(shè)計 題 目 鍵盤輸入在LED數(shù)碼管上的顯示 院 系 電氣信息工程學院 專業(yè)班級 學生姓名 學生學號 指導(dǎo)教師 年 月 日

2、 11 課程設(shè)計任務(wù)書 課程 單片機的控制系統(tǒng)課程設(shè)計 題目 鍵盤輸入在LED數(shù)碼管上的顯示 專業(yè) 姓名 學號 主要內(nèi)容、基本要求、主要參考資料等 主要內(nèi)容: 完成鍵盤輸入在LED數(shù)碼管上的顯示。 基本要求: 1.了解 44 鍵盤的工作原理。 2.熟悉 SPCE061A 單片機控制數(shù)碼管顯示的方法。 3.掌握 44 鍵盤的使用方法。 4.掌握 44 鍵盤控制數(shù)碼管顯示的方法。 參考資料: [1]肖洪兵.跟我學用單片機[J].

3、北京:北京航空航天大學出版社,2002.8 [2]何立民.單片機高級教程第1版[M].北京:北京航空航天大學出版社,2001.6 [3]趙曉安.MCS-51單片機原理及應(yīng)用[M].天津:天津大學出版社,2001.3 [4]李廣第.單片機基礎(chǔ)第1版[M].北京:北京航空航天大學出版社,1999.5 [5]徐惠民.單片微型計算機原理與應(yīng)用[M].北京:北京郵電大學出版社,1996.2 [6] 袁勤勇.嵌入式系統(tǒng)構(gòu)件[M].北京:北京機械工業(yè)出版社,2002. 完成期限 指導(dǎo)教師 專業(yè)負責人

4、 年 月 日 單片機的控制系統(tǒng)課程設(shè)計 目 錄 第1章 設(shè)計的研究背景及目的要求 1 1.1 研究背景 1 1.2 設(shè)計目的 1 1.3 硬件選擇 1 1.4 設(shè)計內(nèi)容 1 第2章 設(shè)計的基本原理及硬件連接方案 2 2.1 4X4鍵盤掃描原理圖 2 2.2 SPCE061A獲取44鍵盤鍵值原理 2 2.3 硬件連接 3 第3章 軟件設(shè)計方案 5 3.1 設(shè)計步驟 5 3.2 設(shè)計程序 6 第4章 調(diào)試結(jié)果與分析 7 4.1 調(diào)試結(jié)果 7 4.2 結(jié)果分析 7 結(jié)論與體會 8 參考文獻 9 附錄 10

5、 第1章 設(shè)計的研究背景及目的要求 1.1 研究背景 用單片機驅(qū)動LED數(shù)碼管有很多方法,按顯示方式可分靜態(tài)顯示和動態(tài)(掃描)顯示;按譯碼方式可分硬件譯碼和軟件譯碼。靜態(tài)顯示數(shù)據(jù)穩(wěn)定,占用很少的CPU時間。動態(tài)顯示需要CPU時刻對顯示器件進行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時間多。LED數(shù)碼管的外圍電路一般需要一個限流電阻和加大驅(qū)動電流的晶體管。 LED數(shù)碼管是由發(fā)光二級管顯示字段組成的顯示器,有“8”字段和“米”字段之分,這種顯示器有共陽極和共陰極兩種。實際上不用驅(qū)動電路即可達到正常亮度,為了可靠性設(shè)計可采用晶體管構(gòu)成驅(qū)動電路。 1.2 設(shè)計目的 在單片機的產(chǎn)品設(shè)計中,人機

6、界面是非常重要的部分,而且隨著系統(tǒng)的日益復(fù)雜,以及人們對產(chǎn)品的人機交互能力的要求不斷提升,常握單片機系統(tǒng)中的人機界面基礎(chǔ)設(shè)計能力成為了學習單片機的基礎(chǔ)課程,而4X4鍵盤的操作和LED數(shù)碼管的動態(tài)顯示是人機界面設(shè)計的基礎(chǔ)內(nèi)容,掌握這些基礎(chǔ)設(shè)計能力,加深對人機界面的認識,同時提高人機界面系統(tǒng)設(shè)計能力。 1.3 硬件選擇 裝有Windows系統(tǒng)和μ’nSP? IDE仿真環(huán)境的PC機一臺,μ’nSP? 十六位單片機實驗箱一個。本設(shè)計用到的實驗箱硬件模塊為:SPCE061A核心及周邊電路模塊(包含32個I/O口)。半導(dǎo)體數(shù)碼管,44鍵盤。做此實驗用51板也可以,因為51板也提供了相應(yīng)的LED模組,因

7、為實驗室里面給我們提供了61板,所以我決定選用SPCE061A單片機實驗箱。 1.4 設(shè)計內(nèi)容 給 44 鍵盤的每個鍵定義一個功能,其中把定義為 0~9 的鍵盤稱為數(shù)字鍵,把定義成 DEL 的鍵稱為刪除鍵,把定義成 ENT 的鍵成為確認鍵,其他鍵稱為保留鍵。如果是數(shù)字鍵按下,把代表數(shù)字顯示在數(shù)碼管上:按鍵按下時,6 位數(shù)碼管靠右邊顯示該鍵的代表數(shù)字;繼續(xù)按鍵時,已經(jīng)顯示在數(shù)碼管上的數(shù)字左移一位,按鍵代表的數(shù)字顯示在最右邊的數(shù)碼管上。 第2章 設(shè)計的基本原理及硬件連接方案 2.1 4X4鍵盤掃描原理圖 鍵盤按其接線方法有:直接式鍵盤、行列式鍵盤(又稱矩陣鍵盤)、串轉(zhuǎn)并鍵盤等;在本設(shè)計

8、中,采用4X4的行列式鍵盤,即鍵盤排列為4行、4列,共16個按鍵。44鍵盤的電路圖如圖 1-3所示,分別定義這16個按鍵盤為KEY1~16。 圖 2-1 44鍵盤電路圖 圖中C1~C4為44鍵盤的列掃描線,L1~L4為44鍵盤的行掃描線。先使行掃描線輸出高電平,然后讀取列掃描線的狀態(tài),得到與按鍵橫向位置對應(yīng)的4位列碼;如果是有鍵被按下時,則對應(yīng)的列掃描線必然會被讀回高電平,如果是無鍵盤按下時,則讀取的列碼必定全是0(低電平)。這也就可以判斷有無按鍵的按下了。 2.2 SPCE061A獲取44鍵盤鍵值原理 單片機與該電路連接時,使用4個端口作為輸出口,接4條行掃描線;使用4個端口作為

9、輸入口,接4條列掃描線。使用SPCE061A的IOA8~15八個端口作44鍵盤的掃描,IOA0~3接行掃描線,IOA4~7接列掃描線。 IOA15 IOA14 IOA13 IOA12 SPCE061A IOA 11 IOA10 IOA9 IOA8 L1 L2 L3 L4 4X4鍵盤 C1 C2 C3 C4 圖 2-2 SPCE061A和44鍵盤電路連接圖 如上圖中,IOA12~IOA15設(shè)置為輸出口,接行掃描線;IOA8~IO

10、A11設(shè)置為帶下拉電阻的輸入口,接列掃描線。按照44鍵盤的工作原理,先只把IOA12輸出高電平,其他都輸出低電平,掃描IOA8到IOA11四個輸入口的值,如果每個輸入口的值還是0;再把IOA13輸出高電平,其他都輸出低電平,掃描IOA8到IOA11四個輸入口的值,如果每個輸入口還沒有檢測到高電平;從IOA14輸出高電平掃描,從IOA15輸出高電平掃描,直到檢測到高電平,保存掃描行值和列碼。 2.3 硬件連接 硬件連接圖如圖 2-3,IOA0~IOA7連接和6位數(shù)碼管的a~g、dp,IOA口的高八位IOA15~IOA8連接44鍵盤的L1~L4、C1~C4,IOB15~IOB12連接數(shù)碼管的位

11、信號1~4,IOB2~IOB1連接數(shù)碼管的位信號5~6,IOB0連接數(shù)碼管的分隔符信號DD。即把JP4、JP5的引腳全部用跳線短接起來,用一根排線連接J28和JP7,注意J27和JP7的連接順序(連接順序為:J27的第0號引腳連接JP7的C4引腳,J27的第7號引腳連接JP7的L1引腳)。 a b c d e f g DP 6位數(shù)碼管 1 2 3 4 5 6 DD IOA0 IOA1 IOA2 IOA3 IOA4 IOA15 IOA5 IOA14 IOA6 IOA13 IOA7 IOA12 SPC

12、E061A IOB15 IOA11 IOB14 IOA10 IOB13 IOA9 IOB12 IOA8 IOB2 IOB1 IOB0 L1 L2 L3 L4 4X4鍵盤 C1 C2 C3 C4 圖 2-3 硬件連接圖 第3章 軟件設(shè)計方案 3.1 設(shè)計步驟 1.建立一個新工程cyd,在工程里新建C語言文件main.c。 2.拷貝并添加頭文件SPCE061A.c和SPCE061A.inc到新建工程cyd。 3.按照程序流程圖編寫程序,如圖3-1所示。 開始HI 初始化系統(tǒng) 取鍵值 確認鍵按下

13、 確認鍵按下標志1 數(shù)字鍵按下且確認鍵沒有按下 當前顯示的數(shù)字左移一位 按鍵代表的數(shù)字顯示在最右邊的數(shù)碼管上 刪除鍵按下且確認鍵沒有按下 當前顯示的數(shù)字右移一位 最左邊的數(shù)碼管顯示0 其他 清看門狗 圖 3-1 主程序流程圖 4. Rebuild All。 5.根據(jù)硬件連接圖連接實驗箱電路。 6.下載程序到實驗箱,運行。 7.觀察實驗箱LED數(shù)碼管的狀態(tài),分析是否和設(shè)計要求相符。 3.2 設(shè)計程序 由于程序過多,如附錄所示。 第4章 調(diào)試結(jié)果與分析 4.1 調(diào)試結(jié)果 給 44 鍵盤的每個鍵定義一個功能,其中把定義為 0~9 的鍵盤稱為數(shù)字鍵,把定義成D

14、EL的鍵稱為刪除鍵,把定義成ENT的鍵成為確認鍵,其他鍵稱為保留鍵。如果是數(shù)字鍵按下,把代表數(shù)字顯示在數(shù)碼管上:按鍵按下時,6位數(shù)碼管靠右邊顯示該鍵的代表數(shù)字;繼續(xù)按鍵時,已經(jīng)顯示在數(shù)碼管上的數(shù)字左移一位,按鍵代表的數(shù)字顯示在最右邊的數(shù)碼管上。如果是刪除鍵按下時,每按一次刪除鍵顯示在最右邊數(shù)字被刪除,其他數(shù)字右移一位,最右邊一位顯示 0,比如在第 5 個數(shù)碼管上顯示“8”,在第 6 個數(shù)碼管上顯示“9”,當按一次刪除鍵時,在第 6 個數(shù)碼管上顯示“8”,第 5 個數(shù)碼管顯示按鍵前第四個數(shù)碼管顯示的內(nèi)容(或者說刪除了9)。 4.2 結(jié)果分析 此設(shè)計驗證了鍵盤輸入在LED數(shù)碼管上的顯示的功能。

15、可能會出現(xiàn)的問題就是在按鍵時候需要注意,當保留鍵按下時,不做任何操作。當按確認鍵時,按任何鍵將不起作用。 結(jié)論與體會 設(shè)計結(jié)論: 1. 設(shè)計中我遇到了按鍵分辨的問題。 2. 我采用的解決方法是自己在紙上記下自己定義的功能。 3. 此次設(shè)計的優(yōu)點是程序簡單,不過缺點是操作繁瑣。很難理清按鍵順序。 4. 我建議能夠簡化操作步驟,使電路圖連接更清晰。操作起來能夠得心應(yīng)手。 心得體會: 單片機是一門非常重視實踐的技術(shù),不能總是看書,但要學習它首先應(yīng)看書,對單片機引腳、內(nèi)部結(jié)構(gòu)、寄存器和原理有一定地了解和感官認識,它的是怎樣工作的,能干些什么?剛開始時,也許你看不明白,但這并不要緊

16、,因為你還缺乏實踐經(jīng)驗?,F(xiàn)在單片機應(yīng)用廣泛,因此各個廠家分別推出了自己的單片機,按內(nèi)部結(jié)構(gòu)體系派系分:51系列、PIC系列、AVR系列、摩托羅拉等等……!因為他們的編程方法和調(diào)試過程以及內(nèi)部指令結(jié)構(gòu)有一定的相似,只要學精通一款就OK了!尤其是用C語言編程,就幾乎不用分什么派系,但是我們要選擇一款有代表性的知識范圍廣,并且入門容易,書籍多。一般來說,MCS-51系列單片機已經(jīng)得到廣泛的普及和應(yīng)用,市場上它的資料也比較多,用的人也很多。 參考文獻 [1]肖洪兵.跟我學用單片機[J].北京:北京航空航天大學出版社,2002.8 [2]何立民.單片機高級教程第1版[M].北京:北京航空航天大

17、學出版社,2001.6 [3]趙曉安.MCS-51單片機原理及應(yīng)用[M].天津:天津大學出版社,2001.3 [4]李廣第.單片機基礎(chǔ)第1版[M].北京:北京航空航天大學出版社,1999.5 [5]徐惠民.單片微型計算機原理與應(yīng)用[M].北京:北京郵電大學出版社,1996.2 [6] 袁勤勇.嵌入式系統(tǒng)構(gòu)件[M].北京:北京機械工業(yè)出版社,2002. 附錄 #include "SPCE061A.h" #include "Dig.h"#include "Key.h" int main(void)int Ent_Flag = 0; unsigned int uiKey;

18、 unsigned int uiData[6] = {1,0,0,0,0,1}; uiData[0] = 0;uiData[5] = 0; Key_Init();DIG_Init(); while(1)uiKey = Key_Get(); switch(uiKey)Case KEY_0: if(Ent_Flag == 0){ uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4]

19、= uiData[5]; uiData[5] = 7; }break;case KEY_1: if(Ent_Flag == 0) { uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 8; }break; case KEY_2: if(Ent_Flag == 0) { uiData[0]

20、= uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 9; }break;case KEY_3: break;case KEY_4: if(Ent_Flag == 0) uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]

21、; uiData[4] = uiData[5]; uiData[5] = 4; } break;case KEY_5: if(Ent_Flag == 0) { uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 5; break;case KEY_6:

22、 if(Ent_Flag == 0) uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 6; break;case KEY_7: break;case KEY_8: if(Ent_Flag == 0) { uiDat

23、a[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 1; break;case KEY_9: if(Ent_Flag == 0) { uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[

24、5] = 2;} break;case KEY_A: if(Ent_Flag == 0) { uiData[0] = uiData[1]; uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 3;} break;case KEY_B: break;case KEY_C: if(Ent_Flag == 0) uiData[5] = uiData[4]; uiDat

25、a[4] = uiData[3]; uiData[3] = uiData[2]; uiData[2] = uiData[1]; uiData[1] = uiData[0]; uiData[0] = 0; break;case KEY_D: if(Ent_Flag == 0) uiData[0] = uiData[1];

26、 uiData[1] = uiData[2]; uiData[2] = uiData[3]; uiData[3] = uiData[4]; uiData[4] = uiData[5]; uiData[5] = 0; break;case KEY_E: break;case KEY_F: Ent_Flag = 1;break; default:br

27、eak; DIG_Set(1,g_Data[uiData[0]]); DIG_Set(2,g_Data[uiData[1]]); DIG_Set(3,g_Data[uiData[2]]); DIG_Set(4,g_Data[uiData[3]]); DIG_Set(5,g_Data[uiData[4]]);

28、 DIG_Set(6,g_Data[uiData[5]]); *P_Watchdog_Clear = 0x0001; } } 課程設(shè)計成績評價表 課程名稱 單片機的控制系統(tǒng)課程設(shè)計 題目名稱 鍵盤輸入在LED數(shù)碼管上的顯示 學生姓名 學號 指導(dǎo)教師姓名 職稱 序號 評價項目 指 標 滿分 評分 1 工作量、工作態(tài)度和出勤率 按期圓滿的完成了規(guī)定的任務(wù),難易程度和工作量符合教學要求,工作努力,遵守紀律,出勤率高,工作作風嚴謹,善于與他人合作。 20 2 課程設(shè)計質(zhì)量 課程設(shè)計選題合理,計算過程簡練準確,分析問題思路清晰,結(jié)構(gòu)嚴謹,文理通順,撰寫規(guī)范,圖表完備正確。 45 3 創(chuàng)新 工作中有創(chuàng)新意識,對前人工作有一些改進或有一定應(yīng)用價值。 5 4 答辯 能正確回答指導(dǎo)教師所提出的問題。 30 總分 評語: 指導(dǎo)教師: 年 月 日

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!