計算機控制技術西電版第4章人機交互技術_第1頁
計算機控制技術西電版第4章人機交互技術_第2頁
計算機控制技術西電版第4章人機交互技術_第3頁
計算機控制技術西電版第4章人機交互技術_第4頁
計算機控制技術西電版第4章人機交互技術_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章

人機交互技術4.1鍵盤接口設計4.2LED顯示器接口設計4.3LCD顯示器接口設計4.4觸摸屏技術4.5打印機接口設計第4章單片機的人機交互技術人機交互是指操作人員與計算機之間進行的現場或遠程信息交換與聯系。用于人機交互的設備稱為人機接口,這些設備主要有鍵盤、顯示器和打印機等。一般的計算機控制系統必須要有人機交互功能,以便操作人員可以隨時輸入數據傳遞生產命令,并通過顯示和打印功能及時掌握生產情況。對于簡單的應用場合,由于單片機本身就是一個最小的應用系統,因此能直接滿足實際應用所要求的功能,充分發揮單片機硬件結構緊湊、設計簡單、成本低的優點。當設計一些較為復雜的測控系統時,其自身的功能往往不能夠滿足應用的需要,此時可利用單片機強大的外部擴展功能,擴展各種外圍電路以補充片內資源的不足,適應特定應用的要求。概述鍵盤是若干按鍵的集合,是向系統提供操作人員干預命令及數據的接口設備。鍵盤可分為編碼鍵盤和非編碼鍵盤兩種。編碼鍵盤能夠由硬件邏輯自動提供與被按鍵對應的編碼。此外,一般還具有去抖動和多鍵、竄鍵保護電路,這種鍵盤使用方便,但需要較多的硬件,價格較貴,一般的單片機應用系統較少采用。非編碼鍵盤只簡單地提供行和列的矩陣,其它工作都靠軟件來完成,由于其經濟實用,目前在單片機應用系統中多采用這種辦法。4.1鍵盤接口設計1.在設計鍵盤接口時,解決以下幾個問題:檢測是否有鍵按下;去抖動若有鍵按下,判定是哪一個鍵;確定被按鍵的讀數;不管一次按鍵持續的時間有多長,僅采用一個數據;處理同時按鍵。5~10ms5~10ms>100ms按鍵過程

前跳沿

后跳沿

鍵閉合

2.獨立式連接的非編碼鍵盤(b)查詢方式(a)中斷方式8031INT0+5VINT1&P1.0P1.1P1.2P1.78031+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7為了識別鍵盤上的閉合鍵,通常采用兩種方法,一種為掃描法,另一種稱為線反轉法。掃描法原理:CPU每次使并行輸出端口的某位為零,而其它位為1,然后CPU只要讀取輸入端口中的數據,就可判別。3.矩陣式連接的非編碼鍵盤0123456789101112131415+5V8031P1.6P1.7P1.0P1.1P1.2P1.3P1.5P1.4線反轉法5VPA0PA1PA2PA3PB0PB1PB2PB310kΩ×8原理:第一步設A口輸出B口輸入A口輸出全0值,然后從B口讀入;第二步設A口輸入B口輸出將B口剛讀入的值輸出,再從A口讀入908255A例:用一位數碼管顯示4X4矩陣鍵盤按鍵號名稱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;//上次和當前按鍵的序號,序號范圍0~15,16表示無按鍵//延時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)//判斷按鍵發生于0~3列的哪一列{case1:KeyNo=0;break;case2:KeyNo=1;break;case4:KeyNo=2;break;case8:KeyNo=3;break;default:KeyNo=16;//無鍵按下}P1=0xf0;//低4位置0,放入4列DelayMS(1);Tmp=P1>>4^0x0f;switch(Tmp)//對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();//獲取鍵序號if(Pre_KeyNo!=KeyNo){P0=DSY_CODE[KeyNo];Pre_KeyNo=KeyNo;}DelayMS(100);}}1.LED顯示技術4.2LED顯示器接口設計在單片機應用系統中,為了便于觀察和監視系統的運行情況,經常需要用顯示器顯示輸入信息、中間信息、運行狀態及運行結果等數據。目前常用的顯示器件有LED(發光二極管顯示器)和LCD(液晶顯示器)兩種。

LED顯示器主要是指由發光二極管組成的數碼管顯示器或LED點陣顯示模塊。根據公共端的接法不同,LED數碼管分為共陰極和共陽極二種類型,在使用時,由于LED顯示器的工作電流通常為5~15mA,工作電壓為1.5~2.5V,因此使用時需加驅動及限流電阻。根據顯示方式不同,LED顯示有靜態顯示和動態顯示之分。(1)靜態顯示方式:每一位顯示都占用單獨的具有鎖存功能的I/O接口,顯示信號始終存在;LED數碼管的COM端連接在一起;

