基于單片機(jī)的電控收款機(jī)人機(jī)交互界面的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的電控收款機(jī)人機(jī)交互界面的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的電控收款機(jī)人機(jī)交互界面的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的電控收款機(jī)人機(jī)交互界面的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的電控收款機(jī)人機(jī)交互界面的設(shè)計(jì)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于單片機(jī)的電控收款機(jī)人機(jī)交互界面的設(shè)計(jì)

1視頻編程的優(yōu)勢(shì)近年來(lái),hdd廣泛應(yīng)用于各種智能設(shè)備和設(shè)備。點(diǎn)陣液晶顯示器不僅可以顯示字符、漢字、圖形、曲線,還可以通過(guò)編程實(shí)現(xiàn)各種動(dòng)畫效果,在大屏幕的液晶顯示器上還能夠?qū)崿F(xiàn)多級(jí)菜單以及復(fù)雜表格的繪制,極大提高了智能儀表設(shè)備的人機(jī)交互能力。同時(shí),隨著單片機(jī)C語(yǔ)言編譯器水平的提高,利用C語(yǔ)言開發(fā)的控制程序編譯成單片機(jī)匯編代碼的效率大大提高,程度設(shè)計(jì)者可以直接移植在DOS平臺(tái)下開發(fā)界面程序的一些成熟的設(shè)計(jì)方法和代碼,開發(fā)智能設(shè)備和儀表的人機(jī)交互程序。2系統(tǒng)設(shè)計(jì)2.1tp-2接口設(shè)計(jì)系統(tǒng)的開發(fā)選用內(nèi)置T6963C控制器的圖形點(diǎn)陣式液晶MGLS-240128T,顯示分辨率240×128。具體參數(shù)和硬件接口原理見文獻(xiàn)。系統(tǒng)中液晶的字體選擇為8×8,每行能夠顯示30個(gè)字符,選用16×16漢字字庫(kù)時(shí),每行最多能夠顯示15個(gè)漢字。2.2程序控制器的擴(kuò)展界面程序的代碼量往往是很大的??刂葡到y(tǒng)除了完成采集、控制功能外,還需要使用大量的語(yǔ)句實(shí)現(xiàn)復(fù)雜豐富的人機(jī)交互界面,如果還要實(shí)現(xiàn)制表和動(dòng)畫,編譯后的程序往往會(huì)超過(guò)64kB,這樣就必須進(jìn)行程序存儲(chǔ)器的擴(kuò)展。德國(guó)Keil51編譯器有9級(jí)的優(yōu)化功能,最多能夠減少程序代碼25%,從而提高程序的運(yùn)行速度。此外,該編譯器采用BANK(程序分組定位)技術(shù)使可尋址的程序空間達(dá)到2MB.2.3界面框架的實(shí)現(xiàn)稅控收款機(jī)具備以下功能:設(shè)置功能;查詢功能;統(tǒng)計(jì)報(bào)表功能;收款結(jié)賬功能;開戶、銷戶,刪除商品、初始化、實(shí)時(shí)時(shí)鐘顯示等功能。從用戶的使用方便性和操作的快捷性角度考慮,將操作界面設(shè)計(jì)為具有4個(gè)主菜單,每個(gè)主菜單下有7個(gè)菜單項(xiàng)的結(jié)構(gòu),屏幕主區(qū)域顯示8個(gè)主要功能的快捷圖標(biāo),實(shí)現(xiàn)類似于Windows資源管理器的界面效果。操作的時(shí)候,根據(jù)處理流程使用對(duì)話框、信息框的方式和用戶進(jìn)行信息交互。制定界面框架的時(shí)候,要根據(jù)LCD顯示屏的尺寸設(shè)定好各個(gè)區(qū)域的大小,包括圖標(biāo)的尺寸、位置,菜單字體大小,陰影部分位置,線條粗細(xì)以及主菜單在下拉與回收狀態(tài)下的界面圖。定好界面框架之后,利用圖形處理工具制作好有關(guān)的BMP位圖,然后利用字模提取軟件將圖片轉(zhuǎn)換成數(shù)據(jù)點(diǎn)陣,再編譯成二進(jìn)制文件(.Bin),燒錄到存放菜單、圖形的存儲(chǔ)器中供程序調(diào)用。另外,為了實(shí)現(xiàn)拼音輸入法和區(qū)位輸入法中相關(guān)漢字的顯示,需在硬件設(shè)計(jì)時(shí)專門使用一塊EEPROM存儲(chǔ)器28C64存放16×16點(diǎn)陣的漢字庫(kù)。2.4將關(guān)聯(lián)到圖形首地址系統(tǒng)的液晶基本顯示函數(shù)有:液晶的讀寫指令、液晶顯示方式設(shè)置函數(shù)(正常顯示、反相顯示、抽點(diǎn)顯示、壓縮顯示)、從存儲(chǔ)器讀取一段圖形數(shù)據(jù)并顯示在液晶屏的指定位置上的函數(shù)、液晶屏幕的拷貝和恢復(fù)函數(shù)、根據(jù)區(qū)位碼取漢字字模的函數(shù)、在液晶屏指定位置顯示一串漢字的函數(shù)、各種信息框(提示框、警告框、確認(rèn)框)的顯示函數(shù)等。下面給出一段在液晶屏幕上指定位置顯示一串漢字的函數(shù),該函數(shù)實(shí)現(xiàn)了漢字的提取和字符顯示方式的控制。voidLcd?HaiZi(uintLcd?add,ucharLcd?jnm,Lcd?hazi?zf)//Lcd?add:漢字顯示的液晶地址;Lcd?jnm:需要顯示的漢字?jǐn)?shù)組,為漢字內(nèi)碼;Lcd?hazi?zf:漢字的顯示方式。{uchari,j;ucharLcd?hz?1,Lcd?hz?2;ulongLcd?add?zi;//漢字在ROM中的地址uintLcd?add?next;//主調(diào)函數(shù)傳送的地址Lcd?writ(2,0x24,Lcd?add+=2048,0);//加上液晶要顯示的首地址,其中加入了圖形首地址Lcd?add?next=Lcd?add;//將地址保存在變量中for(i=0;i<=30;i+=2)//最多處理15個(gè)漢字{if(Lcd?jnm[i]=0)return;//如果當(dāng)前數(shù)據(jù)是結(jié)束符就返回主調(diào)函數(shù)Lcd?add?zi=94*(Lcd?jnm[i]-0xA0-1);//根據(jù)公式算出漢字在ROM中的首地址Lcd?add?zi+=(Lcd?jnm[i+1]-0xA0-1);Lcd?add?zi*=32;for(j=0,j<=31;j++){if(Lcd?hazi?zf==1)//反向顯示漢字,表示選中的狀態(tài){Lcd?writ(3,0xC0,0,~memory(j+Lcd?add?zi,0,0,0));j++;//讀出漢字第1個(gè)字節(jié)的數(shù)據(jù)并寫入液晶。memory函數(shù)從程序存儲(chǔ)區(qū)讀取1個(gè)字節(jié)的數(shù)據(jù)Lcd?writ(3,0xC0,0,~memory(j+Lcd?add?zi,0,0,0));}//讀出漢字第2個(gè)字節(jié)的數(shù)據(jù)并顯示elseif(Lcd?hazi?zf==2)//抽點(diǎn)顯示漢字,用于表示禁止用戶選擇的狀態(tài){Lcd?writ(3,0xC0,0,0xAA&memory(j+Lcd?add?zi,0,0,0));j++;//讀出漢字第1個(gè)字節(jié)的數(shù)據(jù)并寫入液晶Lcd?writ(3,0xC0,0,0xAA&memory(j+Lcd?add?zi,0,0,0));}//讀出漢字第2個(gè)字節(jié)的數(shù)據(jù)并顯示elseif(Lcd?hazi?zf==3)//縱向壓縮漢字,壓8個(gè)點(diǎn){Lcd?hz?1=memory(j+Lcd?add?zi,0,0,0);j++;//取第1個(gè)點(diǎn)陣數(shù)據(jù)Lcd?hz?2=memory(j+Lcd?add?zi,0,0,0);j++;//取第2個(gè)點(diǎn)陣數(shù)據(jù)Lcd?writ(3,0xC0,0,Lcd?hz?1|memory(j+Lcd?add?zi,0,0,0));j++;//讀出漢字第3個(gè)字節(jié)的數(shù)據(jù)壓縮后顯示Lcd?writ(3,0xC0,0,Lcd?hz?2|memory(j+Lcd?add?zi,0,0,0));}//讀出漢字第4個(gè)字節(jié)的數(shù)據(jù)壓縮后顯示else{//正常顯示方式Lcd?writ(3,0xC0,0,memory(j+Lcd?add?zi,0,0,0));j++;//讀出漢字第1個(gè)字節(jié)的數(shù)據(jù)并寫入液晶Lcd?writ(3,0xC0,0,memory(j+Lcd?add?zi,0,0,0));}//讀出漢字第2個(gè)字節(jié)的數(shù)據(jù)并顯示Lcd?writ(2,0x24,Lcd?add+=30,0);}//將液晶的地址指針加30并更新變量Lcd?writ(2,0x24,Lcd?add?next+=2,0);//設(shè)置下一個(gè)漢字的地址指針Lcd?add=Lcd?add?next;}}//函數(shù)結(jié)束具體調(diào)用方法:Lcd?haizi(2531,“按確認(rèn)鍵退出”,0),就是在液晶的第84(2531整除30)行第11(2531對(duì)30取余)列的地方顯示字符串“按確認(rèn)鍵退出”。2.5實(shí)現(xiàn)顯示效果各種顯示效果的實(shí)現(xiàn)都是在基本顯示函數(shù)的基礎(chǔ)上進(jìn)行整合設(shè)計(jì)的,實(shí)現(xiàn)顯示效果的流程是:拷貝屏幕原始顯示信息到內(nèi)存中,取數(shù)據(jù)并顯示,根據(jù)用戶的按鍵處理響應(yīng)動(dòng)作,恢復(fù)屏幕原始內(nèi)容。下面給出幾個(gè)常用顯示效果的具體編程方法。2.5.1繪制程序流程圖以用戶設(shè)置系統(tǒng)日期的顯示界面為例進(jìn)行說(shuō)明。程序流程圖如圖1所示,要顯示其他的信息提示框(比如出錯(cuò)框)只要在制作圖片的時(shí)候改變標(biāo)題欄中的圖形和文字就行了。2.5.2正常顯示方式參考前面所提供的Lcd?HaiZi函數(shù),只要設(shè)置字符的顯示方式,將選中的區(qū)域用反相顯示方式,未選中的區(qū)域用正常顯示方式就能夠直觀地表示用戶的選中與未選中狀態(tài),這種效果在提示用戶是否安裝好打印紙的交互中十分有用。2.5.3“感嘆號(hào)”、圖形和標(biāo)題墻內(nèi)的感嘆號(hào)打印”圖形的讀取在打印營(yíng)業(yè)明細(xì)報(bào)表、讀取IC卡等需要較長(zhǎng)操作時(shí)間的處理中,需要在信息提示框中顯示一個(gè)進(jìn)程條,直觀地告訴用戶當(dāng)前操作的進(jìn)度。具體的實(shí)現(xiàn)原理是:首先在信息提示框中畫出進(jìn)程條方框,然后顯示標(biāo)題欄內(nèi)的感嘆號(hào)“!”、圖形和標(biāo)題欄內(nèi)的“報(bào)表打印”圖形,并在標(biāo)題欄的指定位置顯示“正在打印報(bào)表,請(qǐng)稍等!”字符串,根據(jù)傳入的步進(jìn)變量值修改打印進(jìn)程指示的十位和個(gè)位,最后根據(jù)錄前已經(jīng)顯示的步進(jìn)值和傳入的步進(jìn)變量值計(jì)算出需要將多少列的顯示區(qū)的數(shù)據(jù)涂黑(行數(shù)是確定的),調(diào)用兩重循環(huán)順次對(duì)行、列寫入數(shù)據(jù)0xFF(表示將液晶點(diǎn)涂黑)。另外,為了實(shí)現(xiàn)按鈕的點(diǎn)擊效果,只需要在用戶按下確定按鍵之后,將原來(lái)的圖標(biāo)切換成新的帶有陰影效果的圖標(biāo)即可。菜單的下拉和回收、菜單中光標(biāo)的上下移動(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論