串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)_第1頁(yè)
串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)_第2頁(yè)
串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)_第3頁(yè)
串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)_第4頁(yè)
串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本 科 生 畢 業(yè) 設(shè) 計(jì)論文題目:串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)姓名:馬俊杰學(xué)號(hào):1020220134班級(jí):班年級(jí):2010級(jí)專業(yè):測(cè)控技術(shù)與儀器學(xué)院:核工程與地球物理學(xué)院指導(dǎo)教師:徐哈寧(講師)完成時(shí)間:2014年06月10日作 者 聲 明本人以信譽(yù)鄭重聲明:所呈交的學(xué)位畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)教師指導(dǎo)下由本人獨(dú)立撰寫(xiě)完成的,沒(méi)有剽竊、抄襲、造假等違反道德、學(xué)術(shù)規(guī)范和其他侵權(quán)行為。文中引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料均已明確標(biāo)注出,不包含他人成果及為獲得東華理工大學(xué)或其他教育機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。對(duì)本設(shè)計(jì)(論文)的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本畢

2、業(yè)設(shè)計(jì)(論文)引起的法律結(jié)果完全由本人承擔(dān)。本畢業(yè)設(shè)計(jì)(論文)成果歸東華理工大學(xué)所有。特此聲明。畢業(yè)設(shè)計(jì)(論文)作者(簽字): 簽字日期: 年 月 日 本人聲明:該學(xué)位論文是本人指導(dǎo)學(xué)生完成的研究成果,已經(jīng)審閱過(guò)論文的全部?jī)?nèi)容,并能夠保證題目、關(guān)鍵詞、摘要部分中英文內(nèi)容的一致性和準(zhǔn)確性。 學(xué)位論文指導(dǎo)教師簽名: 年 月 日串口數(shù)據(jù)調(diào)試器在液晶屏上的設(shè)計(jì)馬俊杰Design of Serial Debugger on LCD ScreenJunJie ,Ma2014年 6月10日摘 要隨著電子信息飛速發(fā)展,MCU的應(yīng)用也是越來(lái)越廣泛,串口作為MCU最主要的組成部分,以其硬件電路設(shè)計(jì)簡(jiǎn)單,操作方便,

3、幾乎成為所有電子開(kāi)發(fā)工程師數(shù)據(jù)傳輸?shù)氖走x。現(xiàn)有的串口調(diào)試技術(shù)必須借助串口調(diào)試助手和電腦等等硬件設(shè)備來(lái)完成,存在便攜性差,硬件依賴度高等缺點(diǎn)。本文設(shè)計(jì)了一種基于AVR單片機(jī)ATMEGA64D4的串口調(diào)試器,主要完成了硬件電路的設(shè)計(jì)、人機(jī)界面設(shè)計(jì)和控制軟件的編寫(xiě)。硬件電路設(shè)計(jì)利用AVR作為主控芯片,以7寸TFT液晶屏作為顯示界面,實(shí)現(xiàn)了四路串口的同時(shí)接收、發(fā)送、顯示和控制,每一路都可以實(shí)現(xiàn)25幀數(shù)據(jù)的存儲(chǔ),并且可以隨時(shí)查看。軟件設(shè)計(jì)使用前后臺(tái)系統(tǒng)和消息處理機(jī)制。將按鍵動(dòng)作和接收到數(shù)據(jù)作為消息處理,每當(dāng)有按鍵動(dòng)作或者數(shù)據(jù)動(dòng)作,都將這些信息放在消息隊(duì)列中,并且在定時(shí)器的作用下,定時(shí)從消息隊(duì)列中取出消息

4、信息,進(jìn)行譯碼,并執(zhí)行相應(yīng)操作。人機(jī)界面設(shè)計(jì)的有查看歷史數(shù)據(jù)的上翻鍵、下翻鍵??梢詫?shí)現(xiàn)三種波特率選擇的SET按鍵,關(guān)閉串口接收的HOLD鍵,以及清空接收數(shù)據(jù)的CLEAR按鍵。并且完成設(shè)計(jì)了調(diào)試器的輸入界面,可以實(shí)現(xiàn)最多十個(gè)字節(jié)數(shù)據(jù)的發(fā)送。關(guān)鍵詞:串口調(diào)試;液晶觸摸屏 ;單片機(jī);人機(jī)界面 ABSTRACTWith the rapid development of electronic information, the application of MCU is growing more and more widely. As a main part of MCU, the serial has

5、been the prior choice of almost all electronic engineers for its simple hardware circuit and its convenient operation system. The existed technology of serial debugging could only be applied by hardware equipments like debugging assistants or computers, which brought obviously defects that its porta

6、bility is very limited and it has high reliance on hardware. In this paper a kind of serial debugger based on AVR ATMEGA64D4 was introduced, which included its hardware circuit design, its UI interface design, and its software. AVR was used as the main chip and the 7 inch TFT LCD was used as display

7、 interface in the hardware circuit and it has been possible send, receive, display and control in the four serial ports at the same time, moreover, 25 frames of data can be stored in each port and can be seen in any time. The software was designed on the some ideas from the operating system. By usin

8、g the system of both foreground and background, the key action and the data would be processed as messages and be stored in the message queue whenever there was a keystroke or data movement, and under the functioning of the timer, this information can be recognized and decoded from the message queue

9、 and corresponding operation will be performed as well. In the UI interface, there designed the keys both to page up and page down to view historical data, the SET button to select baud rate of three kinds, the HOLD button to stop receiving message from the serial port and the CLEAR button to clear

10、the received data. Moreover the input interface of the debugger which is able to transmit up to ten bytes of data was also included in the UI interface design.Key words: serial debugging; LCD touch screen; single chip microcomput ;User interface;目 錄緒論11.1 課題背景及意義11.2 課題研究的內(nèi)容11.3 課題研究的意義22 主要元器件功能特點(diǎn)3

11、2.1 ATxmega64D4單片機(jī)32.2 T530EA液晶驅(qū)動(dòng)芯片32.3 ISO1050 CAN隔離數(shù)據(jù)收發(fā)器42.4 TR100電源隔離芯片42.5 AT070TN92液晶屏52.6 BIT3252升壓芯片52.7 LM27313xmf升壓轉(zhuǎn)換芯片53 硬件電路設(shè)計(jì)63.1 電源電路63.1.1 主控部分電源63.1.2 CAN隔離電源73.1.3 液晶屏電源83.2 主控電路93.3 T530EA電路93.4 液晶屏接口電路103.5 觸摸屏接口電路103.6 單總線電路113.7 485總線電路123.8 CAN總線電路123.9 總線選擇電路133.10 總圖電路143.11 硬

