數字顯示與鍵盤輸入設計課程設計
《數字顯示與鍵盤輸入設計課程設計》由會員分享,可在線閱讀,更多相關《數字顯示與鍵盤輸入設計課程設計(20頁珍藏版)》請在裝配圖網上搜索。
1、武漢理工大學《硬件綜合設計》課程設計說明書 學 號: 0121010340704 課 程 設 計 題 目 數字顯示與鍵盤輸入例程設計 學 院 計算機科學與技術學院 專 業(yè) 計算機科學與技術 班 級 姓 名 指導教師 2013 年 7 月 1 日 目 錄 課程設計說明書 ....................................................................
2、............................. 2 數字顯示與鍵盤輸入設計................................................................................... 3 1.系統(tǒng)描述:........................................................................................................ 3 1.1實驗目的 ...........................................
3、...................................................... 3 1.2實驗設備:............................................................................................... 3 1.3設計要求:............................................................................................... 3 2.設計過程:...............
4、......................................................................................... 3 2.1設計原理:............................................................................................... 3 2.2操作命令:.....................................................................................
5、.......... 5 2.3操作過程:............................................................................................... 8 2.3.1硬件連接:.......................................................................................... 8 2.3.2軟件設計:...................................................
6、....................................... 9 2.3.3設計成功標志:................................................................................. 10 2.4程序設計:.............................................................................................. 10 2.5程序代碼 ...............................
7、................................................................. 10 3.調試過程 ......................................................................................................... 15 3.1程序編譯調試 ........................................................................................ 15 3.2
8、在線編程寫入程序 ................................................................................ 16 3.3實驗結果顯示 ........................................................................................ 16 4.課程設計總結:.........................................................................................
9、...... 17 本科生課程設計成績評定表 ............................................................................. 18 課程設計任務書 學生姓名: 楊星 專業(yè)班級: 計算機1007班 指導教師: 唐祖鍇 工作單位:計算機科學與技術學院 題 目: 數字顯示與鍵盤輸入設計 初始條件: 1. 課程設計使用ZG211硬件綜合實驗平臺(8051單片機),配有課程設計接口芯片和輔助芯片以及器件; 2. ZG211有程序設計集成開發(fā)環(huán)境,程序設計語言為
10、C語言; 3. ZG211硬件綜合實驗平臺使用說明書; 要求完成的主要任務: (包括課程設計工作量及其技術要求,撰寫說明書具體要求) 1. 學習使用ZG211硬件綜合實驗平臺,程序設計集成開發(fā)環(huán)境; 2. 根據課程設計題目,進行需求分析,搞清楚課程設計需要設計需求和需要解決的設計內容。 3. 查閱和學習課程設計題目需要的接口芯片資料,掌握接口芯片的使用方法和編程要領。查閱和學習課程設計題目需要的輔助芯片以及器件資料。 4. 設計接口芯片和輔助芯片以及器件與8051單片機連接硬件電路原理圖。 5. 設計與硬件電路原理圖對應的C語言程序(或8051匯編語言)。給出程序流程圖。在集成開
11、發(fā)環(huán)境中調試程序。給出程序的詳細注釋。能夠解釋使用程序模擬電路時序信號和數據。 6. 撰寫課程設計報告,1)詳細陳述以上的設計過程;2)詳細陳述電路的調試過程。 時間安排: 第17周: 1. 熟悉ZG211硬件綜合實驗平臺,KEILC UVISION2 集成開發(fā)環(huán)境;查閱接口芯片資料,熟悉接口芯片和它的使用方法。 2. 設計硬件電路原理圖,。 第18周: 1. 使用C語言或匯編語言設計和調試接口程序。 2. 撰寫計算機硬件綜合設計報告。 指導教師簽名: 年 月 日 系主任(或責任教師)簽名:
12、 年 月 日 數字顯示與鍵盤輸入設計 1. 系統(tǒng)描述: 1.1實驗目的: 1> 掌握對單片機IO口的操作,及中斷的應用 2> 掌握顯示接口芯片CH451的運用 1.2實驗設備: 1> PC 機一臺 2> ZG-211 單片機系統(tǒng)實驗板一塊 3> 實驗連接線若干 4> 芯片:CH451,89S52 5> 并口編程線一根 6> 配套電源1 個 實驗板實物圖: 1.3設計要求: 1> 能正常操作LED數碼顯示 2> 能通過中斷方式接收按鍵信息 2. 設計過程: 2.1設計原理: 本實驗的顯示接口采用 CH451 芯片。該芯片整合了
13、數碼管顯示驅動和鍵盤掃描控制可以動態(tài)驅動8 位數碼管或者64 位LED,具有BCD 譯碼、閃爍、移位等功能;同時還可以進行64 鍵的鍵盤掃描;芯片內部有多個寄存器控制整個芯片的運行,其中有8 個寄存器存入所要顯示的數字,每個寄存器有8 位,每一位控制一個數碼管其中的一段(1 為點亮,0 為熄滅)。單片機通過4 根信號線(串行數據輸入線DIN、串行數據時鐘線DCLK、串行數據加載線LOAD、串行數據輸出線DOUT)控制CH451,顯示數據,同時通過CH451 對鍵盤的掃描,達到人機交換信息的目的。該芯片與實驗板相關器件連接原理圖如下: CH451原理圖 CH451引腳圖
14、 2.2操作命令: CH451操作命令表 1> 空操作:0000XXXXXXXXB 空操作命令不對CH451 產生任何影響。為了在不影響CH451 的前提下變化DCLK 以清除看門狗計時,也可以發(fā)送空操作命令??詹僮髅羁梢灾话l(fā)送有效數據B8~B11,簡化描述是0^0^0^0^↑。 2> 芯片內部復位:001000000001B 內部復位命令將CH451 的各個寄存器和各種參數復位到默認的狀態(tài)。芯片上電時,CH451總是被復位,此時各個寄存器均復位為0,各種參數均恢復為默認值。 3> 字數據左移:001100000000B 字數據左移命令將CH451 的
15、字數據左移一次,即從DIG0 向DIG7 移動一位,然后最右邊的DIG0 補進數據00H。例如,在數碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數據左移命令,顯示變?yōu)椤?654321 ”(不譯碼方式)或者“76543210”(BCD 譯碼方式)。 4> 字數據右移:001100000010B 字數據右移命令將CH451 的字數據右移一次,即從DIG7 向DIG0 移動一位,然后最左邊的DIG7 補進數據00H。例如,在數碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數據右移命令,顯示變?yōu)椤?8765432”(不譯碼方式)或者“08765432”(BCD 譯碼方式)
16、。 5> 字數據左循環(huán):001100000001B 字數據左循環(huán)命令將CH451 的字數據左循環(huán)一次,即從DIG0 向DIG7 移動一位,然后最右邊的DIG0 補進原DIG7 的數據。例如,在數碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數據左循環(huán)命令,顯示變?yōu)椤?6543218”。 6> 字數據右循環(huán):001100000011B 字數據右循環(huán)命令將CH451 的字數據右循環(huán)一次,即從DIG7 向DIG0 移動一位,然后最左邊的DIG7 補進原DIG0 的數據。例如,在數碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數據右循環(huán)命令,顯示變?yōu)椤?8765432”
17、。 7> 設定系統(tǒng)參數:010000000[WDOG][KEYB][DISP]B 設定系統(tǒng)參數命令用于設定CH451 的系統(tǒng)級參數:看門狗使能WDOG,鍵盤掃描使能KEYB,顯示驅動使能DISP。各個參數均通過1 位數據控制,將相應的數據位置為1 則啟用該功能,否則關閉該功能(默認值)。例如,命令數據010000000101B 表示啟用看門狗的功能、關閉鍵盤掃描的功能、啟用顯示掃描驅動的功能。 8> 設定顯示參數:0101[MODE][LIMIT][INTENSITY]B 設定顯示參數命令用于設定CH451 的顯示參數:譯碼方式MODE,掃描極限LIMIT,顯示亮度INTENSITY。
18、譯碼方式MODE 通過1 位數據控制,置1 時選擇BCD 譯碼方式,置0 時選擇不譯碼方式(默認值)。掃描極限LIMIT 通過3 位數據控制,數據001B~111B 和000B 分別設定掃描極限為1~7 和8(默認值)。顯示亮度INTENSITY 通過4 位數據控制,數據0001B~1111B 和0000B 分別設定顯示驅動占空比為1/16~15/16 和16/16(默認值)。例如,命令數據010101110000B 表示選擇不譯碼方式、掃描極限為7、顯示驅動占空比為16/16;命令數據010110001010B 表示選擇BCD 譯碼方式、掃描極限為8、顯示驅動占空比為10/16。 9> 設
19、定閃爍控制:0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B 設定閃爍控制命令用于設定CH451 的閃爍顯示屬性:D7S~D0S 分別對應于8 個字驅動DIG7~DIG0。閃爍屬性D7S~D0S 分別通過1 位數據控制,將相應的數據位置為1 則使能閃爍顯示,否則為正常顯示,不閃爍(默認值)。例如,命令數據011000100001B 表示設定數碼管DIG5 和DIG0 閃爍顯示,其余數碼管正常顯示,不閃爍。 10> 加載字數據:1[DIG_ADDR][DIG_DATA]B 加載字數據命令用于將字數據DIG_DATA 寫入DIG_ADDR 指定地址的
20、數據寄存器中。DIG_ADDR 通過3 位數據指定數據寄存器的地址,數據000B~111B 分別指定地址0~7,對應于DIG0~DIG7 引腳驅動的8 個數碼管。DIG_DATA 是8 位的字數據。例如,命令數據100001111001B 表示將字數據79H 寫入第1 個數據寄存器,如果是不譯碼方式,則DIG0引腳驅動的數碼管將顯示E;命令數據110010001000B 表示將字數據88H 寫入第5 個數據寄存器,如果是BCD 譯碼方式,則DIG4 引腳驅動的數碼管將顯示8. 11> 讀取按鍵代碼:0111XXXXXXXXB 讀取按鍵代碼命令用于獲得CH451 最近檢測到的有效按鍵的按鍵代
21、碼。該命令是唯一的具有數據返回的命令,CH451 從DOUT 引腳輸出按鍵代碼,按鍵代碼總是7 位數據,最高位是狀態(tài)碼,位5~位0 是掃描碼。讀取按鍵代碼命令的位數據B0~B7 可以是任意值,所以控制器可以將該操作命令縮短為4 位數據B8~B11。例如,CH451 檢測到有效按鍵并中斷,按鍵代碼是5EH,簡化描述1^1^1^0^↑H^L^H^H^H^H^L^表示先向CH451 發(fā)出讀取按鍵代碼命令0111XXXXXXXXB,然后從DOUT 獲得按鍵代碼5EH。 CH451BCD碼譯碼表 2.3實驗步驟: 2.3.1硬件連接: CH451
22、 CPU 89S52 J5_89S52 P34 P15 P33 P32 J23_CH451 LOAD DCLK DIN DOUT 將并口線插在實驗板與 PC 機的并口插座上; 按上圖 連接實驗線路; 仔細檢查無誤后,接通電源。(圖中箭頭表示需要接線的地方) 其器件內部結構為: 2.3.2軟件設計: 進入 KEILC 環(huán)境編寫程序。89S52 首先向DIN 發(fā)送一個上升沿,通知CH451 數據線使能,然后89S52 發(fā)送010000000101,010110000
23、000,通知CH451 打開鍵盤掃描功能,開啟顯示功能,選擇BCD 譯碼方式,在就可以向每個顯示寄存器送入要顯示的數據。例如:八個數碼管全顯示“8”時送入的二進制數據為:100000001000; 100100001000; 101000001000; 101100001000; 110000001000; 110100001000; 111000001000; 111100001000; 打開 89S52 的外部中斷1,并設置為下降沿中斷方式,當KEY1-KEY5 任一鍵按下時,CH451的DOUT 腳會產生一個下降沿,這時89S52 便會產生一個中斷,并進入中斷程序。中斷程
24、序中,應首先關閉中斷,然后向CH451 發(fā)送讀鍵值指令(0111),讀取鍵值。KEY1-KEY5 的鍵值分別為:0X40,0X49,0X52,0X5B,0X64. 程序編譯成功后,打開聯(lián)機下載軟件,將HEX 文件下載到89S52 中,觀看程序運行結果,如有問題則修改程序,再次下載。調試成功后,將送顯程序,和讀取鍵值程序,各寫成一個函數,供后續(xù)實驗模塊調用。 2.3.3設計成功標志: 1> 啟動實驗板,自動顯示“--------” 2> 按下1 號按鍵,顯示“001” 3> 按下2 號按鍵,顯示“002” 4> 按下3 號按鍵,顯示“003” 5> 按下4 號按鍵,顯示
25、“004” 6> 按下5 號按鍵,顯示“005” 2.4程序設計: 程序原理圖 2.5 程序代碼: /********************************************************\ | 項目 武漢理工大學教學實驗板(ZG211 定制) | | 文件 Display.c | | 功能 LED顯示演示程序 | | 編寫 中格電子 | | 創(chuàng)建時間 2005/09/08 | | 版本 1.0
26、 | | 版本說明 | | 修改歷史 | | 修改原因 | | 修改時間 | | 修改后特性 | \********************************************************/ #include "reg52.h" #include "def.h" #include "display.h" #include "sub.h" #include "func.h" extern unsigned char key_prin
27、t; extern unsigned char key_data; /*******************************************************\ | 函數名 send_disp_data | | 函數功能 向CH451芯片發(fā)送命令 | | 參數 comm : 命令體 | | _data : 命令參數 | | 返回值 無 | \*******************************************************/ void send_disp
28、_data(unsigned char comm, unsigned char _data) { unsigned char i; //送8BIT數據 for(i=0;i<8;i++) { DIN = (_data>>i)&0x01; DCLK = 1; DCLK = 0; DCLK = 1; } //送4BIT命令 for(i=0;i<4;i++) { DIN = (comm>>i)&0x01; DCLK = 1; DCLK = 0; DCLK = 1; } LOAD=1;
29、 LOAD=0; LOAD=1; } /*******************************************************\ | 函數名 send_comm | | 函數功能 向CH451芯片發(fā)送命令 | | 參數 comm : 命令體 | | 返回值 無 | \*******************************************************/ void send_comm(unsigned char comm) { unsigned char
30、 i; //送4BIT命令 for(i=0;i<4;i++) { DIN = (comm>>i)&0x01; DCLK = 1; DCLK = 0; DCLK = 1; } LOAD=1; LOAD=0; LOAD=1; } /*******************************************************\ | 函數名 disp_initialize | | 函數功能 向CH451芯片發(fā)送初始化命令 | | 參數 無 | | 返回值 無
31、 | \*******************************************************/ void disp_initialize() { chang_4052(1); DIN=0; DIN=1; DCLK=1; LOAD=1; DOUT=1; send_disp_data( CH451_SETSYS, 0x03); //設定系統(tǒng)參數 send_disp_data( CH451_SETDIS, 0x80); //設定顯示參數 } /***********************************
32、********************\ | 函數名 key | | 函數功能 中斷函數,獲取當前按鍵狀態(tài) | | 參數 無 | | 返回值 無 | \*******************************************************/ void key() interrupt 0 { unsigned char i,temp; EX0 = 0; //關中斷 key_data = 0; temp = 0; send_comm(CH451_KEY
33、); for(i=0; i<7; i++) { temp = DOUT; key_data = key_data|(temp<<(6-i)); DCLK=1; DCLK=0; DCLK=1; } EX0 = 1; //中斷 } /*******************************************************\ | 函數名 Display_TEST | | 函數功能 測試顯示LED數碼管 | | 參數 無 | | 返回值 無
34、 | \*******************************************************/ void Display_TEST() { //初始化顯示芯片 disp_initialize(); //延時 delay_1ms(100); //送顯“12345678” send_disp_data( CH451_LOAD0, 0x01); send_disp_data( CH451_LOAD1, 0x02); send_disp_data( CH451_LOAD2, 0x03); send_disp_data( CH4
35、51_LOAD3, 0x04); send_disp_data( CH451_LOAD4, 0x05); send_disp_data( CH451_LOAD5, 0x06); send_disp_data( CH451_LOAD6, 0x07); send_disp_data( CH451_LOAD7, 0x08); delay_1ms(200); //延時 delay_1ms(200); //開中斷,接受按鍵信息 EX0=1; //"--------" send_disp_data( CH451_LOAD0, 0x12); sen
36、d_disp_data( CH451_LOAD1, 0x12); send_disp_data( CH451_LOAD2, 0x12); send_disp_data( CH451_LOAD3, 0x12); send_disp_data( CH451_LOAD4, 0x12); send_disp_data( CH451_LOAD5, 0x12); send_disp_data( CH451_LOAD6, 0x12); send_disp_data( CH451_LOAD7, 0x12); } /********************************
37、***********************\ | 函數名 display_int | | 函數功能 顯示一個整數 | | 參數 無 | | 返回值 無 | \*******************************************************/ void display_int(unsigned int m) { send_disp_data( CH451_LOAD0, 0x10); send_disp_data( CH451_LOAD1, 0x10); send_dis
38、p_data( CH451_LOAD2, 0x10); if (m/10000) { send_disp_data( CH451_LOAD3, m/10000); } else { send_disp_data( CH451_LOAD3, 0x10); } if ((!(m/1000)%10)&&(!(m/10000))) { send_disp_data( CH451_LOAD4, 0x10); } else { send_disp_data( CH451_LOAD4, (m/1000)%10); } send
39、_disp_data( CH451_LOAD5, (m/100)%10); send_disp_data( CH451_LOAD6, (m/10)%10); send_disp_data( CH451_LOAD7, m%10); } 3. 調試過程: 3.1 程序編譯調試:其成功結果顯示為 3.2 在線編程寫入程序:其成功結果顯示為 3.3 實驗結果顯示:按連接圖連線,將已給出程序下載到89S52中運行。 按鍵顯示結果分別為: 1> 啟動實驗板,自動顯示“--------” 2> 按下1 號按鍵,顯示“001” 3
40、> 按下2 號按鍵,顯示“002” 4> 按下3 號按鍵,顯示“003” 5> 按下4 號按鍵,顯示“004” 6> 按下5 號按鍵,顯示“005” 4. 課程設計總結: 本次課程設計是我們學習使用ZG211硬件綜合實驗平臺,程序設計集成開發(fā)環(huán)境,并使用C語言利用該硬件平臺進行“數字顯示與鍵盤輸入”的例程設計,通過此次設計,使我對ZG211硬件綜合實驗平臺有了進一步的了解,受益匪淺。 在實驗的開始階段,由于對電路板的結構等不熟悉,認為此次實驗異常困難,而且同時因首次利用該電路板來編程實現(xiàn)功能,所以在設計初期遇到了許多困惑,后在通過對《ZG211單片機系統(tǒng)實驗指導書》和各芯片資料
41、的仔細學習,才對實驗的原理,流程有了進一步的了解,在明白在對“數字顯示與鍵盤輸入”的設計中,實現(xiàn)較為容易,連接的導線僅有4條,只是在對keilc51軟件和在線編程軟件的使用花費了一定時間,后將其代碼導入單片機,能正確得到實驗結果,設計成功! 在此次實驗中,雖然自己的題目較為簡單,不過仍使我學到了較多東西,那就是對ZG211硬件綜合實驗平臺有了進一步理解,并能集合keilc51和在線編程軟件進行編程實踐,是將我們的軟件編程與硬件設計的一次有機地集合,使我不再孤立對待軟件與硬件,相信對我以后的工作和學習有很大的幫助!
42、 本科生課程設計成績評定表 班級:計算機1007班 姓名: 楊星 學號:0121010340704 序號 評分項目 滿分 實得分 1 學習態(tài)度認真、遵守紀律 10 2 設計分析合理性 10 3 設計方案正確性、可行性、創(chuàng)造性 20 4 設計結果正確性 40 5 設計報告的規(guī)范性 10 6 設計驗收 10 總得分/等級 評語: 注:最終成績以五級分制記。優(yōu)(90-100分)、良(80-89分)、中(70-79分)、 及格(60-69分)、60分以下為不及格 指導教師簽名: 2013 年 月 日 19
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。