亚洲视频一区二区三区_国产在线拍偷自揄拍精品_日韩av在线看_日本久久久久久久久久久_精品国产区一区二区三区在线观看_国产日产欧美a一级在线_日韩亚洲在线观看_日韩久久精品电影_久久综合电影一区_2021国产精品视频_国产精品小说在线_欧美—级高清免费播放_一区二区三区高清国产_91av视频在线免费观看_一二美女精品欧洲_成人网在线免费看

  • 一種用于嵌入式系統的液晶顯示單元設計———一種用于嵌入式系統的液晶顯示單元設計

    在自動化儀器儀表、工業測控裝置等嵌入式計算機系統中,圖形液晶顯示模塊(點陣LCD)以顯示靈活、信息量大、可實現圖形界面等優點而被廣泛的用做顯示終端。這些模塊大多提供并行數據接口,少量提供串行接口的模塊也要求通信采用特殊協議,給系統的軟硬件設計都帶來較大不便。在顯示程序上,可移植通用的嵌入式圖形用戶界面GUI軟件,如MiniGUI,OpenGUI等,以簡化軟件設計工作。但是,這些GUI軟件移植繁瑣,有些源代碼不公開,一般需要數百KB的存儲量,對于一些只要求實現簡單界面的工控應用來說過于龐大,有一些功能(如鼠標操作、支持漢字輸入法等)也不十分必要。
    針對上述問題,本文結合LCD顯示模塊STN6448D-4K設計了一種滿足工控要求的模塊化圖形液晶顯示單元。硬件上通過51單片機搭建轉換電路,實現模塊并行訪問時序到串行顯示命令的轉換。軟件上結合串行接口命令和通信協議,用C語言編寫了具有消息驅動機制的簡單通用圖形用戶界面GUI程序,可以方便地移植到各種工控嵌入式系統。

    1.標準串口擴展的設計
    液晶顯示模塊STN6448D-4K支持640×480點陣4096偽彩色顯示,用戶接口為8位并行口。圖1為模塊的RS-232硬件擴展接口結構,在AT89C51單片機最小系統基礎上,擴展了一片MAX232。單片機通過總線與模塊STN6448D-4K的控制器相連。單片機接收并分析串口指令,調用相應函數完成對LCD的各種顯示控制。為減少串行通信數據量,還擴展了一片2MB的Flash存儲器AM29F016D,用于存儲BMP圖像和字符庫、漢字庫。通常采用的字庫有漢字庫文件Hzk16f.bin(16×16點陣)、Hzk24k.bin(24×24點陣),ASCII碼文件ASC16.bin(16×8點陣)、ASC24.bin(24×12點陣)等,位圖文件可以根據需要自行制作和增減。所有的字庫和位圖均通過RS-232接口從PC機下載到Flash存儲器中,根據每個文件的存儲首地址索引可以完成字符、漢字、位圖的顯示。

    2.串口指令和通信軟件設計
    按照STN6448D-4K的編程格式編寫清屏、畫點、畫線、畫矩形、寫字符(ASCII字符、漢字)、加載位圖等基本繪圖函數的單片機程序比較簡單,這里不作說明。單片機在完成初始化、清屏操作后,將就緒狀態信息傳遞給嵌入式系統的CPU,并等待從RS-232傳來的繪圖指令。每一個繪圖指令,都是一個繪圖命令幀,與一個繪圖函數相對應。
    單片機收到一個完整的繪圖指令后根據指令碼識別不同的繪圖操作,調用相應的函數完成顯示控制。由于各個函數的指令長短不一,單片機需要判斷出一條指令的結束;而且單片機完成LCD操作需要時間,硬件上又沒有一個“BUSY”信號來指示單片機暫時不能接收指令。故程序設計上需保證傳輸同步和可靠性。
    2.1 顯示命令幀的封裝
    每一個繪圖指令都封裝成一個繪圖命令幀,封裝時依據以下3條規則:
    (1)在每一個繪圖指令的結尾加上標志字節END,封裝成一個繪圖命令幀。一個完整的繪圖命令幀包括繪圖指令碼、繪圖函數參數以及END標志。標志字節END的編碼為0x55;
    (2)在幀數據(指令的有效數據)中的某一個字節如果與END(0x55)相同,則將這個字節轉換為(0xDE,0xCF)的2字節序列。其中0xDE稱為轉義字符TRANS,0xCF為數據與END標志相同時轉義后的替換符TRANS_REP。
    (3)如果幀數據中某個字節與轉義字符(0xDE)本身相同,則將其更換為(0xDE,0xDE)2字節序列。
        如果不考慮轉義字符,一個完整的繪圖命令幀格式如下:

    其中:CMD指令碼,P1-Pn為n個字節數據。例如畫水平線函數對應的命令幀中的字符依次為:0xCA, X0_H, X0_L, Y_H, Y_L, X1_H, X1_L, CLR。其中0xCA為指令碼(對每個函數唯一),之后的6個為坐標參數,CLR為顏色。
    2.2 接收狀態機
    單片機的接收中斷處理采用接收狀態機機制,狀態轉換如圖2所示。
    三個狀態的含義為:

    狀態0: 準備接收一幀數據
    狀態1: 正在接收一幀數據,且上一次接收到的字節不是轉義字符
    狀態2: 正在接收一幀數據,且上一次接收到的字節是轉義字符
    接收一個字節后,根據當前狀態和接收到的字符a,進行狀態轉換,并舍棄轉義字符等多余字節,將有效數據放入接收緩沖數組。當接收到有效的結束符END后,單片機將置緩沖滿標志。單片機讀到該標志,即可分析緩沖區中的數據,執行相應顯示操作,并在操作后,清除緩沖滿標志并向嵌入式系統的主CPU發出可以接收數據的應答字符(0x55)。

    3.圖形用戶界面(GUI)程序設計
    前述設計已能滿足簡單的顯示要求。在此基礎上本文使用C語言編寫了通用的GUI程序,設計出類VB的包含窗體和簡單控件的界面,實現簡單的可視化的操作:如按鈕按壓、文本輸入、標簽顯示、選擇框選擇、軟件菜單、窗體加載、位圖顯示、控件的Tab聚焦等。程序采用分層和模塊化的思想,其分層結構如圖3所示。這樣,可以減少程序間的耦合,便于程序的完善和升級。

    3.1 邏輯設備層基本繪圖函數(LD.C)
    最底層的硬件設備層的繪圖函數(HD.C)是顯示命令幀的發送,采用液晶屏的絕對坐標(屏左上角為坐標零點)繪圖,邏輯設備層的函數則是基于用戶定義的當前“窗口”相對坐標(窗口左上角為坐標零點)繪圖,窗口的位置任意。這里說的“窗口”就是當前顯示的可操作范圍,也稱為“窗口上下文”。
    繪圖工具函數是一些內聯函數和宏定義,創建當前的窗口上下文,完成絕對坐標與相對坐標相互轉換,進行繪圖元素的移動、復制,設置字間距、行間距等?;诖翱诓脺p的繪圖函數調用各種繪圖工具函數和硬件設備層的繪圖函數,實現了點、線、漢字、字符、平面和3D矩形框的繪制,位圖加載等,并將超出窗口范圍的部分裁減掉(忽略不畫)。
    3.2 窗體/控件的設計
    窗體(Form)和控件全部由結構體來定義。簡單控件的共性是均為矩形框(平面的或3D的),所以都可以由公共結構體Gwidget加上各自的個性化屬性和行為方式派生得到??丶傩裕ɑ驙顟B)包括:按下/彈起(對Button控件)、聚焦/失去焦點、允許/禁止接受用戶輸入(區分Label和Text)等?;贕Widget可以派生Button、Label、Text、SelBox、menu等控件。Gwidget結構體成員包括“窗口”信息、控件ID(唯一標識一個控件)、控件屬性/狀態、控件邊界寬度(實現3D顯示)、默認的控件消息響應函數指針(如ButtonOnMsg)。
    窗體(Form)既是一個獨立的實體,又是控件的容器,用于管理屬于它的所有控件并傳遞和響應消息。其結構體成員主要有:窗口上下文、消息響應函數指針、標題字符串指針、所含的控件數組指針、所含控件數、當前聚焦的控件ID等。
    3.3 GUI消息響應機制
    針對具體的應用要求,可以設計出各種各樣的窗體(界面),每一個窗體包含多個控件。有的控件可以接受用戶字符串和數字輸入(Text控件)。這些窗體通過軟件菜單組織起來。菜單為多叉樹結構,最下一級菜單指向一個窗體或執行某個功能。同一級菜單包含并管理一個或多個菜單項。菜單結構體成員主要有:包含各菜單項的數組指針、菜單項個數、指向上級菜單的指針(可以為空)等,而菜單項結構體則包含指向下一級菜單的指針(可以為空)、指向一個窗體的指針(可以為空)、消息響應函數指針等。主程序和GUI之間的消息傳遞(或函數調用)機制如圖4所示,虛線空心箭頭指示消息的傳遞方向。

    4.結束語
    本文設計的液晶顯示單元具有RS-232接口,不僅在接入嵌入式系統方面提供了方便,也為在系統設計時,使用PC機并行地進行顯示軟件設計提供了途徑。用C語言編寫的GUI程序可以方便地移植到各種基于嵌入式操作系統的應用中,占用空間小,使用簡單,通用性好,能滿足一些較復雜界面顯示的要求,其已經在筆者開發的多個嵌入式系統中得到應用。

     
     
    網站首頁  |  關于我們  |  聯系我們  |  廣告服務  |  版權隱私  |  友情鏈接  |  站點導航
     
    亚洲视频一区二区三区_国产在线拍偷自揄拍精品_日韩av在线看_日本久久久久久久久久久_精品国产区一区二区三区在线观看_国产日产欧美a一级在线_日韩亚洲在线观看_日韩久久精品电影_久久综合电影一区_2021国产精品视频_国产精品小说在线_欧美—级高清免费播放_一区二区三区高清国产_91av视频在线免费观看_一二美女精品欧洲_成人网在线免费看
    欧美电影在线观看完整版| 中文字幕欧美国内| 欧美亚洲第一区| 成人黄色大片在线免费观看| 欧美xxxx18国产| 在线观看日韩欧美| 午夜伦理精品一区| 久久精品国产欧美亚洲人人爽| 成人在线激情视频| 欧美日韩成人在线播放| 国a精品视频大全| 国产日韩精品电影| 精品人伦一区二区三区蜜桃网站| 成人激情电影一区二区| 成人一区二区电影| 欧日韩在线观看| 亚洲男人的天堂网站| 国模精品一区二区三区色天香| 97人人模人人爽人人喊中文字| 亚洲视频网站在线观看| 欧美性精品220| 色综合色综合久久综合频道88| 色婷婷综合久久久久| 欧美亚洲国产精品| 亚洲国产中文字幕在线观看| 亚洲国产第一页| 中文字幕精品久久久久| 久久91亚洲精品中文字幕奶水| 日韩视频第一页| 欧美三级欧美成人高清www| 亚洲人成电影网站色…| 精品视频一区在线视频| 亚洲专区中文字幕| 成人免费观看a| 久久国产视频网站| 亚洲剧情一区二区| 夜夜躁日日躁狠狠久久88av| 一二美女精品欧洲| 美日韩丰满少妇在线观看| 综合av色偷偷网| 日韩在线观看免费全集电视剧网站| 国产区精品在线观看| 色无极亚洲影院| 国产成人极品视频| 欧美壮男野外gaytube| 色婷婷综合久久久久中文字幕1| 97超级碰碰人国产在线观看| 18一19gay欧美视频网站| 国产成人综合一区二区三区| 成人有码在线视频| 成人日韩av在线| 自拍偷拍亚洲区| 亚洲精品免费一区二区三区| 国产在线视频不卡| 成人激情综合网| 1769国内精品视频在线播放| 精品人伦一区二区三区蜜桃免费| 亚洲国产精久久久久久久| 久久国产精品久久精品| 国产精品福利观看| 国产视频丨精品|在线观看| 亚洲高清免费观看高清完整版| 成人性生交大片免费观看嘿嘿视频| 91地址最新发布| 亚洲久久久久久久久久| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美大学生性色视频| 欧美疯狂做受xxxx高潮| 国产成人一区二区在线| 日韩电影大全免费观看2023年上| 久久亚洲精品国产亚洲老地址| 欧美激情在线观看视频| 欧美一级视频在线观看| 久久久久免费视频| 国产剧情日韩欧美| 国产精品电影一区| 日韩a**中文字幕| 欧美风情在线观看| 97超级碰碰人国产在线观看| 欧美成年人视频网站欧美| 最新91在线视频| 国产午夜一区二区| 国产伦精品一区二区三区精品视频| 欧美黄色片视频| 视频直播国产精品| 一区二区三区动漫| 亚洲一区二区三区sesese| 日本国产高清不卡| 亚洲精品乱码久久久久久金桔影视| 日本国产一区二区三区| 国内外成人免费激情在线视频| 2019国产精品自在线拍国产不卡| www.日韩免费| 久久久影视精品| 97在线视频一区| 日韩免费不卡av| 成人黄色生活片| 色爱精品视频一区| 欧美高清在线观看| 国产99久久精品一区二区永久免费| 国产精品video| 国产精品青青在线观看爽香蕉| 欧美成人免费在线视频| 久久精品精品电影网| 91九色在线视频| 懂色aⅴ精品一区二区三区蜜月| 国产美女搞久久| 久久在线视频在线| 久久久视频精品| 亚洲网站在线播放| 日本久久久久久久久久久| 隔壁老王国产在线精品| 成人福利视频在线观看| 亚洲精品自拍偷拍| 日韩美女免费视频| 欧美激情va永久在线播放| 国产精品羞羞答答| xvideos亚洲人网站| www.欧美免费| 91黑丝在线观看| 国产精品久久久久久久久借妻| 亚洲欧美综合区自拍另类| 欧美一区二区三区精品电影| **欧美日韩vr在线| 日韩中文字幕网| 日韩国产欧美精品一区二区三区| 2019国产精品自在线拍国产不卡| 一区二区在线视频| 91国偷自产一区二区三区的观看方式| 中文字幕日韩精品在线| 国产一区二区三区在线播放免费观看| 欧美一级大片在线免费观看| 欧美日韩爱爱视频| 欧美精品video| 久久久极品av| 97在线观看视频| 日韩在线视频国产| 国产69精品久久久| 欧美二区在线播放| 日韩在线观看免费全| 国模精品系列视频| 亚洲影视九九影院在线观看| 亚洲新声在线观看| 亚洲欧洲一区二区三区久久| 亚洲精品suv精品一区二区| 国产亚洲精品va在线观看| 91精品久久久久久久久久久久久久| 久久久久久久久亚洲| 欧美专区在线视频| 欧美国产在线电影| 久久久精品视频在线观看| 亚洲免费福利视频| 成人网页在线免费观看| 国产精品久久久久久久久久久久久久| 91美女福利视频高清| 欧美成人黄色小视频| 欧美成人四级hd版| 欧美激情videos| 日韩精品在线免费播放| 91成人精品网站| 亚洲天堂精品在线| 成人国产精品免费视频| 久久夜色精品国产亚洲aⅴ| 久久成人一区二区|