




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計任務書學生姓名: 專業(yè)班級: 指導教師: 工作單位: 自動化學院 題 目: 密碼小鍵盤 課程設計的目的:本課程設計教學所要達到的目的是:1、培養(yǎng)學生理論聯(lián)系實際的設計思想,提高學生綜合運用匯編語言課程的理論分析問題、解決問題的能力。2、通過查找、運用設計資料,完成工程設計所必備的基本訓練。3、使同學們更深入的了解計算機系統(tǒng)內部的有關知識,為以后的學習和系統(tǒng)開發(fā)奠定良好的基礎。課程設計的內容和要求: 本次課程設計要求是建立在可編程并行接口芯片8255人機交互接口之“鍵盤接口”技術電路基礎之上的,通過8255的三個并行輸入/輸出端口、以及利用8255的三種工作方式,來擴展一個外接小鍵盤,并
2、且能通過此外接鍵盤輸入數(shù)字進行紅綠燈校驗,整個電路能夠實現(xiàn)的功能就是:鍵盤包括數(shù)字鍵“09”和功能鍵“確認、取消”;程序設定初始密碼,當輸入的密碼同初始密碼相同時綠燈亮,當輸入的密碼錯誤時紅燈亮。時間安排:1、 課程設計任務書的布置,講解 (一天)2、 根據任務書的要求進行設計構思(一天)3、 編程調試(兩天)4、 撰寫說明書 (兩天)5、 課程設計答辯(一天)指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日目錄摘要31 設計要求及其簡明思路41.1 設計說明41.2 設計思路42 密碼輸入鍵盤具體設計方法52.1 可編程并行接口芯片8255a基本簡介52.1.1 8255a的
3、內部結構及功能簡介52.1.2 8255a的管腳分配62.1.3 8255a工作方式及其編程簡介62.2 硬件接口電路原理82.2.1 鍵盤接口原理電路圖82.2.2 鍵盤掃描法及程序處理的任務82.2.3 紅綠燈顯示電路部分92.2.4 硬件連接電路圖112.3 軟件設計112.3.1 軟件設計思路112.3.2 程序流程圖12結束語13參考文獻14附錄15附錄1、設計程序15摘要微機原理與接口技術作為計算機科學領域的基礎知識,盡管計算機科學高速發(fā)展,但基本原理依然不變,即是遵循馮諾依曼基本思想的。學習并能掌握好微機原理與接口技術這門知識是非常重要的,通過對這門知識的了解可以簡單的編寫一些日
4、常中經典的控制程序。本文主要是針對接口技術方面問題的一種設計方法,通過對8255a這個可編程并行接口芯片的所學知識,來擴展一個外接小鍵盤,并能夠通過此鍵盤輸入數(shù)據進行密碼校正并有紅綠燈顯示的功能。本設計主要是通過軟硬件結合的方法來加以實現(xiàn)所要求的功能,利用8255a端口單獨作為輸入/輸出的功能同時實現(xiàn)擴展鍵盤和外接紅綠燈顯示的功能。其中,鍵盤鍵值的掃描是一個主要的問題,另外,密碼比較和防抖延時等子程序也是一個應該關心的問題,解決了這部分關鍵點也就能很好的解決本設計要求。關鍵字:8255a 鍵盤 密碼校驗 紅綠燈顯示密碼輸入鍵盤1 設計要求及其簡明思路1.1 設計說明本文設計要求是建立在可編程并
5、行接口芯片8255人機交互接口之“鍵盤接口”技術電路基礎之上的,通過8255的三個并行輸入/輸出端口以及利用8255的三種工作方式,來擴展一個外接小鍵盤,并且能通過此外接鍵盤輸入數(shù)字進行紅綠燈校驗,整個電路能夠實現(xiàn)的功能就是:鍵盤包括數(shù)字鍵“09”和功能鍵“確認、取消”;程序設定初始密碼,當輸入的密碼同初始密碼相同時綠燈亮,當輸入的密碼錯誤時紅燈亮。1.2 設計思路本文設計的思路也就能夠圍繞題目要求以及所學關于8255可編程并行接口芯片的知識得出解決此題的基本方法,簡明介紹如下:通過8255基本輸入輸出端口c口七根i/o接口線分成34行列形式外接12個鍵的矩陣式鍵盤電路,12個鍵的功能通過相應
6、的程序進行控制,最終實現(xiàn)有09等10個數(shù)字鍵和確認、取消等2個功能鍵;另外,設定一個四位數(shù)字的初始密碼,同初始密碼進行比較的過程即為:從擴展的外接鍵盤輸入數(shù)字直到按確認鍵后才使輸入完畢輸入的數(shù)據存入緩沖區(qū)、按取消即可清除之前輸入的數(shù)字還可以重新輸入數(shù)字直到按確認為止;輸入的數(shù)據通過8255傳送到cpu,再由cpu通過程序同初始密碼確認比較,如果比較正確則8255通過b口輸出使綠燈亮,否則紅燈亮。本設計要完成的任務需要通過軟、硬件設計來完成。軟件設計需要實現(xiàn)鍵盤鍵值的讀取、密碼判斷程序以及l(fā)ed顯示程序;硬件設計則需要硬件實驗平臺上相應的硬件電路模塊,包括鍵盤模塊、led發(fā)光二極管顯示模塊。2
7、密碼輸入鍵盤具體設計方法 2.1 可編程并行接口芯片8255a基本簡介8255a是一種通用的可編程并行i/o接口芯片,具有3個帶鎖存或緩沖的數(shù)據端口,可與外設并行進行數(shù)據交換。用戶可用程序來選擇多種操作方式,它的各端口內具有中斷控制邏輯,為外設與cpu之間的信息交換提供了方便。2.1.1 8255a的內部結構及功能簡介8255a芯片內部結構圖如圖2.1.1所示,我們可以看到該芯片含有3個8位的控制端口,即a口、b口和c口,這三個端口可以作為cpu與外設通信時的緩沖器或鎖存器,其中,一般情況下,作為緩沖器使用時就是輸入接口,作為鎖存器使用時是輸出接口。圖2.1.1 8255a的內部結構圖其實,8
8、255a的三個端口實際上只有兩組控制部件,其中將c口的八位分成高低各四位分別同a口、b口組合形成a組、b組兩種獨立的控制部件,它們可以同時接收來自讀/寫控制電路的命令和cpu送來的控制字。另外,8255a的數(shù)據總線緩沖器和讀/寫控制電路分別實現(xiàn)了8255a與cpu之間的聯(lián)系,具體功能將在以下各節(jié)指出。2.1.2 8255a的管腳分配8255a是一個標準的40管腳芯片如圖2.2.1所示,可以分為三個部分:與外設連接的i/o線,與cpu連接的總線,以及電源線。本設計中需要使用到與外設連接的各個端口,用于連接小鍵盤的c口和pb0端的紅綠顯示燈。其中與cpu連接的8、9管腳決定了8255a的工作方式,
9、本設計中采用的8255端口地址是奇地址即8255的a0、a1的管腳連接cpu的a0、a1管腳,cpu通過對8255a管腳的控制來控制其各個端口的工作方式。圖2.1.2 8255a的管腳分布圖2.1.3 8255a工作方式及其編程簡介8255a有三種工作方式:方式0基本輸入輸出,方式1選通輸入輸出,方式2雙向傳輸方式。本設計要使用該芯片來擴展小鍵盤,并實現(xiàn)密碼校驗的功能,為此,我們必須掌握8255a該芯片的編程方式,因為只有通過相應的軟件來定義端口的工作方式,選擇所需要的功能,硬件電路才能得以實現(xiàn)。首先對8255a的源程序初始化及其程序編程應該有所了解,然而對其的初始化就必須使用到8255a的各
10、種工作方式及其端口的地址,以便進行程序的控制。為此須要了解8255a的控制命令即其方式控制字,關乎8255a的端口工作情況。其基本規(guī)格如下各表所示: 表2.1方式控制字 表2 a口工作方式選擇 表3 a口i/o選擇d7 d6 d5 d4 d3 d2 d1 d01 a組控制 b組控制d4輸入/輸出選擇0a口為輸出1a口為輸入d6d5 a口工作方式 00 方式0 01 方式1 1 方式2 表4 c口上半部i/o選擇 表5 b口工作方式選擇 表6 b口i/o選擇 表7 c口上半部i/o選擇d2b口工作方式0工作方式01工作方式1d3輸入、輸出選擇0c口高4位輸出1c口高4位輸入d0輸入、輸出選擇0c
11、口低4位輸出1c口低4位輸入d1輸入/輸出選擇0b口為輸出1b口為輸入 本設計采用b口pb0端口輸出外接顯示燈,當管腳信號為低電平時綠燈亮,表示輸入的數(shù)據同初始設置的值相同,相反當其管腳輸出為高電平時紅燈亮,表示輸入的數(shù)據同初始設置的值不同。c口外接矩陣式鍵盤并且采用掃描法進行鍵盤信息的讀取,通過使用的方式不同可以得出8255a可編程并行接口芯片的控制方式,在8255a的初始化及其編程當中需要用到。2.2 硬件接口電路原理2.2.1 鍵盤接口原理電路圖由于本題設計要求要用戶擴展的鍵盤按鍵有數(shù)字鍵09和功能鍵等共12個,因此鍵盤電路采用獨立式鍵盤將會占用很多的i/o線從而不實用。故采用矩陣式鍵盤
12、電路來擴展帶有12個按鍵的小鍵盤比較合適,根據本題要求只需34方式的矩陣即可,故其原理電路圖如下圖3所示: +5v 8255 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 0 1 2 3 4 5 6 7 8 9 10 11 圖2.2.1 矩陣式鍵盤電路原理圖矩陣式鍵盤電路其特點是由按鍵組成一個矩陣,矩陣的行線和列線分別作為兩個傳輸方向相反的i/o接口信號線,如行線作為輸入接口信號線,列線作為輸出接口信號線,或反之。用獨立式鍵盤相比這種電路所需要的i/o線很少,但鍵盤容量很大,按題目設計要求,本設計題只需用到c口的七根輸入/輸出線,組成34式的矩陣即可達到要求組成帶有12個按鍵
13、的小鍵盤。2.2.2 鍵盤掃描法及程序處理的任務雖然矩陣式鍵盤對cpu的硬件資源要求不多,但相應的軟件要復雜,目前掃描鍵盤的方法有兩種,即掃描法和翻轉法。其實現(xiàn)思想基本簡介如下:掃描法是設定行線輸出、列線輸入,行線逐行輸出0,如果某列有按鍵則列線輸入為0;若無鍵按下列線輸入全部為1,這樣根據行線和列線提供的信息就可以確定是哪個鍵被按下。翻轉法的實現(xiàn)思想是行、列線交換輸入、輸出,先輸出一組所有為0的行值,讀取列值并判斷是否有0的位,然后輸出所有為0的列值,讀取行值并判斷是否有0的位,從而兩步進行確定獲取鍵位置信息。因此,這種方法要比掃描法效率高,本設計中采用的也是翻轉法進行鍵盤信息的讀取。其中,
14、鍵盤的掃描同鍵位的確定有如下表2.2.2(a)所示的關系,掃描的程序將在附錄中給出。表2.2.2(a) 34行列式鍵盤的按鍵編碼表 按鍵 鍵 碼 按鍵 鍵 碼 行值 列值 行值 列值 011101110 611011011 111101101 711010111 211101011 810111110 311100111 910111101 411011110 10(確認)10111011 511011101 11(取消)10110111其中,功能按鍵只需要通過相應的程序進行調用說明其功能即可,其功能如下表2.2.2(b)所示:表2.2.2(b) 按鍵對應的鍵名及其功能 按 鍵 鍵 名 功能說
15、明 09鍵 數(shù)字鍵用于輸入密碼 10鍵 確認鍵當掃描到此鍵時結束掃描,即輸入結束 11鍵 取消鍵當掃描到此鍵時重新掃描,即重新輸入密碼鍵盤處理程序的任務主要包括以下步驟:鍵輸入、鍵譯碼和鍵處理三步。其中,鍵輸入是鍵盤處理程序最主要的工作,由于鍵盤的機械結構,當鍵按下或松開時,鍵將有一個抖動過程,因此鍵輸入的首要工作就是檢查鍵盤是否有鍵被按下,消除按鍵抖動。然后再確定被按的鍵在矩陣中的位置,獲取鍵號。消除抖動的方法可以采用軟件延時。延時程序將在附錄中給出。2.2.3 紅綠燈顯示電路部分由于設計的要求,需要通過擴展小鍵盤來輸入數(shù)據并且與初始密碼進行比較,要求相同時綠燈亮,不同時紅燈亮。故可以通過8
16、255a端口輸入/輸出的功能加上相應的程序來實現(xiàn),本設計采用b端口的一個輸出端口通過非門的選擇來實現(xiàn)紅綠燈的亮滅,其部分接口電路如圖2.2.3所示:圖2.2.3 紅綠燈顯示電路部分電路圖其中,紅綠燈顯示的原理是:當密碼比較正確時綠燈d1亮,即b口pb0輸出應該為0,所以b口輸出為00h;當密碼比較錯誤時紅燈d2亮,即b口即pb0輸出應該為1,所以b口輸出為01h。其實現(xiàn)紅綠燈亮的部分程序段如下: mov al,00h ;綠燈亮 mov dx,b_port out dx,al mov al,01h ;紅燈亮 mov dx,b_port out dx,al2.2.4 硬件連接電路圖由以上分析可以知
17、道,整體電路設計圖如圖2.2.4所示,由于protel仿真軟件中沒有8086cpu,因此使用了z80cpu來代替。另外,由于所學知識的有限只能連接出部分的電路原理圖如圖2.2.4所示。8255a圖2.2.4 輸入接口電路2.3 軟件設計2.3.1 軟件設計思路密碼輸入鍵盤的主要功能是實現(xiàn)8255a擴展的小鍵盤,通過輸入數(shù)據同初始設置的密碼比較,若密碼比較的相同則綠燈亮,否則紅燈亮。其中,初始設置為四位數(shù)字的密碼,數(shù)據的鍵入通過擴展的小鍵盤來實現(xiàn),當輸入的數(shù)據在09之間時,輸入正常并把數(shù)據寄存在緩沖區(qū)buff2中。當掃描到的數(shù)據為10時,則執(zhí)行確認功能即退出掃描讀數(shù);當掃描到的數(shù)據為11時,則執(zhí)
18、行取消功能即重新掃描讀取輸入的數(shù)據。其中,主程序為鍵盤掃描讀取從鍵盤輸入的數(shù)據,即通過擴展矩陣式鍵盤翻轉法將掃描的鍵碼值轉化為相應的鍵號值,數(shù)據鍵為09,功能鍵有10確認鍵、11取消鍵。子程序有消除抖動的延時程序和密碼比較同時調用紅綠燈顯示輸出的程序;消除抖動的延時程序,主要利用軟件延時的方法即通過循環(huán)方式的控制來實現(xiàn)延時以消除按鍵的抖動。2.3.2 程序流程圖由以上分析知該設計分為主、子程序兩部分,故主、子程序流程圖分別如下圖2.3.2(a)、圖2.3.2(b)所示:鍵值存入buff2調用密碼比較子程序結束 開始8255初始化 讀鍵盤有鍵按下否調用延時子程序 讀取鍵值鍵值是否為11鍵值是否為
19、10ny 紅燈亮結束開始取存密碼緩沖區(qū)的偏移地址si設置循環(huán)次數(shù)cx=4與初密碼相等否 cx是否為0 或者si為4否綠燈亮nnyy ynyn 圖2.3.2(b) 密碼比較及紅綠燈顯示子程序流程圖 圖2.3.2(a) 主程序流程圖結束語在本次的課程設計中,整體思路比較明確、設計的步驟也比較順暢,由于曾有課程設計的基礎,對說明書的書寫格式也方便了許多,沒有第一次時的那種種麻煩以及困難,同時通過這次的課程設計也讓我對微機接口方面的知識有了進一步的了解,而且也更加熟悉了匯編語言所運行的軟件環(huán)境,同時通過軟件環(huán)境的調式運行可以檢驗自己的程序是否正確,由于本次設計涉及到硬件方面的知識,需要對硬件電路進行檢
20、驗,因此促使自己學習仿真軟件,本次設計中我使用的仿真軟件為protel。通過本次課程設計,給我最大的收獲也就在于此了,了解到更多的軟件知識以及對所學的軟件編程知識進行了鞏固。同時,通過本次課程設計讓自己明白了自己的不足以及急需加強練習的地方。首先,拿到設計要求的第一個問題就是不知道如何編寫鍵盤讀鍵的程序,雖然通過看書能夠明白8255a是如何掃描鍵盤并讀取鍵號信息的,但是,其中遇到很多小問題無法想明白,思維進入了死胡同。但是,隨著不斷的查找資料以及翻閱書籍慢慢明白了過來。之后,一個問題解決了另一個問題又隨之而來,能夠掃描也能夠讀取鍵號信息了,可是8255a所讀取的鍵號信息又存儲在哪里?后一次掃描
21、的數(shù)據會把前一次掃描的數(shù)據覆蓋,應該用什么樣的程序將掃描到的數(shù)據截取出來并且存入自己設置的緩沖空間當中,最后,通過各種學習的手段問題也逐一得到解決。參考文獻1周佩玲,彭虎,傅忠謙.微機原理與接口技術(基于16位機).北京:電子工業(yè)出版社,2005.42湯書森.微機原理接口實驗與實踐教程.北京:清華大學出版社,2008.73 楊文武.微機原理與接口技術實驗與課程設計.城都:西南交通大學出版社,2005.104王為青、邱文勛.51單片機應用開發(fā)案例精選.北京:人民郵電出版社,2007.85 朱定華.微機原理、匯編與接口技術.北京:清華大學出版社,2005.86 7 附錄附錄1、設計程序a_port
22、 equ 80hb_port equ 81hc_port equ 82hctrl_port equ 83hdata segment buff1 db 0,7,1,2 buff2 db 4 dup(0)data endscode segment assume ds:data,cs:codestart:mov ax,data mov ds,ax lea si,buff2 mov al,88h ;設定行(c口低四位)輸出,列(c高四位)輸入 out ctrl_port,al mov al,8 ;行輸出為零即低四位1000,列輸入信號j out c_port,al mov cx,200 ;設定掃描鍵盤
23、讀入數(shù)據的次數(shù),可為200次no_key:in al,c_port ;鍵盤部分程序,判斷是否有鍵按下 and al,0f0h cmp al,0f0h ;列信號全為1,無鍵按下并返回掃描;不全為1有鍵按下 jz no_key call delay10ms ;有鍵按下調延時 in al,c_port shr al,1 ;把列信息移到低四位,邏輯右移空位補0 shr al,1 shr al,1 shr al,1 mov dl,0 ;設置初始變量dl為0,用于計數(shù)列為0的信號即dlj mov cx,4loop1:shr al,1 ;此循環(huán)為逐列檢查,找出輸出為0的列信號j jnc loop2 ; cf
24、=0即移出的位為0,則跳 inc dl loop loop1loop2:mov al,81h ;設定列為輸出,行為輸入 out ctrl_port,al mov al,0 ;列輸出為0,輸入行信號i out c_port,al in al,c_port and al,0fh cmp al,0fh ;檢查行信號是否全為1,是返回,否繼續(xù)下步 jz loop2 ;若行信號全為1,則重新掃描行信號 mov dh,0 ;設置初始行變量dh為0,用于計數(shù)行為0的信號即dhi mov cx,3loop3:shr al,1 ;該循環(huán)為逐行檢查,找出0的行信號i jnc loop4 inc dh loop loop3loo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遂寧職業(yè)學院《生物信息與智能醫(yī)學導論》2023-2024學年第二學期期末試卷
- 中級宏觀經濟學(雙語)(山東聯(lián)盟)知到課后答案智慧樹章節(jié)測試答案2025年春山東財經大學
- 中式面點制作工藝知到課后答案智慧樹章節(jié)測試答案2025年春青島酒店管理職業(yè)技術學院
- 中外兒童文學經典閱讀與寫作知到課后答案智慧樹章節(jié)測試答案2025年春湖南師范大學
- 中醫(yī)藥基礎入門知到課后答案智慧樹章節(jié)測試答案2025年春內江師范學院
- 天津工藝美術職業(yè)學院《影視節(jié)目錄制與傳播》2023-2024學年第二學期期末試卷
- 池州學院《電氣控制與可編程控制技術》2023-2024學年第二學期期末試卷
- 中國音樂學院《修建性詳細規(guī)劃制圖》2023-2024學年第二學期期末試卷
- 鄭州汽車工程職業(yè)學院《康復醫(yī)學概論》2023-2024學年第二學期期末試卷
- 上海電機學院《大學生就業(yè)與創(chuàng)業(yè)指導》2023-2024學年第一學期期末試卷
- 2025中國遠洋海運集團校園招聘1484人筆試參考題庫附帶答案詳解
- 2025年安徽商貿職業(yè)技術學院單招職業(yè)技能考試題庫一套
- 2025年皖西衛(wèi)生職業(yè)學院單招職業(yè)技能測試題庫審定版
- 2025年河南經貿職業(yè)學院單招職業(yè)適應性測試題庫帶答案
- unctad -全球投資趨勢監(jiān)測 第 48 期 Global Investment Trends Monitor,No. 48
- 2025年浙江機電職業(yè)技術學院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- GA/T 2145-2024法庭科學涉火案件物證檢驗實驗室建設技術規(guī)范
- 2025年聚焦全國兩會知識競賽題庫及答案(共100題)
- 2024智能網聯(lián)汽車零部件行業(yè)研究報告-2025-01-智能網聯(lián)
- 2025年中國融通資產管理集團限公司春季招聘(511人)高頻重點提升(共500題)附帶答案詳解
- 急性心肌梗死的急救與護理
評論
0/150
提交評論