九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

數(shù)字顯示與鍵盤輸入設計武漢理工

上傳人:仙*** 文檔編號:33404126 上傳時間:2021-10-17 格式:DOC 頁數(shù):20 大小:2.02MB
收藏 版權(quán)申訴 舉報 下載
數(shù)字顯示與鍵盤輸入設計武漢理工_第1頁
第1頁 / 共20頁
數(shù)字顯示與鍵盤輸入設計武漢理工_第2頁
第2頁 / 共20頁
數(shù)字顯示與鍵盤輸入設計武漢理工_第3頁
第3頁 / 共20頁

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

15 積分

下載資源

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

資源描述:

《數(shù)字顯示與鍵盤輸入設計武漢理工》由會員分享,可在線閱讀,更多相關《數(shù)字顯示與鍵盤輸入設計武漢理工(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、武漢理工大學課程設計 學 號: 012111034 課 程 設 計 題 目 數(shù)字顯示與鍵盤輸入設計 學 院 計算機科學與技術學院 專 業(yè) 計算機科學與技術 班 級 姓 名 指導教師 袁小玲 2013 年 7 月 4 日 目錄 課程設計任務書 2 數(shù)字顯示與鍵盤輸入設計 3 1.系統(tǒng)描述: 3 1.1實驗目的: 3 1.2實驗設備: 3 1.3實驗要求: 3 2.實驗過程: 3 2.1實驗原理: 3 2.2實驗步驟: 8 2.2.2軟件設計

2、: 9 2.2.3設計成功標志: 10 2.3程序設計: 10 2.4 程序代碼: 11 3.調(diào)試過程: 15 3.1 程序編譯調(diào)試 15 4.課程設計總結(jié) 17 本科生課程設計成績評定表 18 課程設計任務書 學生姓名: 專業(yè)班級: 計算機zy1101班 指導教師: 袁小玲 工作單位:計算機科學與技術學院 題 目: 數(shù)字顯示與鍵盤輸入例程設計 初始條件: 1. 課程設計使用ZG211硬件綜合實驗平臺(8051單片機),配有課程設計接口芯片和輔助芯片以及器件; 2. ZG211有程序設計集成開發(fā)環(huán)境,程

3、序設計語言為C語言; 3. ZG211硬件綜合實驗平臺使用說明書; 要求完成的主要任務: (包括課程設計工作量及其技術要求,撰寫說明書具體要求) 1. 學習使用ZG211硬件綜合實驗平臺,程序設計集成開發(fā)環(huán)境; 2. 根據(jù)課程設計題目,進行需求分析,搞清楚課程設計需要設計需求和需要解決的設計內(nèi)容。 3. 查閱和學習課程設計題目需要的接口芯片資料,掌握接口芯片的使用方法和編程要領。查閱和學習課程設計題目需要的輔助芯片以及器件資料。 4. 設計接口芯片和輔助芯片以及器件與8051單片機連接硬件電路原理圖。 5. 設計與硬件電路原理圖對應的C語言程序(或8051匯編語言)。給出程序流程

4、圖。在集成開發(fā)環(huán)境中調(diào)試程序。給出程序的詳細注釋。能夠解釋使用程序模擬電路時序信號和數(shù)據(jù)。 6. 撰寫課程設計報告,1)詳細陳述以上的設計過程;2)詳細陳述電路的調(diào)試過程。 時間安排: 第187周: 1. 熟悉ZG211硬件綜合實驗平臺,KEILC UVISION2 集成開發(fā)環(huán)境;查閱接口芯片資料,熟悉接口芯片和它的使用方法。 2. 設計硬件電路原理圖,。 第19周: 1. 使用C語言或匯編語言設計和調(diào)試接口程序。 2. 撰寫計算機硬件綜合設計報告。 指導教師簽名: 年 月 日 系主任(或責任教師)簽名:

5、 年 月 日 數(shù)字顯示與鍵盤輸入設計 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數(shù)碼顯示 2> 能通過中斷方式接收按鍵信息 2.實驗過程: 2.1實驗原理: 本實驗的顯示接口采用 CH451 芯片。該芯片整合了數(shù)碼管顯示驅(qū)動和鍵盤