12、件實(shí)物154 軟件設(shè)計(jì)164.1 主程序流程圖164.2 主函數(shù)程序設(shè)計(jì)164.3 物理按鍵程序設(shè)計(jì)184.4 串口程序設(shè)計(jì)194.5 消息程序設(shè)計(jì)204.6 人機(jī)界面操作程序設(shè)計(jì)204.6.1 底層液晶屏驅(qū)動(dòng)函數(shù)214.6.2 人機(jī)界面操作與顯示函數(shù)225 人機(jī)界面設(shè)計(jì)255.1 主界面255.2 設(shè)置界面265.3 輸入界面266 測(cè)試結(jié)果286.1 開(kāi)機(jī)測(cè)試286.2 觸摸按鍵、物理按鍵、界面切換測(cè)試286.3 數(shù)據(jù)接收測(cè)試296.4 數(shù)據(jù)發(fā)送測(cè)試296.5 功能按鈕測(cè)試306.6 屏幕校準(zhǔn)功能測(cè)試316.7 波特率切換測(cè)試327 設(shè)計(jì)過(guò)程中遇到的問(wèn)題及解決方法337.1 硬件類337.

13、2 軟件類34結(jié) 論36致 謝37參考文獻(xiàn)38附錄一39附錄二40附錄三41緒論1.1 課題背景及意義在電子信息飛速發(fā)展的今天,MCU微型控制器的作為一個(gè)系統(tǒng)的核心,已經(jīng)越來(lái)越被大家所熟知,而串口因其硬件電路設(shè)計(jì)簡(jiǎn)單,操作方便,也得到了大部分電子開(kāi)發(fā)工程師的認(rèn)可。即使有些系統(tǒng)并不需要串口,工程師也會(huì)預(yù)留出串口,方便以后的調(diào)試。要想使串口正常工作,能夠正確無(wú)誤的收發(fā)數(shù)據(jù),只是配置好MCU是不夠的,我們還需要通過(guò)串口調(diào)試助手,來(lái)幫助我們的調(diào)試?,F(xiàn)在網(wǎng)上已經(jīng)各種版本的串口調(diào)試助手,極大的方便了我們的調(diào)試,但是都有一個(gè)弊端就是,我們必須要準(zhǔn)備一臺(tái)電腦才能完成調(diào)試工作,但是有時(shí)候有些調(diào)試現(xiàn)場(chǎng)并不具備安放

14、一臺(tái)電腦的條件,而有的時(shí)候,我們卻不得不為了測(cè)試一幀數(shù)據(jù)的正確性,去開(kāi)啟電腦,。電腦攜帶的不方便性,和調(diào)試帶來(lái)復(fù)雜度影響了我們調(diào)試的進(jìn)度,因此,一款小型的、便于攜帶的、方便調(diào)試,能夠正確逮碼和發(fā)碼的串口數(shù)據(jù)調(diào)試器將是我們研究的重點(diǎn)。1.2 課題研究的內(nèi)容通過(guò)對(duì)課題背景的了解,相關(guān)資料的收集、整理、理解,設(shè)計(jì)出符合課題要求的串口數(shù)據(jù)調(diào)試器。整個(gè)設(shè)計(jì)內(nèi)容主要包括: (1)硬件原理圖的設(shè)計(jì); (2)控制和顯示軟件的設(shè)計(jì); (3)人機(jī)交互界面的設(shè)計(jì)。系統(tǒng)總體結(jié)構(gòu)框圖如圖1-1所示:圖1-1 總體設(shè)計(jì)框圖1.3 課題研究的意義本設(shè)計(jì)基于AVR單片機(jī),通過(guò)對(duì)成熟模塊的設(shè)計(jì)剖析,解決串口調(diào)試過(guò)程中常見(jiàn)問(wèn)題與

15、解決方案,完成了本次設(shè)計(jì)。整個(gè)設(shè)計(jì)可以同時(shí)對(duì)四路數(shù)據(jù)進(jìn)行逮碼和顯示操作,并能獨(dú)立的完成發(fā)碼。發(fā)碼操作通過(guò)電阻觸摸屏和人機(jī)界面實(shí)現(xiàn)。能快速的響應(yīng)串口的數(shù)據(jù)收發(fā)處理,不會(huì)丟數(shù)據(jù)。該設(shè)計(jì)完成后,可以實(shí)現(xiàn)通過(guò)一個(gè)7寸觸摸屏上的一些操作來(lái)完成數(shù)據(jù)的接收和發(fā)送,特別對(duì)于一些現(xiàn)場(chǎng)的串口調(diào)試,可以很方便、快捷、無(wú)誤的調(diào)試。2 主要元器件功能特點(diǎn)2.1 ATxmega64D4單片機(jī)ATxmega64D4是由ATMEL公司設(shè)計(jì)的AVR單片機(jī)的一種。是一種高性能,低功耗的8 / 16位AVR XMEGA微控制器。AVR單片機(jī)在1997年由ATMEL公司挪威設(shè)計(jì)中心的A先生與V先生利用ATMEL公司的Flash新技術(shù)

16、, 共同研發(fā)出RISC精簡(jiǎn)指令集的高速8位單片機(jī),簡(jiǎn)稱AVR。相對(duì)于出現(xiàn)較早也較為成熟的51系列單片機(jī),AVR系列單片機(jī)片內(nèi)資源更為豐富,接口也更為強(qiáng)大。ATxmega64D4作為AVR單片機(jī)ATxmega系列中的一種,繼承了AVR單片的所有特點(diǎn)。引腳圖:圖2-1 ATxmega64D4引腳圖2.2 T530EA液晶驅(qū)動(dòng)芯片T530EA是由宏芯公司生產(chǎn)的安防專用液晶驅(qū)動(dòng)芯片,高度集成的所有功能于一身的視覺(jué)處理器,提供了便攜式應(yīng)用的主要節(jié)約成本的解決方案。T530內(nèi)置了高性能三重的ADC,TCON和24位TTL輸出。整機(jī)采用先進(jìn)的升頻和降頻轉(zhuǎn)換算法,創(chuàng)新集成“幀緩沖,減”去隔行可以顯著降低系統(tǒng)成

