
輸入有很多種方式,如下所述:
鍵盤輸入:傳統(tǒng)方式
鼠標(biāo)輸入:圖形用戶界面的重要輸入方式
手寫輸入:手寫漢字識(shí)別,”平扳電腦”
語音輸入
觸摸屏輸入
數(shù)字化儀輸入:適用于CAD/CAM系統(tǒng)
掃描輸入:條形碼、掃描儀、光電閱讀器
三維輸入:數(shù)據(jù)手套、三維鼠標(biāo)、力矩球等
視覺輸入:攝像設(shè)備.機(jī)器人的視覺
做產(chǎn)品是為了實(shí)用,在這些輸入方式中,鍵盤輸入雖然是最早使用的一種輸入方式,但是鍵盤是實(shí)現(xiàn)人機(jī)交互最簡便和最常用的接口,鍵盤分為編碼式鍵盤和非編碼式鍵盤。非編碼式鍵盤如一組開關(guān),全部工作包括按鍵識(shí)別、按鍵代碼的產(chǎn)生、防串建和去抖動(dòng)等問題都是靠軟件查詢和軟件延時(shí)實(shí)現(xiàn)的。需要的硬件小,且價(jià)格便宜。本設(shè)計(jì)由于是針對(duì)農(nóng)村的烘烤設(shè)備,基于成本和功能的考慮,采用非編碼式鍵盤輸入實(shí)現(xiàn)干燥箱溫濕度設(shè)置及水箱水位設(shè)置。

微控制器(Mcu)LPC9401的PO9可以用作鍵盤輸入,當(dāng)有鍵按下時(shí),可以配置為產(chǎn)生一個(gè)鍵盤中斷(KBI)。此時(shí)需要將P0口(POE]可以位尋址)相應(yīng)位的i/o模式設(shè)置為準(zhǔn)雙向口,i/o模式的控制通過對(duì)寄存器PxMl.y和PxM2.y的操作來實(shí)現(xiàn)。如設(shè)置Po.7為“準(zhǔn)雙向口”,PO的其他I/O設(shè)為“僅為輸入”,可對(duì)P0的I/O配置寄存器POMl,POM2作如下操作:
MOV POMl,#01111111B,Mov PoM2,#00000000B準(zhǔn)雙向口的I/O結(jié)構(gòu)如圖4-17,PO.X表示Po口的各位,X可以為o_7。如PO.X作為輸出口,D為l時(shí),Q1截止,電位拉至1;D為0時(shí),Q1導(dǎo)通,電位拉至0。

此時(shí)該位既可把外部電路拉低,也可由內(nèi)部上拉電阻拉成高電平,所以稱為準(zhǔn)雙向口。當(dāng)P0.X作為鍵盤中斷源輸入口時(shí),U1置為l,Ql截止。P0.x與按鍵的連接電路如圖4-18所示:KEY鍵斷開時(shí),該位由內(nèi)部上拉電阻拉成高電阻;KEY鍵按下時(shí),內(nèi)部電源經(jīng)P0.X,R2,KEY流向地,該位被拉低至低電平。本設(shè)計(jì)中,使用P0.0,P0.1,P0.2,P0.3,P0.6口作為中斷源輸入口。有三個(gè)特殊功能寄存器(SFR)與鍵盤中斷有關(guān),它們是鍵盤模式寄存器KBPATN,鍵盤中斷控制寄存器KBCON和鍵盤屏蔽寄存器KBMASK。
鍵盤模式寄存器KBPATN寄存器存放的是POEI的參考狀態(tài);本設(shè)計(jì)中K13PATN寄存器的值未設(shè)置,即采用復(fù)位值(默認(rèn)值)FFH。鍵盤中斷控制寄存器KBCON的PATN_SEL位決定P01 1與KBPATN匹配方式:設(shè)PATN_SEL位為l,JJPoD的狀態(tài)必須等于KBPATN的內(nèi)容才能產(chǎn)生中斷,清零PATN SEL,貝lJP0口的狀態(tài)不等于KBPATN的內(nèi)容才能產(chǎn)生中斷。KBCON的第0位為鍵盤中斷標(biāo)志KBIF,有中斷產(chǎn)生時(shí),CPU將該位設(shè)為1,此時(shí)不響應(yīng)其他中斷,所以在中斷返回前,需要通過軟件清零該位。其它位為保留位,不用不要將其置l。本設(shè)計(jì)中KBCON寄存器的初始值設(shè)為00H。鍵盤中斷屏蔽寄存器KBMASK的每個(gè)位與P01 1相應(yīng)位對(duì)應(yīng),位置為1.受lJ使能P01 1對(duì)應(yīng)位作為鍵盤中斷源(如:08H送到KBMAsK寄存器,KBMASK.3位為1,則使能P0.3作為鍵盤中斷源)。本設(shè)計(jì)中由于P0.0,P0.1,P0.2,P0.3,P0.6作為鍵盤中斷源,KBMASK的相應(yīng)位要設(shè)為l,所以KBMASK的初始值要設(shè)為4FH。
鍵盤中斷的產(chǎn)生過程:MCU會(huì)監(jiān)視PO口的狀態(tài),當(dāng)檢測(cè)到滿足中斷產(chǎn)生條件(當(dāng)PATN SEL---I時(shí),檢測(cè):至口狀態(tài)與KBPATN內(nèi)參考狀態(tài)相等,或當(dāng)PATN SEL=0時(shí),鋇,NPo口某位狀態(tài)與KBPATN相應(yīng)位的參考狀態(tài)不相等)后,再來檢查引起這個(gè)條件的I/O在KBMASK中是否被使能作為中斷源,如果是,則產(chǎn)生中斷,否則不產(chǎn)生中斷。本測(cè)控系統(tǒng)中,KBCON的初值為00H,位PATN-SEL的值為0,KBPATN的值為默認(rèn)值(復(fù)位值)FFH則MCU檢查到P0.0,P0.1,P0.2,P0.3,PO.6中某一個(gè)的狀態(tài)為0時(shí)產(chǎn)生中斷。5個(gè)按鍵與P0.X的連接如圖4-19所示,當(dāng)有按鍵按下時(shí),對(duì)應(yīng)PO.x的狀態(tài)變?yōu)?/font>0,產(chǎn)生中斷。如keyl鍵斷開時(shí),內(nèi)部上拉電阻把PO.0拉到邏輯高,keyl鍵按下時(shí),內(nèi)部電源通過PO.0與地相連,該位被下拉,即PO.0狀態(tài)為0,引發(fā)中斷。http://www.9919977.com
聯(lián)系人:賈小姐
廣東省東莞市寮步鎮(zhèn)嶺安街2號(hào)