6、掃描控制可以動態(tài)驅(qū)動8 位數(shù)碼管或者64 位LED,具有BCD 譯碼、閃爍、移位等功能;同時還可以進行64 鍵的鍵盤掃描;芯片內(nèi)部有多個寄存器控制整個芯片的運行,其中有8 個寄存器存入所要顯示的數(shù)字,每個寄存器有8 位,每一位控制一個數(shù)碼管其中的一段(1 為點亮,0 為熄滅)。單片機通過4 根信號線(串行數(shù)據(jù)輸入線DIN、串行數(shù)據(jù)時鐘線DCLK、串行數(shù)據(jù)加載線LOAD、串行數(shù)據(jù)輸出線DOUT)控制CH451,顯示數(shù)據(jù),同時通過CH451 對鍵盤的掃描,達到人機交換信息的目的。該芯片與實驗板相關器件連接原理圖如下: CH451原理圖 CH451引腳圖 CH451操作

7、命令表 1> 空操作:0000XXXXXXXXB 空操作命令不對CH451 產(chǎn)生任何影響。為了在不影響CH451 的前提下變化DCLK 以清除看門狗計時,也可以發(fā)送空操作命令。空操作命令可以只發(fā)送有效數(shù)據(jù)B8~B11,簡化描述是0^0^0^0^↑。 2> 芯片內(nèi)部復位:001000000001B 內(nèi)部復位命令將CH451 的各個寄存器和各種參數(shù)復位到默認的狀態(tài)。芯片上電時,CH451總是被復位,此時各個寄存器均復位為0,各種參數(shù)均恢復為默認值。 3> 字數(shù)據(jù)左移:001100000000B 字數(shù)據(jù)左移命令將CH451 的字數(shù)據(jù)左移一次,即從DIG0 向DIG7 移動一位

8、,然后最右邊的DIG0 補進數(shù)據(jù)00H。例如,在數(shù)碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數(shù)據(jù)左移命令,顯示變?yōu)椤?654321 ”(不譯碼方式)或者“76543210”(BCD 譯碼方式)。 4> 字數(shù)據(jù)右移:001100000010B 字數(shù)據(jù)右移命令將CH451 的字數(shù)據(jù)右移一次,即從DIG7 向DIG0 移動一位,然后最左邊的DIG7 補進數(shù)據(jù)00H。例如,在數(shù)碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數(shù)據(jù)右移命令,顯示變?yōu)椤?8765432”(不譯碼方式)或者“08765432”(BCD 譯碼方式)。 5> 字數(shù)據(jù)左循環(huán):001100000001

9、B 字數(shù)據(jù)左循環(huán)命令將CH451 的字數(shù)據(jù)左循環(huán)一次,即從DIG0 向DIG7 移動一位,然后最右邊的DIG0 補進原DIG7 的數(shù)據(jù)。例如,在數(shù)碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數(shù)據(jù)左循環(huán)命令,顯示變?yōu)椤?6543218”。 6> 字數(shù)據(jù)右循環(huán):001100000011B 字數(shù)據(jù)右循環(huán)命令將CH451 的字數(shù)據(jù)右循環(huán)一次,即從DIG7 向DIG0 移動一位,然后最左邊的DIG7 補進原DIG0 的數(shù)據(jù)。例如,在數(shù)碼管DIG7~DIG0 顯示“87654321”時,執(zhí)行字數(shù)據(jù)右循環(huán)命令,顯示變?yōu)椤?8765432”。 7> 設定系統(tǒng)參數(shù):010000000[WD

10、OG][KEYB][DISP]B 設定系統(tǒng)參數(shù)命令用于設定CH451 的系統(tǒng)級參數(shù):看門狗使能WDOG,鍵盤掃描使能KEYB,顯示驅(qū)動使能DISP。各個參數(shù)均通過1 位數(shù)據(jù)控制,將相應的數(shù)據(jù)位置為1 則啟用該功能,否則關閉該功能(默認值)。例如,命令數(shù)據(jù)010000000101B 表示啟用看門狗的功能、關閉鍵盤掃描的功能、啟用顯示掃描驅(qū)動的功能。 8> 設定顯示參數(shù):0101[MODE][LIMIT][INTENSITY]B 設定顯示參數(shù)命令用于設定CH451 的顯示參數(shù):譯碼方式MODE,掃描極限LIMIT,顯示亮度INTENSITY。譯碼方式MODE 通過1 位數(shù)據(jù)控制,置1 時選擇