17、本。該T530還集成了增強(qiáng)的兩層的OSD引擎。該設(shè)備可通過(guò)2線串行總線接口接口到外部微控制器。2.3 ISO1050 CAN隔離數(shù)據(jù)收發(fā)器IOS1050是由TI公司設(shè)計(jì)的一款CAN隔離數(shù)據(jù)收發(fā)器,可以實(shí)現(xiàn)串行數(shù)據(jù)和CAN差分信號(hào)自動(dòng)轉(zhuǎn)化。符合ISO11898標(biāo)準(zhǔn)。該設(shè)備最高可以提供1MPS的發(fā)送和接收速率。特點(diǎn):2500-VRMS隔離;故障自動(dòng)檢測(cè)輸出;低延時(shí),典型值150ns;可以抵抗50 kV/ms的干擾;符合或者超越ISO11898標(biāo)準(zhǔn);總線錯(cuò)誤保護(hù)在-24V到40V之間;自動(dòng)超時(shí)檢測(cè);標(biāo)準(zhǔn)3.3V輸入,最大支持5V。引腳圖: 圖2-3 ISO1050引腳圖2.4 TR100電源隔離芯片

18、TR100為1W的單通道隔離DC-DC轉(zhuǎn)換器,主要為數(shù)字版提供一個(gè)單一的隔離的可靠的電源供應(yīng)。特點(diǎn):較高的轉(zhuǎn)換效率,68%;200mA的電流輸出;30pF的隔離電容;引腳圖: 圖2-4 TR100引腳圖2.5 AT070TN92液晶屏AT070TN92為群創(chuàng)公司生產(chǎn)的7寸TFT液晶屏。特點(diǎn):分辨率為800*480;顯示模式為:正常透明,透射式;表面處理仿炫光;色彩為RDB;接口為數(shù)字接口;接口為50腳;2.6 BIT3252升壓芯片BIT3252是一個(gè)高頻的集成了所有功能主要用于升壓的PWM控制器。0.2V的低反饋電壓使系統(tǒng)具有很高的效率和可靠性。特點(diǎn):PWM電壓模式;0.2V的低反饋電壓;3

19、30KHZ操作頻率;過(guò)壓保護(hù);內(nèi)部軟啟動(dòng);有限的輸出占空比;引腳圖:圖2-5 BIT3252引腳圖2.7 LM27313xmf升壓轉(zhuǎn)換芯片 LM27313xmf是一款擁有1.6MHZ開(kāi)關(guān)頻率的升壓轉(zhuǎn)換器。最大0.8A的輸出電流,內(nèi)部30V的開(kāi)關(guān)電壓可以完美的轉(zhuǎn)化為5V-28V的輸出。特點(diǎn):30V的DMOS FET開(kāi)關(guān);1.6 MHz的開(kāi)關(guān)頻率;低RDS(ON)的DMOS FET;開(kāi)關(guān)電流高達(dá)800毫安;寬輸入電壓范圍(2.7V14V);低關(guān)斷電流;5引腳SOT - 23封裝;使用微小的電容器和電感器;逐周期電流限制;引腳圖: 圖2-6 LM27313xmf引腳圖3 硬件電路設(shè)計(jì)硬件電路總框圖:

20、3.1 電源電路3.1.1 主控部分電源由圖3-1可知,X1作為整個(gè)設(shè)計(jì)的總電源入口,經(jīng)過(guò)一個(gè)IN4001二極管,其主要作用是防止電源接反,燒毀整個(gè)系統(tǒng)。經(jīng)過(guò)一系列的電容電感濾波,進(jìn)入N1(MP1482),由芯片資料可知,MP1482 的輸出電壓與FB引腳上的兩個(gè)電阻有關(guān):;Vfb電壓為0.923,由原理圖電阻值可以計(jì)算出Vout為5.23V。然后經(jīng)過(guò)電感電容濾波之后到達(dá)J1,J1作為測(cè)試點(diǎn),通電測(cè)試為5V之后再焊接。5V 電源經(jīng)過(guò)AMS1117-3.3穩(wěn)壓管之后,出來(lái)3.3V電源作為主控芯片的供電電源和其他需要3.3V電源的電路。 原理圖:圖3-1主控電源原理圖3.1.2 CAN隔離電源CA

21、N隔離電源主要為了CAN總線的電氣隔離。由圖3-2所示,5V電源由N3隔離電源的1腳進(jìn)入,由6腳輸出,實(shí)現(xiàn)了電源的隔離。電源地由2腳進(jìn)入,4腳輸出,實(shí)現(xiàn)了地的隔離。FV1、R32、R33、R31一般在焊接過(guò)程中不做焊接,真正實(shí)現(xiàn)CAN總線與數(shù)據(jù)發(fā)送端的電氣隔離。原理圖:圖3-2 CAN隔離電源原理圖3.1.3 液晶屏電源液晶屏驅(qū)動(dòng)電源主要是給液晶屏和液晶屏驅(qū)動(dòng)芯片T530EA供電。由圖3-3所示,V7、R2、R17、C7、C13構(gòu)成了一個(gè)開(kāi)關(guān)電路,主控芯片接口CR_POWER輸出為高電平時(shí),V7截止,不導(dǎo)通,5V電源不能通過(guò)。當(dāng)CR_POWER為低電平時(shí)候,V7導(dǎo)通,5V電源通過(guò),為液晶模塊供

22、電。N4為3.3V穩(wěn)壓管,輸出的3.3V主要為T530EA芯片和其他液晶模塊3.3V供電。(這個(gè)設(shè)計(jì)有缺陷會(huì)在后面做詳細(xì)說(shuō)明)。N5 BIT3252A為背光驅(qū)動(dòng)芯片,工作輸入電壓范圍為4.5V到7.5V,開(kāi)關(guān)頻率為300KHZ。2腳為使能端,接在T530的PWM_LED端口,可以通過(guò)對(duì)T530操作,控制液晶屏背光的開(kāi)啟和關(guān)斷。5腳為過(guò)壓檢測(cè)引腳,當(dāng)其引腳電壓超過(guò)1.5V的時(shí)候,芯片將停止工作。4腳為過(guò)流檢測(cè)引腳,當(dāng)四腳的電壓超過(guò)0.2V的時(shí)候,芯片將停止工作。IC4腳通過(guò)不斷的電流采樣的實(shí)現(xiàn)恒流輸出,輸出電流計(jì)算公式為,通過(guò)計(jì)算LED-的電流為180mA。電壓=I(LED屏的內(nèi)阻),由屏的參數(shù)