8051P1.5P1.4P1.3P1.2P1.1P1.0LEDCBAdpgfedcbadpgfedcbaMC14495+5VLEDCBAdpgfedcbadpgfedcbaMC14495+5V(2)動態顯示方式是將所有數碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,每個數碼管的COM為各自獨立的位選信號,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是哪個數碼管會顯示出字形,取決于位選信號。用第2章動態顯示程序控制顯示的方法是1ms延時,CPU周而復始顯示,在實際工程中是不可取的;另外還有一種方法是定時20ms掃描一次,在中斷服務程序中,將所有數碼管顯示一次。雖然程序簡單,但CPU的負擔較重,一次循環顯示的過程,需要幾個毫秒,在這段時間里CPU不能做其它事情,否則影響LED亮度的一致性。

在一些實時性要求較高的控制系統中,可以采用1ms中斷顯示的方法控制顯示,即用單片機內部定時器每隔1ms產生一次中斷。在定時中斷服務程序中更新顯示,由于中斷顯示程序不需要延時,更新一位顯示只需要幾十微秒,對主程序的影響較小。例:如第二章例3圖所示,用定時中斷的方式編寫控制4位顯示器動態顯示的程序。位選碼輸出段選碼輸出#include"reg51.h"charcodedispdata[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*數字0-9對應的段選碼*/chardis_data[]={2,4,6,8};voiddisp(unsignedcharch0) /*顯示函數*/{ staticcharch=0x01; P1=ch; P2=dispdata[dis_data[ch0]]; ch=ch<<1; if(ch==0x10)ch=0x01;}voidtime(void)interrupt1/*T0中斷服務程序入口,定時1ms*/{ staticunsignedcharch1=0;TH0=-1000/256; TL0=-1000%256;disp(ch1);ch1++;if(ch1==0x04)ch1=0; }voidmain(void){ TMOD=0x01; /*T0為16位定時工作方式*/TH0=-1000/256; /*預置計數初值*/TL0=-1000%256;EA=1; /*CPU中斷開放*/ET0=1; /*T/C0中斷開放*/TR0=1; /*啟動T/C0開始定時*/while(1); /*等待中斷*/}LCD(LiquidCrystalDisplay)液晶顯示是一種新型的顯示技術,它是利用液晶材料的電光效應(如加電引起光學特性變化)的顯示器。液晶本身不發光,靠電信號控制環境光在顯示部位反射(或透射)而顯示。液晶顯示具有很多獨到的優異特性,比如低壓、微功耗、平板型結構、被動型顯示、易于彩色化、長壽命等,已經越來越多地應用到各個領域,從智能化儀器儀表、計算機到家用電器都可以看到液晶顯示的身影。液晶顯示器通常把驅動電路集成在一起,形成液晶顯示模塊,用戶可以不必了解驅動器與顯示器是如何連接的,使用時只需按照一定的要求向顯示模塊發命令和寫數據即可。4.3LCD顯示技術典型芯片OCMJ(奧可拉)中文液晶顯示模塊OCMJ內含16*16點陣的國標一、二級簡體漢字和8*8點陣及8*16點陣的ASCII字符,用戶輸入GB2312區位碼或ASCII碼即可實現文本顯示。OCMJ可實現一般的點陣圖形液晶顯示功能,提供有位點陣和字節點陣兩種圖形顯示方式,用戶可在指定的屏幕位置上以點為單位或以字節為單位(橫向)進行圖形顯示操作。中文液晶顯示模塊可以實現漢字、ASCII碼、點陣圖形和變化曲線的同屏顯示,并可通過字節點陣圖形方式造字。標準用戶硬件接口采用REQ和BUSY握手協議,簡單可靠。提供10個用戶接口命令代碼,編程很方便。OCMJ中文顯示模塊引腳說明OCMJ(4×8)中文顯示模塊命令格式3F典型應用(OCMJ4×8)如圖為MCS-51單片機與OCMJ4×8中文顯示模塊的接口電路。圖中單片機的P1口接OCMJ模塊的8根數據線用于數據的傳送,P0.0、P0.1引腳接OCMJ模塊的BUSY和REQ作為握手聯絡信號。1)寫字節子程序該子程序采用查詢方式對模塊進行寫操作。CLRP0.0;復位SUB1:JBP0.1,SUB1;確信模塊空閑(BUSY=0)MOVP1,A;向總線送數NOP;等待數據總線穩定SETBP0.0;置模塊REQ=1,向模塊發請求命令HE3:JNBP0.1,HE3;等待模塊響應(BUSY=1)CLRP0.0;撤消REQ請求信號,數據輸入結束RET;返回2)寫漢字程序段該程序段顯示一個漢字“啊”(區位碼為1601H)。MOVA,#0F0H;選顯示漢字命令字ACALLSUB1;調用寫子程序MOVA,#02H;#02H,XX,屏幕坐標ACALLSUB1;調用寫子程序MOVA,#00H;#00H,YY,屏幕坐標ACALLSUB1;調用寫子程序MOVA,#16H;#16H,QQ,GB2312漢字區位碼高位ACALLSUB1;調用寫子程序MOVA,#01H;#01H,WW,GB2312漢字區位碼低位ACALLSUB1;調用寫子程序3)寫8×16ASCII碼程序段