11、BCD 譯碼方式,置0 時選擇不譯碼方式(默認值)。掃描極限LIMIT 通過3 位數(shù)據(jù)控制,數(shù)據(jù)001B~111B 和000B 分別設定掃描極限為1~7 和8(默認值)。顯示亮度INTENSITY 通過4 位數(shù)據(jù)控制,數(shù)據(jù)0001B~1111B 和0000B 分別設定顯示驅(qū)動占空比為1/16~15/16 和16/16(默認值)。例如,命令數(shù)據(jù)010101110000B 表示選擇不譯碼方式、掃描極限為7、顯示驅(qū)動占空比為16/16;命令數(shù)據(jù)010110001010B 表示選擇BCD 譯碼方式、掃描極限為8、顯示驅(qū)動占空比為10/16。 9> 設定閃爍控制:0110[D7S][D6S][D5S]

12、[D4S][D3S][D2S][D1S][D0S]B 設定閃爍控制命令用于設定CH451 的閃爍顯示屬性:D7S~D0S 分別對應于8 個字驅(qū)動DIG7~DIG0。閃爍屬性D7S~D0S 分別通過1 位數(shù)據(jù)控制,將相應的數(shù)據(jù)位置為1 則使能閃爍顯示,否則為正常顯示,不閃爍(默認值)。例如,命令數(shù)據(jù)011000100001B 表示設定數(shù)碼管DIG5 和DIG0 閃爍顯示,其余數(shù)碼管正常顯示,不閃爍。 10> 加載字數(shù)據(jù):1[DIG_ADDR][DIG_DATA]B 加載字數(shù)據(jù)命令用于將字數(shù)據(jù)DIG_DATA 寫入DIG_ADDR 指定地址的數(shù)據(jù)寄存器中。DIG_ADDR 通過3 位數(shù)據(jù)指定

13、數(shù)據(jù)寄存器的地址,數(shù)據(jù)000B~111B 分別指定地址0~7,對應于DIG0~DIG7 引腳驅(qū)動的8 個數(shù)碼管。DIG_DATA 是8 位的字數(shù)據(jù)。例如,命令數(shù)據(jù)100001111001B 表示將字數(shù)據(jù)79H 寫入第1 個數(shù)據(jù)寄存器,如果是不譯碼方式,則DIG0引腳驅(qū)動的數(shù)碼管將顯示E;命令數(shù)據(jù)110010001000B 表示將字數(shù)據(jù)88H 寫入第5 個數(shù)據(jù)寄存器,如果是BCD 譯碼方式,則DIG4 引腳驅(qū)動的數(shù)碼管將顯示8. 11> 讀取按鍵代碼:0111XXXXXXXXB 讀取按鍵代碼命令用于獲得CH451 最近檢測到的有效按鍵的按鍵代碼。該命令是唯一的具有數(shù)據(jù)返回的命令,CH451

14、從DOUT 引腳輸出按鍵代碼,按鍵代碼總是7 位數(shù)據(jù),最高位是狀態(tài)碼,位5~位0 是掃描碼。讀取按鍵代碼命令的位數(shù)據(jù)B0~B7 可以是任意值,所以控制器可以將該操作命令縮短為4 位數(shù)據(jù)B8~B11。例如,CH451 檢測到有效按鍵并中斷,按鍵代碼是5EH,簡化描述1^1^1^0^↑H^L^H^H^H^H^L^表示先向CH451 發(fā)出讀取按鍵代碼命令0111XXXXXXXXB,然后從DOUT 獲得按鍵代碼5EH。 CH451BCD碼譯碼表 2.2實驗步驟: 2.2.1硬件連接: CH451 CPU 89S52 J5_8

15、9S52 P34 P15 P33 P32 J23_CH451 LOAD DCLK DIN DOUT 將并口線插在實驗板與 PC 機的并口插座上; 按上圖 連接實驗線路; 仔細檢查無誤后,接通電源。(圖中箭頭表示需要接線的地方) (上圖為連線圖,也是接線成功后的圖) 2.2.2軟件設計: 進入 KEILC 環(huán)境編寫程序。89S52 首先向DIN 發(fā)送一個上升沿,通知CH451 數(shù)據(jù)線使能,然后89S52 發(fā)送010000000101,010110000000,通知CH451 打開鍵盤