23、可計(jì)算,電壓大概為9.3V。原理圖:圖3-3 液晶屏電源原理圖3.2 主控電路由附錄一所示,主控部分電路主要使用了單片機(jī)的PA、PC、PD、PE端口。36、37引腳外接16M晶振作為外部時(shí)鐘源,提供芯片正常工作的時(shí)鐘。PA0接3.3V電壓作為AD轉(zhuǎn)換的參考電壓,PA1、PA2、PA3、PA4使用AVR單片機(jī)的12位AD功能作為觸摸屏的輸入接口,完成對(duì)觸摸屏的數(shù)據(jù)轉(zhuǎn)換,精確的實(shí)現(xiàn)觸摸按鍵的作用。PC2、PC3使用了單片機(jī)的標(biāo)準(zhǔn)串口UARTC作為第四路數(shù)據(jù)的接收和發(fā)送通道。PC5和PC6作為通用輸入輸出端口,用來(lái)對(duì)模擬串口C的實(shí)現(xiàn),是第三路數(shù)據(jù)的接收發(fā)送通道。PD1作為液晶屏的控制端口,控制液晶屏

24、的電源的通斷,當(dāng)不需要顯示的時(shí)候就切斷液晶屏電源,降低系統(tǒng)功耗。PD2和PD3使用單片機(jī)的標(biāo)準(zhǔn)串口UARTD作為第二路數(shù)據(jù)的接收發(fā)送通道。PD5和PD6作為通用輸入輸出端口,用來(lái)對(duì)模擬串口A的實(shí)現(xiàn),是第一路數(shù)據(jù)的接收發(fā)送通道。PD7引腳外接按鍵,短按可以實(shí)現(xiàn)開(kāi)屏和回到第一路數(shù)據(jù)顯示界面的作用,長(zhǎng)按可以實(shí)現(xiàn)屏幕校準(zhǔn)的功能。PE0和PE1使用了單片機(jī)的IIC總線,主要和T530EA通信,通過(guò)命令發(fā)送,完成各種顯示功能。PE3引腳通過(guò)一三極管接上一個(gè)蜂鳴器,作為鍵音發(fā)生器,每當(dāng)有物理按鍵或者觸摸按鍵按下的時(shí)候,蜂鳴一聲。PDI和RESET引腳連接在芯片的DEBUG端口,實(shí)現(xiàn)程序的下載和在線調(diào)試功能和

25、復(fù)位的功能。原理圖:詳見(jiàn)附錄一3.3 T530EA電路由附錄二所示,T530EA電路使用規(guī)范模塊。95、96引腳接27M的晶振,提供芯片正常工作的外部時(shí)鐘。97、98引腳是T530EA的I2C端口,通過(guò)兩個(gè)4.7K的上來(lái)電阻和主控芯片進(jìn)行通信。21、22、25、26、27、28引腳作為SPI總線,與外部的SPI總線FLASH進(jìn)行數(shù)據(jù)傳輸,主要是完成對(duì)FLASH內(nèi)部存儲(chǔ)的UI圖片和BUTTON讀取,以實(shí)現(xiàn)顯示界面的功能。U/D、L/R、VS、HS、分別接在液晶顯示屏的相對(duì)應(yīng)引腳,完成對(duì)液晶屏的控制作用。39-68引腳作為的數(shù)據(jù)總線,接在液晶屏的相應(yīng)位置。88、89是UART引腳,通過(guò)兩個(gè)限流,和

26、兩個(gè)上拉電阻,外接一個(gè)插座,方便以后的調(diào)試使用。原理圖: 詳見(jiàn)附錄二3.4 液晶屏接口電路由附錄三所示,D1為超小型BOOST變換器,輸入電壓為+5V_CR。最大輸出電流0.8。工作頻率1.6HZ。FB腳參考電壓為1.23V。輸出電壓計(jì)算公式,有電阻值計(jì)算可得Vout=10.478V。4腳為使能端,接T530EA的PWM_DC管腳,可以通過(guò)T530控制芯片的工作與否,達(dá)到控制液晶屏供電的作用。1腳為PWM輸出引腳,產(chǎn)生的峰峰值大約為10V的PWM信號(hào),給C49、C48、C58充電,經(jīng)過(guò)V12、V13、V14、C87、C86、C47、C5、R46組成的倍壓整流電路將電壓升高后,再經(jīng)過(guò)R44、V1

27、0、C45、R45、V11、C46組成的穩(wěn)壓整流電路,形成VGH16,VGL-7V兩組電壓,R42、R43分別為放電電阻。原理圖:詳見(jiàn)附錄三3.5 觸摸屏接口電路觸摸屏接口電路主要完成觸摸屏接口和主控MCU的連接。由圖3-8所示,Y+、X+、Y-、X-分別接在主控的PA1、PA2、PA3、PA4引腳。四根線路上外接一塊低電容保護(hù)二極管陣列芯片TPD4E001,用于保護(hù)觸摸屏的四根線路上的敏感元件,防止靜電燒毀芯片。原理圖:圖3-4 觸摸屏接口電路原理圖3.6 單總線電路單總線電路模塊。主要完成對(duì)1路2路3路4路串口數(shù)據(jù)自動(dòng)轉(zhuǎn)換為單數(shù)據(jù)的發(fā)送和接收。總線電源選擇開(kāi)關(guān)使用插針,可以方便的為總線選擇

28、5V或者12V的總線驅(qū)動(dòng),滿足不同的總線需求。V57為防負(fù)壓二極管,防止總線上出現(xiàn)負(fù)壓的時(shí)候損壞三極管。R21為數(shù)據(jù)匹配電阻,根據(jù)實(shí)際情況選取。R88、V34、V32、R87構(gòu)成了數(shù)據(jù)接收電路,平??偩€空閑的時(shí)候,在R21的下拉作用下,總線處于低電平,V32截止不導(dǎo)通,相應(yīng)V32的集電極為高電平,即RXD_A為高電平。當(dāng)總線上出現(xiàn)高電平數(shù)據(jù)的時(shí)候,V32導(dǎo)通,RXD_A變?yōu)榈碗娖?。?dāng)總線上高低變化的數(shù)據(jù)傳輸時(shí),RXD_A就可以得到與總線電平相反的數(shù)據(jù)信號(hào)。V22主要起門限的作用。R85、R86、R9、R108、R109、R110、V33、V34、V17、V58構(gòu)成了數(shù)據(jù)發(fā)送電路,平時(shí)TXD_A

