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

微控制器(Mcu)LPC9401的PO9可以用作鍵盤(pán)輸入,當(dāng)有鍵按下時(shí),可以配置為產(chǎn)生一個(gè)鍵盤(pán)中斷(KBI)。此時(shí)需要將P0口(POE]可以位尋址)相應(yīng)位的i/o模式設(shè)置為準(zhǔn)雙向口,i/o模式的控制通過(guò)對(duì)寄存器PxMl.y和PxM2.y的操作來(lái)實(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)部上拉電阻拉成高電平,所以稱(chēng)為準(zhǔn)雙向口。當(dāng)P0.X作為鍵盤(pán)中斷源輸入口時(shí),U1置為l,Ql截止。P0.x與按鍵的連接電路如圖4-18所示:KEY鍵斷開(kāi)時(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)與鍵盤(pán)中斷有關(guān),它們是鍵盤(pán)模式寄存器KBPATN,鍵盤(pán)中斷控制寄存器KBCON和鍵盤(pán)屏蔽寄存器KBMASK。
鍵盤(pán)模式寄存器KBPATN寄存器存放的是POEI的參考狀態(tài);本設(shè)計(jì)中K13PATN寄存器的值未設(shè)置,即采用復(fù)位值(默認(rèn)值)FFH。鍵盤(pán)中斷控制寄存器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位為鍵盤(pán)中斷標(biāo)志KBIF,有中斷產(chǎn)生時(shí),CPU將該位設(shè)為1,此時(shí)不響應(yīng)其他中斷,所以在中斷返回前,需要通過(guò)軟件清零該位。其它位為保留位,不用不要將其置l。本設(shè)計(jì)中KBCON寄存器的初始值設(shè)為00H。鍵盤(pán)中斷屏蔽寄存器KBMASK的每個(gè)位與P01 1相應(yīng)位對(duì)應(yīng),位置為1.受lJ使能P01 1對(duì)應(yīng)位作為鍵盤(pán)中斷源(如:08H送到KBMAsK寄存器,KBMASK.3位為1,則使能P0.3作為鍵盤(pán)中斷源)。本設(shè)計(jì)中由于P0.0,P0.1,P0.2,P0.3,P0.6作為鍵盤(pán)中斷源,KBMASK的相應(yīng)位要設(shè)為l,所以KBMASK的初始值要設(shè)為4FH。
鍵盤(pán)中斷的產(chǎn)生過(guò)程:MCU會(huì)監(jiān)視PO口的狀態(tài),當(dāng)檢測(cè)到滿(mǎn)足中斷產(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)不相等)后,再來(lá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鍵斷開(kāi)時(shí),內(nèi)部上拉電阻把PO.0拉到邏輯高,keyl鍵按下時(shí),內(nèi)部電源通過(guò)PO.0與地相連,該位被下拉,即PO.0狀態(tài)為0,引發(fā)中斷。http://m.bxsws.com
聯(lián)系人:賈小姐
廣東省東莞市寮步鎮(zhèn)嶺安街2號(hào)