16、掃描功能,開啟顯示功能,選擇BCD 譯碼方式,在就可以向每個顯示寄存器送入要顯示的數(shù)據(jù)。例如:八個數(shù)碼管全顯示“8”時送入的二進制數(shù)據(jù)為:100000001000; 100100001000; 101000001000; 101100001000; 110000001000; 110100001000; 111000001000; 111100001000; 打開 89S52 的外部中斷1,并設置為下降沿中斷方式,當KEY1-KEY5 任一鍵按下時,CH451的DOUT 腳會產(chǎn)生一個下降沿,這時89S52 便會產(chǎn)生一個中斷,并進入中斷程序。中斷程序中,應首先關閉中斷,然后向CH

17、451 發(fā)送讀鍵值指令(0111),讀取鍵值。KEY1-KEY5 的鍵值分別為:0X40,0X49,0X52,0X5B,0X64. 在89S52在向CH451發(fā)送數(shù)據(jù)時,先發(fā)送低位數(shù)據(jù)。如二進制數(shù)據(jù):100000000101,先送1,再送0,再送1,依次類推;而接收時則相反,先接收高位。 程序編譯成功后,打開聯(lián)機下載軟件,將HEX 文件下載到89S52 中,觀看程序運行結(jié)果,如有問題則修改程序,再次下載。調(diào)試成功后,將送顯程序,和讀取鍵值程序,各寫成一個函數(shù),供后續(xù)實驗模塊調(diào)用。 2.2.3設計成功標志: 1> 啟動實驗板,自動顯示“--------” 2> 按下1 號按鍵,顯示“

18、001” 3> 按下2 號按鍵,顯示“002” 4> 按下3 號按鍵,顯示“003” 5> 按下4 號按鍵,顯示“004” 6> 按下5 號按鍵,顯示“005” 2.3程序設計: 程序原理圖 2.4 程序代碼: /********************************************************\ | 項目 武漢理工大學教學實驗板(ZG211 定制) | | 文件 Display.c | | 功能 LED顯示演示程序 | | 編寫 中格電子

19、 | | 創(chuàng)建時間 2005/09/08 | | 版本 1.0 | | 版本說明 | | 修改歷史 | | 修改原因 | | 修改時間 | | 修改后特性 | \********************************************************/ #include "reg52.h" #include "def.h" #include "display.h" #include "

20、sub.h" #include "func.h" extern unsigned char key_print; extern unsigned char key_data; /*******************************************************\ | 函數(shù)名 send_disp_data | | 函數(shù)功能 向CH451芯片發(fā)送命令 | | 參數(shù) comm : 命令體 | | _data : 命令參數(shù) | | 返回值 無 | \**************