29、為高電平,V33導(dǎo)通,V34截止,V17相應(yīng)截止,總線在R21 的下拉作用下處于低電平。V58為正向保護(hù)防護(hù)管,主要保護(hù)正向電壓過(guò)高不會(huì)損害三極管V17。當(dāng)TXD_A為低電平時(shí),V33截止,V34和V17相應(yīng)飽和導(dǎo)通輸出5V 或者12V的BUS_POWER。當(dāng)有高低變化的數(shù)據(jù)發(fā)送時(shí)候,總線就會(huì)得到電平相反的數(shù)據(jù)信號(hào)。這樣就實(shí)現(xiàn)了數(shù)據(jù)的發(fā)送功能。原理圖:圖3-5 單總線電路圖 3.7 485總線電路485總線電路主要完成2路和4路串口數(shù)據(jù)自動(dòng)轉(zhuǎn)化為485差分信號(hào)的發(fā)送和接收。由于MAX485芯片的特性,當(dāng)總線上所有發(fā)送器被禁止的時(shí)候,芯片將輸出邏輯0,將會(huì)導(dǎo)致MCU誤以為是幀的起始位引起工作的不

30、正常,因此在輸出A和B上分別加上510R的上拉和下拉電阻,這樣在總線上沒(méi)有數(shù)據(jù)期間,RXD保持唯一的高電平,不會(huì)應(yīng)為誤中斷而收到亂字符。R129為匹配電阻,減少由于總線不匹配而產(chǎn)生的噪聲和反射信號(hào)干擾。提高總線的可靠性。V41、R96、R131組成了發(fā)送控制電路。平時(shí)RE和DE在R96的上拉作用下,一直處于高電平,MAX 485處于接收使能狀態(tài)。當(dāng)有數(shù)據(jù)發(fā)送的時(shí)候,TXD變?yōu)楦唠娖?,V41飽和導(dǎo)通,RE和DE被拉到低電平,MAX485將處于發(fā)送使能狀態(tài),這種設(shè)計(jì)方案可以減少一根控制線,由數(shù)據(jù)的發(fā)送和接收自動(dòng)完成芯片發(fā)送接收使能的切換。10和10兩個(gè)插座和順序相反,可以滿足不同的總線接口,方便調(diào)

31、試。原理圖:圖3-6 485總線原理圖3.8 CAN總線電路CAN總線電路主要是完成2路4路串口數(shù)據(jù)自動(dòng)轉(zhuǎn)化為CAN的差分信號(hào)的收發(fā)。TXD_CAN_B接在總線選擇開(kāi)關(guān)的串口輸出引腳。RXD_CAN_B接在總線選擇開(kāi)關(guān)的接收引腳。J3作為匹配電阻的選擇開(kāi)關(guān),需要的時(shí)候插上插針即可。V45、V46、V47、V48是對(duì)兩根數(shù)據(jù)線起差模保護(hù)作用。F1為自恢復(fù)保險(xiǎn)管,防止總線上長(zhǎng)時(shí)間出現(xiàn)大電流,燒毀V45-V48;X9和X17分別使用了一個(gè)八腳插座和一個(gè)四腳插座,滿足不同的總線要求。原理圖:圖3-7 CAN總線原理圖3.9 總線選擇電路總線選擇電路主要是對(duì)2路和4路串口接的三種不同的總線進(jìn)行選擇。TX

32、D_B接在MCU的串口發(fā)送引腳,RXD_B接在MCU的串口接收引腳。當(dāng)需要某一種總線的時(shí)候,將開(kāi)關(guān)S2的相對(duì)應(yīng)的位按下,為了防止總線干擾,每次只能使用一路總線,沒(méi)有用的的總線開(kāi)關(guān)全部處于關(guān)閉狀態(tài)。原理圖:圖3-8 總線選擇電路3.10 總圖電路總圖主要是對(duì)整個(gè)系統(tǒng)各個(gè)模塊之間的聯(lián)系做一個(gè)系統(tǒng)的展示。原理圖:圖3-9 總圖電路3.11 硬件實(shí)物圖3-10 硬件實(shí)物4 軟件設(shè)計(jì)本軟件依據(jù)源程序框架進(jìn)行編寫(xiě),使用了前后臺(tái)系統(tǒng)和消息處理機(jī)制。本章主要介紹軟件設(shè)計(jì)的主要流程,并重點(diǎn)介紹,顯示,消息處理,串口數(shù)據(jù)的接收和發(fā)送。數(shù)據(jù)的的轉(zhuǎn)化等模塊。4.1 主程序流程圖主程序流程圖如下:圖4-1 程序流程圖4

33、.2 主函數(shù)程序設(shè)計(jì)主程序void main()是整個(gè)程序執(zhí)行的主體函數(shù),也是前后臺(tái)系統(tǒng)中的后臺(tái)系統(tǒng),完成任務(wù)的調(diào)度及執(zhí)行。int main(void)system_init(); KEY_TONE_VALUE(1); Delayms(200); KEY_TONE_VALUE(0);while(1) msg_recv(); adc_event(0); TimeEvent(); TxB_Process(); TxD_Process();system_init();子函數(shù)完成系統(tǒng)各模塊的初始化任務(wù),主要包括系統(tǒng)時(shí)鐘初始化,各個(gè)操作端口引腳初始化,開(kāi)機(jī)關(guān)閉串口屏電源??撮T狗初始化,系統(tǒng)定時(shí)器TIME

34、0初始化,AD轉(zhuǎn)化初始化,觸摸屏初始化,標(biāo)準(zhǔn)串口和模擬串口初始化,。在While(1)中將循環(huán)執(zhí)行消息處理函數(shù)msg_recv(),AD轉(zhuǎn)化事件,系統(tǒng)定時(shí)器事件TimeEvent(),串口B和串口D的發(fā)送事件。TimeEvent()是整個(gè)任務(wù)調(diào)度的核心函數(shù),主要由系統(tǒng)定時(shí)器time0通過(guò)4ms的定時(shí)完成任務(wù)的調(diào)度,time0每4ms產(chǎn)生一次中斷,將TimeIntFlg標(biāo)志置1,TimeEvent()在while(1)的大循環(huán)中如果判斷出TimeIntFlg為1的話,就將其置0,并且執(zhí)行任務(wù)調(diào)度代碼。其函數(shù)原型如下:void TimeEvent(void)static INT8U Reentry

35、=0;if (TimeIntFlg)TimeIntFlg = 0;WDT_Reset();adc_cpu_manage();UARTimeEvent();Sim_UARTimeEvent();if (Reentry)return;+Reentry;KeyCode = ScanKey();KeyDecode(); Menu_KEY_Code();-Reentry;在該函數(shù)中首先執(zhí)行的是看門狗喂狗動(dòng)作,防止程序跑飛。接下來(lái)執(zhí)行串口的時(shí)間事件,該函數(shù)主要完成串口的接收防干擾延時(shí),和發(fā)送延時(shí)。ScanKey()函數(shù)主要是完成對(duì)物理按鍵的掃描,并且將按鍵按下的時(shí)間作為返回值返回給KeyCode,KeyD