該程序段顯示一個8×16ASCⅡ碼“A”。MOVA,#0F9H;選顯示8×16ASCII字符命令字ACALLSUB1;調用寫子程序MOVA,#04H;#04H,XX坐標值ACALLSUB1MOVA,#00H;#00H,YY坐標值ACALLSUB1MOVA,#41H;#41H,ASCII字符代碼“A”ACALLSUB14)繪制一個點(1×1點陣)程序段

MOVA,#0F2H;選顯示位點陣命令字ACALLSUB1;調用寫子程序MOVA,#20H;#20H,XX,以1×1點陣屏幕坐標值XACALLSUB1MOVA,#00H;#00H,YY,以1×1點陣屏幕坐標值YACALLSUB15)繪制一橫線(1×8點陣)程序段

MOVA,#0F3H;選顯示字節點陣命令字ACALLSUB1;調用寫子程序MOVA,#04H;#04H,XX,以1×8點陣屏幕坐標值XACALLSUB1MOVA,#00H;#00H,YY,以1×1點陣屏幕坐標值YACALLSUB1MOVA,#0FH;為輸入字節數據,1為黑點,0為白點ACALLSUB1C51程序顯示“啊”和“A”#include"reg51.h"#include"intrins.h"sbitLCD_REQ=P0^0;sbitLCD_BUSY=P0^1;voidLCD_write(charcbyte){LCD_REQ=0;//復位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觸摸屏技術概述

觸摸屏又稱為“觸控屏”、“觸控面板”,是一種可接收觸頭等輸入訊號的感應式液晶顯示裝置,當接觸了屏幕上的圖形按鈕時,屏幕上的觸覺反饋系統可根據預先編程的程式驅動各種連結裝置,可用以取代機械式的按鈕面板,并借由液晶顯示畫面制造出生動的影音效果。

觸摸屏作為一種較新的電腦輸入設備,是目前最簡單、方便、自然的人機交互方式。

從技術原理角度來講,觸摸屏是一套透明的絕對定位系統,其特性是:透明、采用絕對坐標及能檢測觸摸并定位。4.4觸摸屏技術4.4.2觸摸屏的分類

從技術原理來區別觸摸屏,可分為五個基本種類:矢量壓力傳感技術觸摸屏、電阻技術觸摸屏、電容技術觸摸屏、紅外線技術觸摸屏、表面聲波技術觸摸屏。

每一類觸摸屏都有其各自的優缺點,要了解哪種觸摸屏適用于哪種場合,關鍵就在于要懂得每一類觸摸屏技術的工作原理和特點。

矢量壓力傳感技術觸摸屏已退出歷史舞臺;紅外線技術觸摸屏價格低廉,但其外框易碎,容易產生光干擾,曲面情況下失真;電容技術觸摸屏設計構思合理,但其圖像失真問題很難得到根本解決;電阻技術觸摸屏的定位準確,但其價格頗高,且怕刮易損;表面聲波觸摸屏解決了以往觸摸屏的各種缺陷,清晰不容易被損壞,適于各種場合,缺點是屏幕表面如果有水滴和塵土會使觸摸屏變的遲鈍,甚至不工作。4.5.1標準Centronics接口

并行打印機接口通常按Centronics標準定義插頭插座引腳,Centronics標準中各引腳和信號之間的對應關系見下表。4.5打印機接口電路設計4.5.2應用實例

在計算機控制系統中,常用的有并行和串行接口的針式打印機。下面介紹并行打印機與計算機的接口舉例。

例:用8255控制打印機。

下圖是8031擴展8255與打印機接口的電路。8255的片選線為P0.7,打印機與8031采用查詢方式交換數據。打印機的狀態信號輸入給PC7,打印機忙時BUSY=1,微型打印機的數據輸入采用選通控制,當

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論