21、*****************************************/ void send_disp_data(unsigned char comm, unsigned char _data) { unsigned char i; //送8BIT數(shù)據(jù) 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)&0x0

22、1; DCLK = 1; DCLK = 0; DCLK = 1; } LOAD=1; LOAD=0; LOAD=1; } /*******************************************************\ | 函數(shù)名 send_comm | | 函數(shù)功能 向CH451芯片發(fā)送命令 | | 參數(shù) comm : 命令體 | | 返回值 無 | \*****************************************************

23、**/ void send_comm(unsigned char comm) { unsigned char i; //送4BIT命令 for(i=0;i<4;i++) { DIN = (comm>>i)&0x01; DCLK = 1; DCLK = 0; DCLK = 1; } LOAD=1; LOAD=0; LOAD=1; } /*******************************************************\ | 函數(shù)名 disp_initialize | | 函數(shù)功

24、能 向CH451芯片發(fā)送初始化命令 | | 參數(shù) 無 | | 返回值 無 | \*******************************************************/ void disp_initialize() { chang_4052(1); DIN=0; DIN=1; DCLK=1; LOAD=1; DOUT=1; send_disp_data( CH451_SETSYS, 0x03); //設定系統(tǒng)參數(shù) send_disp_data( CH451_SETDIS,

25、0x80); //設定顯示參數(shù) } /*******************************************************\ | 函數(shù)名 key | | 函數(shù)功能 中斷函數(shù),獲取當前按鍵狀態(tài) | | 參數(shù) 無 | | 返回值 無 | \*******************************************************/ void key() interrupt 0 { unsigned char i,temp; EX0 = 0; //關中斷

26、 key_data = 0; temp = 0; send_comm(CH451_KEY); for(i=0; i<7; i++) { temp = DOUT; key_data = key_data|(temp<<(6-i)); DCLK=1; DCLK=0; DCLK=1; } EX0 = 1; //中斷 } /*******************************************************\ | 函數(shù)名 Display_TEST | | 函數(shù)功

27、能 測試顯示LED數(shù)碼管 | | 參數(shù) 無 | | 返回值 無 | \*******************************************************/ void Display_TEST() { //初始化顯示芯片 disp_initialize(); //延時 delay_1ms(100); //送顯“12345678” send_disp_data( CH451_LOAD0, 0x01); send_disp_data( CH451_LOAD1, 0x02);

28、 send_disp_data( CH451_LOAD2, 0x03); send_disp_data( CH451_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;

29、 //"--------" send_disp_data( CH451_LOAD0, 0x12); send_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( C

30、H451_LOAD7, 0x12); } /*******************************************************\ | 函數(shù)名 display_int | | 函數(shù)功能 顯示一個整數(shù) | | 參數(shù) 無 | | 返回值 無 | \*******************************************************/ void display_int(unsigned int m) { send_disp_data( CH451_LOAD

31、0, 0x10); send_disp_data( CH451_LOAD1, 0x10); send_disp_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

32、{ send_disp_data( CH451_LOAD4, (m/1000)%10); } send_disp_data( CH451_LOAD5, (m/100)%10); send_disp_data( CH451_LOAD6, (m/10)%10); send_disp_data( CH451_LOAD7, m%10); } 3.調(diào)試過程: 3.1 程序編譯調(diào)試 3.2 在線編程寫入程序:其成功結(jié)果顯示為 3.3 實驗結(jié)果顯示:按連接圖連線,將已給出程序下載到89S52中運行。 按鍵顯示結(jié)果分別為:

33、1> 啟動實驗板,自動顯示“--------” 2> 按下1 號按鍵,顯示“001” 3> 按下2 號按鍵,顯示“002” 4> 按下3 號按鍵,顯示“003” 5> 按下4 號按鍵,顯示“004” 6> 按下5 號按鍵,顯示“005” 4.課程設計總結(jié) 此次硬件課程設計是我們第一次接觸單片機,還是感覺到相當陌生的,對于CH451芯片,我們以前都是沒有接觸過的,但是實驗本身并不是很難,主要原因在于接線方面還是很輕松的,還有關于單片機的代碼也可以直接得到,只需要我們在電腦上編譯調(diào)試通過然后下載到單片機的芯片上就可以。而這次實驗還是給了我很大的收獲:首先,讓我對編程有了更加深刻的

34、認識,編程不僅僅是在電腦上寫程序并且運行,然后封裝成為一個軟件,更能夠借組與單片機實現(xiàn)更多的功能,能夠在物聯(lián)網(wǎng)的道路上發(fā)揮更大的作用;其次了解了CH154芯片的結(jié)構(gòu)和功能,對于以后再學習單片機的相關知識打下了一個很好的基礎;最后則是對并行接口和接口編程有了更加深刻的認識。 本科生課程設計成績評定表 班級:計算機ZY1101班  姓名: 張瑞  學號:0121110340117 序號 評分項目 滿分 實得分 1 學習態(tài)度認真、遵守紀律 10 2 設計分析合理性 10 3 設計方案正確性、可行性、創(chuàng)造性 20 4 設計結(jié)果正確性 40 5 設計報告的規(guī)范性 10 6 設計驗收 10 總得分/等級 評語: 注:最終成績以五級分制記。優(yōu)(90-100分)、良(80-89分)、中(70-79分)、 及格(60-69分)、60分以下為不及格                       指導教師簽名:                   201 年 月 日 19

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(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ǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!