36、ecode()是對(duì)KeyCode進(jìn)行解碼,并執(zhí)行相應(yīng)動(dòng)作,這些將在后面進(jìn)行詳細(xì)的的解釋。Menu_KEY_Code()則完成了觸摸按鍵的解析并且完成菜單的切換等。變量Reentry則就為程序的執(zhí)行添加了一份額外的保障,只有程序正確執(zhí)行才能將變量清零,負(fù)責(zé)將會(huì)跳出函數(shù)。4.3 物理按鍵程序設(shè)計(jì)本程序主要完成將物理按鍵輸入接口值轉(zhuǎn)化為按鍵值。程序原型如下:void KeyDecode (void)if (KeyCode = KEY_NONE) return;switch(KeyCode) case KEY_SHORT_ON: PlayBeepTone();if (DIS_flag = 0)T530

37、_POWER_ON();return;ShowImageHomeSw(); break;case KEY_LONG_ON: if (DIS_flag) message_queue_add(KEY_PRESS, 0x01, 0x00);Test_Flag = 1; break;default:break;該代碼放在大循環(huán)中每4ms循環(huán)一次,當(dāng)有按鍵按下的時(shí)候會(huì)通過(guò)ScanKey()返回兩個(gè)按鍵值,當(dāng)按鍵時(shí)間小于LONG_KEY_TIME的時(shí)候,將返回KEY_SHORT_ON,此函數(shù)如果判斷出按鍵值為短按的時(shí)候,將會(huì)DIS_flag進(jìn)行判斷,如果DIS_flag為0,說(shuō)明是剛上電狀態(tài),屏幕并沒(méi)有開(kāi)

38、啟,就執(zhí)行T530_POWER_ON(),給屏幕上電,osd初始化,顯示主界面等。如果DIS_flag不為0,則說(shuō)明正在顯示狀態(tài),則執(zhí)行代碼ShowImageHomeSw(),該代碼完成無(wú)論現(xiàn)在界面在什么狀態(tài)都跳轉(zhuǎn)到主界面的作用。當(dāng)按鍵時(shí)間超過(guò)LONG_KEY_TIME的時(shí)候,返回KEY_LONG_ON,此函數(shù)判斷出按鍵值為長(zhǎng)按的時(shí)候,則將會(huì)將長(zhǎng)按信息存放到消息隊(duì)列里面,消息解析函數(shù)將會(huì)完成相應(yīng)的消息解碼和消息處理。4.4 串口程序設(shè)計(jì)串口程序設(shè)計(jì)以標(biāo)準(zhǔn)串口B說(shuō)明,其他三路串口和該串口大同小異,不再予以說(shuō)明。串口程序主要由UARTB_REN_CTL(INT8U opt)、UARTimeEven

39、t()、ChkRxB_Frame()、TxB_Ready(u8 len,u8 data)、TxB_Process()。(1)UARTB_REN_CTL(INT8U opt)是接收使能函數(shù),入口參數(shù)為opt,沒(méi)有返回值。因?yàn)閱慰偩€、485、CAN、總線都為半雙工,當(dāng)我們?cè)诎l(fā)送數(shù)據(jù)的時(shí)候就不再希望接收到相應(yīng)的發(fā)送數(shù)據(jù),而且當(dāng)我們按下暫停接收按鈕的時(shí)候,數(shù)據(jù)接收也要停止,暫停接收功能就是通過(guò)該函數(shù)來(lái)完成。入口參數(shù)來(lái)確定是否開(kāi)啟接收,當(dāng)為1的時(shí)候,接收使能,當(dāng)為0的時(shí)候關(guān)閉接收。方便其他程序的調(diào)用。(2)UARTimeEvent()放在大循環(huán)中,主要完成接收抗干擾延時(shí)和發(fā)送延時(shí)。每次調(diào)用數(shù)據(jù)發(fā)送函數(shù)的

40、時(shí)候都會(huì)將發(fā)送數(shù)據(jù)的長(zhǎng)度賦值給TxB_Timer,在大循環(huán)中每4ms自減一次,當(dāng)自減到0的時(shí)候,關(guān)閉串口接收。在該段代碼還有接收延時(shí)抗干擾的作用,每當(dāng)接收到一個(gè)字節(jié)數(shù)據(jù)的時(shí)候全局變量RxB_Delay就會(huì)被賦值為3,RxB_Delay在大循環(huán)中每4ms自減1,當(dāng)接收完一幀數(shù)據(jù)的時(shí)候,RxB_Delay就會(huì)自減到0,并且將RxB_OverFlag置1,表示一幀數(shù)據(jù)接收完成。(3)ChkRxB_Frame()放在time0的中斷服務(wù)程序當(dāng)中,主要完成對(duì)接收數(shù)據(jù)的儲(chǔ)存及將接收消息存放到消息隊(duì)列里面。該函數(shù)會(huì)通過(guò)RxB_OverFlag的判斷來(lái)確定是否接收完一幀,判斷為1的時(shí)候,就將串口接收緩存里面接

41、收到的數(shù)據(jù)長(zhǎng)度和數(shù)據(jù)緩存轉(zhuǎn)移到串口B數(shù)據(jù)存儲(chǔ)單元,并且清空接收緩存,同時(shí)添加接收標(biāo)志到消息隊(duì)列里面。(4)TxB_Ready(u8 len,u8 data)可以在任何需要發(fā)送數(shù)據(jù)的時(shí)候調(diào)用,入口參數(shù)為L(zhǎng)en發(fā)送數(shù)據(jù)的長(zhǎng)度,data要發(fā)送的數(shù)據(jù)存放的數(shù)組。該函數(shù)主要將要發(fā)送的數(shù)據(jù)轉(zhuǎn)移到發(fā)送緩存中,將發(fā)送使能TxB_En置1,完成發(fā)送的準(zhǔn)備工作。(5)TxB_Process()為發(fā)送函數(shù),放在while大循環(huán)中,通過(guò)不停對(duì)TxB_En、TxB_Timer,RxB_RcvFlag,三個(gè)變量的查詢,判斷是否有數(shù)據(jù)發(fā)送,是否有數(shù)據(jù)在接收,發(fā)送條件是否達(dá)到。當(dāng)所有條件完成時(shí)候,就開(kāi)始對(duì)數(shù)據(jù)一個(gè)字節(jié)一個(gè)字節(jié)

