版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章
人機(jī)交互技術(shù)4.1鍵盤接口設(shè)計(jì)4.2LED顯示器接口設(shè)計(jì)4.3LCD顯示器接口設(shè)計(jì)4.4觸摸屏技術(shù)4.5打印機(jī)接口設(shè)計(jì)第4章單片機(jī)的人機(jī)交互技術(shù)人機(jī)交互是指操作人員與計(jì)算機(jī)之間進(jìn)行的現(xiàn)場(chǎng)或遠(yuǎn)程信息交換與聯(lián)系。用于人機(jī)交互的設(shè)備稱為人機(jī)接口,這些設(shè)備主要有鍵盤、顯示器和打印機(jī)等。一般的計(jì)算機(jī)控制系統(tǒng)必須要有人機(jī)交互功能,以便操作人員可以隨時(shí)輸入數(shù)據(jù)傳遞生產(chǎn)命令,并通過(guò)顯示和打印功能及時(shí)掌握生產(chǎn)情況。對(duì)于簡(jiǎn)單的應(yīng)用場(chǎng)合,由于單片機(jī)本身就是一個(gè)最小的應(yīng)用系統(tǒng),因此能直接滿足實(shí)際應(yīng)用所要求的功能,充分發(fā)揮單片機(jī)硬件結(jié)構(gòu)緊湊、設(shè)計(jì)簡(jiǎn)單、成本低的優(yōu)點(diǎn)。當(dāng)設(shè)計(jì)一些較為復(fù)雜的測(cè)控系統(tǒng)時(shí),其自身的功能往往不能夠滿足應(yīng)用的需要,此時(shí)可利用單片機(jī)強(qiáng)大的外部擴(kuò)展功能,擴(kuò)展各種外圍電路以補(bǔ)充片內(nèi)資源的不足,適應(yīng)特定應(yīng)用的要求。概述鍵盤是若干按鍵的集合,是向系統(tǒng)提供操作人員干預(yù)命令及數(shù)據(jù)的接口設(shè)備。鍵盤可分為編碼鍵盤和非編碼鍵盤兩種。編碼鍵盤能夠由硬件邏輯自動(dòng)提供與被按鍵對(duì)應(yīng)的編碼。此外,一般還具有去抖動(dòng)和多鍵、竄鍵保護(hù)電路,這種鍵盤使用方便,但需要較多的硬件,價(jià)格較貴,一般的單片機(jī)應(yīng)用系統(tǒng)較少采用。非編碼鍵盤只簡(jiǎn)單地提供行和列的矩陣,其它工作都靠軟件來(lái)完成,由于其經(jīng)濟(jì)實(shí)用,目前在單片機(jī)應(yīng)用系統(tǒng)中多采用這種辦法。4.1鍵盤接口設(shè)計(jì)1.在設(shè)計(jì)鍵盤接口時(shí),解決以下幾個(gè)問(wèn)題:檢測(cè)是否有鍵按下;去抖動(dòng)若有鍵按下,判定是哪一個(gè)鍵;確定被按鍵的讀數(shù);不管一次按鍵持續(xù)的時(shí)間有多長(zhǎng),僅采用一個(gè)數(shù)據(jù);處理同時(shí)按鍵。5~10ms5~10ms>100ms按鍵過(guò)程
前跳沿
后跳沿
鍵閉合
2.獨(dú)立式連接的非編碼鍵盤(b)查詢方式(a)中斷方式8031INT0+5VINT1&P1.0P1.1P1.2P1.78031+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7為了識(shí)別鍵盤上的閉合鍵,通常采用兩種方法,一種為掃描法,另一種稱為線反轉(zhuǎn)法。掃描法原理:CPU每次使并行輸出端口的某位為零,而其它位為1,然后CPU只要讀取輸入端口中的數(shù)據(jù),就可判別。3.矩陣式連接的非編碼鍵盤0123456789101112131415+5V8031P1.6P1.7P1.0P1.1P1.2P1.3P1.5P1.4線反轉(zhuǎn)法5VPA0PA1PA2PA3PB0PB1PB2PB310kΩ×8原理:第一步設(shè)A口輸出B口輸入A口輸出全0值,然后從B口讀入;第二步設(shè)A口輸入B口輸出將B口剛讀入的值輸出,再?gòu)腁口讀入908255A例:用一位數(shù)碼管顯示4X4矩陣鍵盤按鍵號(hào)名稱0-F。#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//段碼ucharPre_KeyNo=16,KeyNo=16;//上次和當(dāng)前按鍵的序號(hào),序號(hào)范圍0~15,16表示無(wú)按鍵//延時(shí)voidDelayMS(uintx){uchari;while(x--)for(i=0;i<120;i++);}//矩陣鍵盤掃描voidKeys_Scan(){ucharTmp;P1=0x0f;//高4位置0,放入4行DelayMS(1);Tmp=P1^0x0f;//異或switch(Tmp)//判斷按鍵發(fā)生于0~3列的哪一列{case1:KeyNo=0;break;case2:KeyNo=1;break;case4:KeyNo=2;break;case8:KeyNo=3;break;default:KeyNo=16;//無(wú)鍵按下}P1=0xf0;//低4位置0,放入4列DelayMS(1);Tmp=P1>>4^0x0f;switch(Tmp)//對(duì)0~3行分別附加行首鍵值0,4,8,12{case1:KeyNo+=0;break;case2:KeyNo+=4;break;case4:KeyNo+=8;break;case8:KeyNo+=12;}}//主程序voidmain(){P0=0x00;while(1){P1=0xf0;if(P1!=0xf0)Keys_Scan();//獲取鍵序號(hào)if(Pre_KeyNo!=KeyNo){P0=DSY_CODE[KeyNo];Pre_KeyNo=KeyNo;}DelayMS(100);}}1.LED顯示技術(shù)4.2LED顯示器接口設(shè)計(jì)在單片機(jī)應(yīng)用系統(tǒng)中,為了便于觀察和監(jiān)視系統(tǒng)的運(yùn)行情況,經(jīng)常需要用顯示器顯示輸入信息、中間信息、運(yùn)行狀態(tài)及運(yùn)行結(jié)果等數(shù)據(jù)。目前常用的顯示器件有LED(發(fā)光二極管顯示器)和LCD(液晶顯示器)兩種。
LED顯示器主要是指由發(fā)光二極管組成的數(shù)碼管顯示器或LED點(diǎn)陣顯示模塊。根據(jù)公共端的接法不同,LED數(shù)碼管分為共陰極和共陽(yáng)極二種類型,在使用時(shí),由于LED顯示器的工作電流通常為5~15mA,工作電壓為1.5~2.5V,因此使用時(shí)需加驅(qū)動(dòng)及限流電阻。根據(jù)顯示方式不同,LED顯示有靜態(tài)顯示和動(dòng)態(tài)顯示之分。(1)靜態(tài)顯示方式:每一位顯示都占用單獨(dú)的具有鎖存功能的I/O接口,顯示信號(hào)始終存在;LED數(shù)碼管的COM端連接在一起;
8051P1.5P1.4P1.3P1.2P1.1P1.0LEDCBAdpgfedcbadpgfedcbaMC14495+5VLEDCBAdpgfedcbadpgfedcbaMC14495+5V(2)動(dòng)態(tài)顯示方式是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,每個(gè)數(shù)碼管的COM為各自獨(dú)立的位選信號(hào),當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管會(huì)顯示出字形,取決于位選信號(hào)。用第2章動(dòng)態(tài)顯示程序控制顯示的方法是1ms延時(shí),CPU周而復(fù)始顯示,在實(shí)際工程中是不可取的;另外還有一種方法是定時(shí)20ms掃描一次,在中斷服務(wù)程序中,將所有數(shù)碼管顯示一次。雖然程序簡(jiǎn)單,但CPU的負(fù)擔(dān)較重,一次循環(huán)顯示的過(guò)程,需要幾個(gè)毫秒,在這段時(shí)間里CPU不能做其它事情,否則影響LED亮度的一致性。
在一些實(shí)時(shí)性要求較高的控制系統(tǒng)中,可以采用1ms中斷顯示的方法控制顯示,即用單片機(jī)內(nèi)部定時(shí)器每隔1ms產(chǎn)生一次中斷。在定時(shí)中斷服務(wù)程序中更新顯示,由于中斷顯示程序不需要延時(shí),更新一位顯示只需要幾十微秒,對(duì)主程序的影響較小。例:如第二章例3圖所示,用定時(shí)中斷的方式編寫控制4位顯示器動(dòng)態(tài)顯示的程序。位選碼輸出段選碼輸出#include"reg51.h"charcodedispdata[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*數(shù)字0-9對(duì)應(yīng)的段選碼*/chardis_data[]={2,4,6,8};voiddisp(unsignedcharch0) /*顯示函數(shù)*/{ staticcharch=0x01; P1=ch; P2=dispdata[dis_data[ch0]]; ch=ch<<1; if(ch==0x10)ch=0x01;}voidtime(void)interrupt1/*T0中斷服務(wù)程序入口,定時(shí)1ms*/{ staticunsignedcharch1=0;TH0=-1000/256; TL0=-1000%256;disp(ch1);ch1++;if(ch1==0x04)ch1=0; }voidmain(void){ TMOD=0x01; /*T0為16位定時(shí)工作方式*/TH0=-1000/256; /*預(yù)置計(jì)數(shù)初值*/TL0=-1000%256;EA=1; /*CPU中斷開放*/ET0=1; /*T/C0中斷開放*/TR0=1; /*啟動(dòng)T/C0開始定時(shí)*/while(1); /*等待中斷*/}LCD(LiquidCrystalDisplay)液晶顯示是一種新型的顯示技術(shù),它是利用液晶材料的電光效應(yīng)(如加電引起光學(xué)特性變化)的顯示器。液晶本身不發(fā)光,靠電信號(hào)控制環(huán)境光在顯示部位反射(或透射)而顯示。液晶顯示具有很多獨(dú)到的優(yōu)異特性,比如低壓、微功耗、平板型結(jié)構(gòu)、被動(dòng)型顯示、易于彩色化、長(zhǎng)壽命等,已經(jīng)越來(lái)越多地應(yīng)用到各個(gè)領(lǐng)域,從智能化儀器儀表、計(jì)算機(jī)到家用電器都可以看到液晶顯示的身影。液晶顯示器通常把驅(qū)動(dòng)電路集成在一起,形成液晶顯示模塊,用戶可以不必了解驅(qū)動(dòng)器與顯示器是如何連接的,使用時(shí)只需按照一定的要求向顯示模塊發(fā)命令和寫數(shù)據(jù)即可。4.3LCD顯示技術(shù)典型芯片OCMJ(奧可拉)中文液晶顯示模塊OCMJ內(nèi)含16*16點(diǎn)陣的國(guó)標(biāo)一、二級(jí)簡(jiǎn)體漢字和8*8點(diǎn)陣及8*16點(diǎn)陣的ASCII字符,用戶輸入GB2312區(qū)位碼或ASCII碼即可實(shí)現(xiàn)文本顯示。OCMJ可實(shí)現(xiàn)一般的點(diǎn)陣圖形液晶顯示功能,提供有位點(diǎn)陣和字節(jié)點(diǎn)陣兩種圖形顯示方式,用戶可在指定的屏幕位置上以點(diǎn)為單位或以字節(jié)為單位(橫向)進(jìn)行圖形顯示操作。中文液晶顯示模塊可以實(shí)現(xiàn)漢字、ASCII碼、點(diǎn)陣圖形和變化曲線的同屏顯示,并可通過(guò)字節(jié)點(diǎn)陣圖形方式造字。標(biāo)準(zhǔn)用戶硬件接口采用REQ和BUSY握手協(xié)議,簡(jiǎn)單可靠。提供10個(gè)用戶接口命令代碼,編程很方便。OCMJ中文顯示模塊引腳說(shuō)明OCMJ(4×8)中文顯示模塊命令格式3F典型應(yīng)用(OCMJ4×8)如圖為MCS-51單片機(jī)與OCMJ4×8中文顯示模塊的接口電路。圖中單片機(jī)的P1口接OCMJ模塊的8根數(shù)據(jù)線用于數(shù)據(jù)的傳送,P0.0、P0.1引腳接OCMJ模塊的BUSY和REQ作為握手聯(lián)絡(luò)信號(hào)。1)寫字節(jié)子程序該子程序采用查詢方式對(duì)模塊進(jìn)行寫操作。CLRP0.0;復(fù)位SUB1:JBP0.1,SUB1;確信模塊空閑(BUSY=0)MOVP1,A;向總線送數(shù)NOP;等待數(shù)據(jù)總線穩(wěn)定SETBP0.0;置模塊REQ=1,向模塊發(fā)請(qǐng)求命令HE3:JNBP0.1,HE3;等待模塊響應(yīng)(BUSY=1)CLRP0.0;撤消REQ請(qǐng)求信號(hào),數(shù)據(jù)輸入結(jié)束RET;返回2)寫漢字程序段該程序段顯示一個(gè)漢字“啊”(區(qū)位碼為1601H)。MOVA,#0F0H;選顯示漢字命令字ACALLSUB1;調(diào)用寫子程序MOVA,#02H;#02H,XX,屏幕坐標(biāo)ACALLSUB1;調(diào)用寫子程序MOVA,#00H;#00H,YY,屏幕坐標(biāo)ACALLSUB1;調(diào)用寫子程序MOVA,#16H;#16H,QQ,GB2312漢字區(qū)位碼高位ACALLSUB1;調(diào)用寫子程序MOVA,#01H;#01H,WW,GB2312漢字區(qū)位碼低位ACALLSUB1;調(diào)用寫子程序3)寫8×16ASCII碼程序段
該程序段顯示一個(gè)8×16ASCⅡ碼“A”。MOVA,#0F9H;選顯示8×16ASCII字符命令字ACALLSUB1;調(diào)用寫子程序MOVA,#04H;#04H,XX坐標(biāo)值A(chǔ)CALLSUB1MOVA,#00H;#00H,YY坐標(biāo)值A(chǔ)CALLSUB1MOVA,#41H;#41H,ASCII字符代碼“A”ACALLSUB14)繪制一個(gè)點(diǎn)(1×1點(diǎn)陣)程序段
MOVA,#0F2H;選顯示位點(diǎn)陣命令字ACALLSUB1;調(diào)用寫子程序MOVA,#20H;#20H,XX,以1×1點(diǎn)陣屏幕坐標(biāo)值XACALLSUB1MOVA,#00H;#00H,YY,以1×1點(diǎn)陣屏幕坐標(biāo)值YACALLSUB15)繪制一橫線(1×8點(diǎn)陣)程序段
MOVA,#0F3H;選顯示字節(jié)點(diǎn)陣命令字ACALLSUB1;調(diào)用寫子程序MOVA,#04H;#04H,XX,以1×8點(diǎn)陣屏幕坐標(biāo)值XACALLSUB1MOVA,#00H;#00H,YY,以1×1點(diǎn)陣屏幕坐標(biāo)值YACALLSUB1MOVA,#0FH;為輸入字節(jié)數(shù)據(jù),1為黑點(diǎn),0為白點(diǎn)ACALLSUB1C51程序顯示“啊”和“A”#include"reg51.h"#include"intrins.h"sbitLCD_REQ=P0^0;sbitLCD_BUSY=P0^1;voidLCD_write(charcbyte){LCD_REQ=0;//復(fù)位while(LCD_BUSY==1);P1=cbyte;_nop_;LCD_REQ=1;while(LCD_BUSY==0);LCD_REQ=0;}voidchinese_disp(charnx,charny,charnqu,charnwei){LCD_write(0xf0);LCD_write(nx);LCD_write(ny);LCD_write(nqu);LCD_write(nwei);}voidasc_disp(charccom,charnx,charny,charcasc){LCD_write(ccom);LCD_write(nx);LCD_write(ny);LCD_write(casc);}voidmain(){chinese_disp(0x02,0x00,0x16,0x01);asc_disp(0xf9,0x04,0x00,0x41);while(1);}4.4.1觸摸屏技術(shù)概述
觸摸屏又稱為“觸控屏”、“觸控面板”,是一種可接收觸頭等輸入訊號(hào)的感應(yīng)式液晶顯示裝置,當(dāng)接觸了屏幕上的圖形按鈕時(shí),屏幕上的觸覺(jué)反饋系統(tǒng)可根據(jù)預(yù)先編程的程式驅(qū)動(dòng)各種連結(jié)裝置,可用以取代機(jī)械式的按鈕面板,并借由液晶顯示畫面制造出生動(dòng)的影音效果。
觸摸屏作為一種較新的電腦輸入設(shè)備,是目前最簡(jiǎn)單、方便、自然的人機(jī)交互方式。
從技術(shù)原理角度來(lái)講,觸摸屏是一套透明的絕對(duì)定位系統(tǒng),其特性是:透明、采用絕對(duì)坐標(biāo)及能檢測(cè)觸摸并定位。4.4觸摸屏技術(shù)4.4.2觸摸屏的分類
從技術(shù)原理來(lái)區(qū)別觸摸屏,可分為五個(gè)基本種類:矢量壓力傳感技術(shù)觸摸屏、電阻技術(shù)觸摸屏、電容技術(shù)觸摸屏、紅外線技術(shù)觸摸屏、表面聲波技術(shù)觸摸屏。
每一類觸摸屏都有其各自的優(yōu)缺點(diǎn),要了解哪種觸摸屏適用于哪種場(chǎng)合,關(guān)鍵就在于要懂得每一類觸摸屏技術(shù)的工作原理和特點(diǎn)。
矢量壓力傳感技術(shù)觸摸屏已退出歷史舞臺(tái);紅外線技術(shù)觸摸屏價(jià)格低廉,但其外框易碎,容易產(chǎn)生光干擾,曲面情況下失真;電容技術(shù)觸摸屏設(shè)計(jì)構(gòu)思合理,但其圖像失真問(wèn)題很難得到根本解決;電阻技術(shù)觸摸屏的定位準(zhǔn)確,但其價(jià)格頗高,且怕刮易損;表面聲波觸摸屏解決了以往觸摸屏的各種缺陷,清晰不容易被損壞,適于各種場(chǎng)合,缺點(diǎn)是屏幕表面如果有水滴和塵土?xí)褂|摸屏變的遲鈍,甚至不工作。4.5.1標(biāo)準(zhǔn)Centronics接口
并行打印機(jī)接口通常按Centronics標(biāo)準(zhǔn)定義插頭插座引腳,Centronics標(biāo)準(zhǔn)中各引腳和信號(hào)之間的對(duì)應(yīng)關(guān)系見下表。4.5打印機(jī)接口電路設(shè)計(jì)4.5.2應(yīng)用實(shí)例
在計(jì)算機(jī)控制系統(tǒng)中,常用的有并行和串行接口的針式打印機(jī)。下面介紹并行打印機(jī)與計(jì)算機(jī)的接口舉例。
例:用8255控制打印機(jī)。
下圖是8031擴(kuò)展8255與打印機(jī)接口的電路。8255的片選線為P0.7,打印機(jī)與8031采用查詢方式交換數(shù)據(jù)。打印機(jī)的狀態(tài)信號(hào)輸入給PC7,打印機(jī)忙時(shí)BUSY=1,微型打印機(jī)的數(shù)據(jù)輸入采用選通控制,當(dāng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2018-2024年中國(guó)垃圾焚燒煙氣處理市場(chǎng)深度調(diào)研分析及投資前景研究預(yù)測(cè)報(bào)告
- 政府公共關(guān)系(第二版)課件 第10章 政府政策過(guò)程中的傳播
- 暢想青春演講稿
- 2021年律師年度工作總結(jié)【10篇】
- 店長(zhǎng)工作計(jì)劃
- 醫(yī)院的實(shí)習(xí)報(bào)告模板合集七篇
- 高中教師轉(zhuǎn)正自我鑒定4篇
- 小孩八佰觀后感心得體會(huì)
- 讀《鋼鐵是怎樣煉成的》有感6篇
- 2023年志愿工作心得(3篇)
- 醫(yī)院服務(wù)意識(shí)培訓(xùn)課件
- 安全生產(chǎn)事故責(zé)任倒查制度范本
- 基金行業(yè)薪酬報(bào)告調(diào)查報(bào)告
- GB/T 18329.2-2023滑動(dòng)軸承多層金屬滑動(dòng)軸承第2部分:合金厚度≥2 mm的結(jié)合強(qiáng)度破壞性試驗(yàn)
- 《中國(guó)健康生活方式預(yù)防心血管代謝疾病指南》
- 如何正確看待成績(jī)主題班會(huì)課件
- (滬教牛津版)深圳市小學(xué)1-6年級(jí)英語(yǔ)單詞默寫表(英文+中文+默寫)
- 樂(lè)山英文介紹
- 工程量清單清單計(jì)價(jià)封面
- 壓濾機(jī)產(chǎn)品質(zhì)量檢測(cè)報(bào)告
- 267條表情猜成語(yǔ)【動(dòng)畫版】
評(píng)論
0/150
提交評(píng)論