42、的發(fā)送。4.5 消息程序設(shè)計(jì)消息程序主要完成對(duì)按鍵,串口數(shù)據(jù)接收,觸摸按鍵信息的存放和解碼。主要由兩個(gè)函數(shù)來(lái)完成消息添加函數(shù)message_queue_add(u8 ul_message, uint lx, uint ly)和消息解析函數(shù)msg_recv();(1)message_queue_add(u8 ul_message, uint lx, uint ly)是將消息存放到到消息隊(duì)列里面,入口參數(shù)ul_message為消息的類型,如果是觸摸消息,lx和ly分別為觸摸按鍵的坐標(biāo)值。本設(shè)計(jì)當(dāng)中定義了6個(gè)消息類型#defineKEY_PRESS(0xA1) 屏幕校準(zhǔn)消息#defineTOUCH_

43、SCREEN(0xA3) 觸摸按鍵消息#define SIMA_RCV_DATA(0xA4) 串口A數(shù)據(jù)消息#define SIMC_RCV_DATA(0xA5) 串口C數(shù)據(jù)消息#define UARTB_RCV_DATA(0xA6) 串口B數(shù)據(jù)消息#define UARTD_RCV_DATA(0xA7) 串口D數(shù)據(jù)消息(2)msg_recv()放在while大循環(huán)中不斷的對(duì)消息隊(duì)列取數(shù)據(jù)并解碼。message_queue_fetch(mr_buf, &mr_len)是msg_recv()的子函數(shù),主要完成消息的讀取,將消息讀取出來(lái)之后,通過(guò)消息類型的判別來(lái)執(zhí)行相應(yīng)的操作,當(dāng)判斷為KEY_PR

44、ESS是就執(zhí)行屏幕校準(zhǔn)初始化程序,并開(kāi)始進(jìn)行屏幕校準(zhǔn),當(dāng)判斷為觸摸按鍵消息的話,就將按鍵類型和按鍵坐標(biāo)一起存入觸摸按鍵緩存當(dāng)中。當(dāng)判斷為串口消息的時(shí)候,就執(zhí)行顯示操作。4.6 人機(jī)界面操作程序設(shè)計(jì)人機(jī)界面操作程序是基于宏芯公司提供的T530EA驅(qū)動(dòng)函數(shù)庫(kù)進(jìn)行編寫(xiě)。4.6.1 底層液晶屏驅(qū)動(dòng)函數(shù)(1)字符顯示函數(shù) OSDPutChar1624(unsigned int cChar, unsigned char cRepeat, unsigned char cAutoInc, unsigned char x,unsigned char y,unsigned char cColor)。該程序主要是在

45、屏幕的制定位置(x,y)顯示16*24大小的字符。Cchar為字符在字庫(kù)中的位置,cRepeat為顯示的次數(shù),cAutoInc為1的時(shí)候?qū)@示cchar字符及以后的cRepeat個(gè)字符,x為屏上顯示的x位置,y為屏上顯示的y位置,cColor為顯示的顏色。(2)顯示界面圖片函數(shù) showSPI_image(unsigned long IMG_LUT_BASE_ADDR, unsigned long IMG_BASE_ADDR, unsigned long LAYOUT_LINEJUMP, unsigned long EMUO_ADDR)該程序主要是在液晶屏上顯示相應(yīng)的圖片作為背景,IMG_LU

46、T_BASE_ADDR是LUT地址,IMG_BASE_ADDR為圖片在Flash中的地址,LAYOUT_LINEJUMP為圖片所占內(nèi)存的長(zhǎng)度,EMUO_ADDR為是否產(chǎn)生過(guò)度效果。所有的界面切換都是通過(guò)這個(gè)函數(shù)來(lái)完成,不同的界面顯示不同的背景圖片,從而完成界面的切換。(3)顯示按鈕圖片函數(shù)showSPI_sprite(unsigned long SPRITE_EMU_POS_H, unsigned long SPRITE_EMU_POS_V, unsigned long LUT_BASS_ADDR, unsigned long BASS_ADDR, unsigned long SPRITE_E

47、MU_WIDTH, unsigned long SPRITE_EMU_HEIGHT, unsigned long SPRITE_EMU_BASE_ADDRESS)該程序主要完成按鍵sprite圖片的的顯示,SPRITE_EMU_POS_H為sprite顯示的x坐標(biāo),SPRITE_EMU_POS_V為sprite顯示的y坐標(biāo),LUT_BASS_ADDR為sprit在Flash中l(wèi)ut地址,BASS_ADDR為sprite的基地址,SPRITE_EMU_WIDTH為sprite的寬度,SPRITE_EMU_HEIGHT為sprite的高度,SPRITE_EMU_BASE_ADDRESS為sprit

48、e菜單地址。所有的按鍵sprite效果都是通過(guò)這個(gè)函數(shù)來(lái)實(shí)現(xiàn),當(dāng)我們點(diǎn)擊觸摸按鍵的時(shí)候會(huì)顯示被點(diǎn)擊按鈕顏色加深,放大的效果,從而增加人機(jī)界面的友好性和可操作性。圖片在Flash存儲(chǔ)的地址,存儲(chǔ)長(zhǎng)度通過(guò)TWOSDTool這個(gè)工具來(lái)完成,在osd生成的時(shí)候,會(huì)產(chǎn)生一個(gè)燒寫(xiě)的bin文件及界面和sprite在Flash當(dāng)中存放地址大小的.h文件,在程序中我們只要按著.h文件上對(duì)應(yīng)的宏定義調(diào)用就可以顯示不同界面的顯示和sprite。(4)界面切換函數(shù)SendToMenuMessage(INT8U msg)該程序是將showSPI_image封裝在一起,通過(guò)對(duì)入口參數(shù)顯示的界面類型msg的判斷,從而顯示不

49、同的界面圖片,完成界面切換的任務(wù)。程序中通過(guò)枚舉類型,定義了六個(gè)界面,使用的時(shí)候我們只需要簡(jiǎn)單的調(diào)用這個(gè)函數(shù)就可以完成界面的切換enum Menu_A,Menu_B,Menu_C, Menu_D,Menu_Set,Menu_Scanf,MenuCnt_;(5)sprite效果顯示函數(shù)操作按鈕sprite顯示函數(shù):Show_sprite(INT8U dat)數(shù)字按鈕sprite顯示函數(shù):Show_Numsprite(INT8U dat);兩個(gè)函數(shù)的原理是一樣的,都是將showSPI_sprite封裝在一起,通過(guò)對(duì)入口參數(shù)dat的判斷,從而顯示不同的按鈕圖片,達(dá)到sprite的效果。只是封裝的圖片

50、類型不同而已。因?yàn)橐呀?jīng)對(duì)所有的sprite圖片進(jìn)行了唯一的宏定義,到時(shí)候我們只要調(diào)用Show_sprite函數(shù)加上要顯示的sprite的定義就可以完成sprite效果。4.6.2 人機(jī)界面操作與顯示函數(shù)流程圖:圖4-2 人界界面操作流程圖(1)觸摸坐標(biāo)轉(zhuǎn)化按鍵值函數(shù)Touch_KEY_Code(INT8U Menu_x);該函數(shù)主要完成觸摸坐標(biāo)值與觸摸按鈕之間的轉(zhuǎn)換,入口參數(shù)Menu_x為當(dāng)前界面的枚舉類型,確定當(dāng)前的觸摸坐標(biāo)與哪一個(gè)界面的觸摸按鍵進(jìn)行轉(zhuǎn)換。在Touch_Key.h文件中我們已經(jīng)對(duì)每個(gè)界面上的按鈕坐標(biāo)位置進(jìn)行了定義,在這個(gè)函數(shù)中我們只要判斷觸摸的坐標(biāo)值在定義按鈕的那個(gè)位置就可以

51、判斷出點(diǎn)擊了哪一個(gè)觸摸按鍵,并返回該按鍵值KEYCODE。(2)總菜單界面按鍵解碼函數(shù)Menu_KEY_Code();該函數(shù)主要將Touch_KEY_Code返回的KEYCODE進(jìn)行解碼,判斷是在那個(gè)界面,并進(jìn)入相應(yīng)的界面的解碼函數(shù)。該函數(shù)放在TimeEvent()中4ms一次循環(huán),判斷是否有觸摸按鍵按下。(3)模塊菜單界面按鍵解碼函數(shù)MenuDecode_A()、MenuDecode_B()、MenuDecode_C()、MenuDecode_D()、 MenuDecode_Set()、MenuDecode_Scanf();這六個(gè)函數(shù)分別是六個(gè)界面的操作函數(shù),通過(guò)對(duì)KEYCODE的解碼,完成

52、顯示,控制,設(shè)置,輸入等操作。他們都放在Menu_KEY_Code()中。(4)輸入界面函數(shù)Enter_NumberKEY()、ClearNum()、OSD_DispDelNum();Enter_NumberKEY()函數(shù)作為MenuDecode_Scanf()的子函數(shù),完成數(shù)據(jù)輸入的所有功能,CLearNum()函數(shù)主要在按下確定按鍵之后,清除按鍵輸入緩存。OSD_DispDelNum()主要是動(dòng)態(tài)顯示刪除數(shù)據(jù),而不用清屏后重新來(lái)寫(xiě)。(5)顯示函數(shù)SimA_Display();該函數(shù)主要是在界面A上顯示接收到的數(shù)據(jù),要發(fā)送的數(shù)據(jù),暫停狀態(tài)等需要顯示的信息.界面B界面C界面D,和界面A一樣。在

53、接收到數(shù)據(jù)的時(shí)候會(huì)調(diào)用相應(yīng)函數(shù)進(jìn)行數(shù)據(jù)的更新。(6)接收數(shù)據(jù)清除函數(shù)ClearBuf()該函數(shù)主要是在點(diǎn)擊CLEAR的時(shí)候清空當(dāng)前界面接收的數(shù)據(jù)存儲(chǔ)的作用,通過(guò)對(duì)menucnt_的判斷來(lái)確定要清除是哪一個(gè)數(shù)據(jù)存儲(chǔ),并且在執(zhí)行完此函數(shù)之后,執(zhí)行一次對(duì)應(yīng)界面的的顯示函數(shù)(7)發(fā)送數(shù)據(jù)清除函數(shù)ClearTxBuf()該函數(shù)主要是在點(diǎn)擊SEND發(fā)送按鈕之后,再將發(fā)送數(shù)據(jù)寫(xiě)入發(fā)送緩存之后,用來(lái)清除發(fā)送發(fā)送存儲(chǔ)的,通過(guò)對(duì)Menucnt_的判斷來(lái)確定要清除是哪一個(gè)數(shù)據(jù)存儲(chǔ)。(8)波特率選中狀態(tài)顯示Display_Baund_State(uint8_t temp)該函數(shù)主要用來(lái)顯示當(dāng)前選中的波特率,入口參數(shù)用

54、來(lái)選擇是顯示在哪一個(gè)按鍵的下面。由于在OSD的時(shí)候沒(méi)有考慮周全,沒(méi)有制作選中圖標(biāo),只能用文字來(lái)表示選中狀態(tài)。(9)其他界面接收數(shù)據(jù)幀顯示函數(shù)Display_Other_RcvNum()該函數(shù)主要是用來(lái)在當(dāng)前界面下顯示其他界面是否接收到數(shù)據(jù),并且接收數(shù)據(jù)幀的個(gè)數(shù)。這個(gè)函數(shù)主要放在數(shù)據(jù)接收消息處理里面,只要有數(shù)據(jù)接收就顯示。(10)暫停狀態(tài)顯示函數(shù)Display_Hold_state()該函數(shù)主要用來(lái)顯示暫停按鈕按下的狀態(tài),通過(guò)在暫停按鍵上顯示一個(gè)小的圖標(biāo)來(lái)代表現(xiàn)在程序處于暫停接收的狀態(tài)。方便了調(diào)試著隨時(shí)掌握串口狀態(tài)。5 人機(jī)界面設(shè)計(jì)5.1 主界面界面簡(jiǎn)介:作為顯示和控制的主界面,整個(gè)界面以顯示為主,控制為輔。左邊四分之三的位置作為顯示界面,總共可以顯示五幀、每幀最大可以十個(gè)字節(jié)的數(shù)據(jù),上面四格作為接收數(shù)據(jù)的顯示界面,可以顯示當(dāng)前數(shù)據(jù)幀的位置和數(shù)據(jù)。最后一格為發(fā)送數(shù)據(jù)的顯示界面,可以顯示將要發(fā)送的數(shù)據(jù)。發(fā)送顯示界面的右邊的SEND為發(fā)送按鈕,當(dāng)按下按鈕的時(shí)候,會(huì)將發(fā)送界面的數(shù)據(jù)通過(guò)串口發(fā)送出去,并且清除發(fā)送數(shù)據(jù)緩存,發(fā)送數(shù)據(jù)顯示界面將被清空。向上向下按鈕主要是用來(lái)查詢接收的歷史數(shù)據(jù),每按一次向上按鈕,接收數(shù)據(jù)向上顯示一幀。

溫馨提示

  • 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)論