迪文DGUS串口屏的使用

战侠歌 2024-05-20 21:36 12次浏览 0 条评论 taohigo.com

學習需要,資料備份,根據dwin的官方文檔及網絡資料整理而來。

一、 基礎知識理解

1.1、變量地址和描述指針

  VP(變量地址)和SP(描述指針)通常是指顯示變量功能的兩種定義,兩者共用0000到6FFF地址。

  (1) VP指某個變量顯示功能必須需要的實際地址,必須要定義。VP指定變量存儲器空間的數據操作首(字)地址,存放頁面上對應的配置按鈕的數據;

  (2) SP指某個VP地址顯示的控件的屬性地址,以便在應用中可以讓用戶指令修改,達到實時控制不同顯示效果目的如字體顏色、位置、狀態等屬性。可以不定義(默認FFFF)。如圖1所示,紅色的框裡面的內容即為描述指針(屬性地址),黃色的框裡面的內容為變量地址(實際地址)。

                                                    圖1 顯示變量地址

1.2、數據變量類型

  DGUS所支持的數據類型如圖二所示。

圖2 數據類型

  類型說明:

整數(2字節):-32768(0x8000)到+32767(0x7FFF)

長整數(4字節):-2147483648(0x80000000)到+2147483647(0x7FFFFFFF)

VP 高字節:隻顯示 VP 高字節數據

VP 低字節:隻顯示 VP 低字節數據

超長整數(8字節):-9223372036854775808 到 9223372036854775807

無符號整數(2字節):0(0x0000)到 65535(0xFFFF)

  整數、小數位

  整數位為整個數據的長度,包括小數位。小數采用定點小數表示,用戶自定義小數位數,比如 0x186ED(100077),規定小數為 2 位時,表示 1000.77;0xE7913表示-1000.77(先把十進制數轉化為十六進制數,取補碼加一得到相應的負數)。在實際的使用過程中,要按接受的數據類型配置相應的數據類型。1.3、DWIN_SET內部文件理解

  a、0號字庫(隻能顯示ASCII碼類型的,顯示漢字的需要其他字庫的支持,這個可以根據實際的需求利用ts3字庫生成器生成)。

  b、12是GBK錄入輸入法文件(暫時用不到)。

  c、13是觸控配置文件(暫時用不到)。

  d、14是顯示配置文件(自動生成)。

  e、15-21是系統預留。

  f、22是初始值加載文件(自動生成)。

  g、23是os二次開發軟件寫ASM文件編譯生成後下載到屏裡面的文件(暫時用不到)。

  h、24開始是用戶自定義從:如圖標庫大小大於256KB,假設為257KB,那麼將占用兩個字庫空間,假設字庫命名“40_指示燈.ICO” 大小為257KB,那麼占用瞭40,41 兩個字庫空間,下一個圖標庫不能寫為41.ICO,必須由42序號命名開始。

  i、config.txt系統配置說明。

  DGUS軟件系統配置點擊自動生成或手動修改:

R1=03 ;波特率,03=9600

  R2=2C ;2CH=00101100B 參考開發指南R2寄存器定義表格.2 .3 .5位配置(軟件工作模式配置寄存器)

  R3=5A ;幀頭高字節

  R6=40 ;觸摸屏控制背光啟用後,點擊觸摸屏後背光亮度(00-40)

  R7=10 ;觸摸屏控制背光啟用後,一段時間不點擊,背光關閉的亮度

  R8=1E ;30秒不點擊觸摸屏,觸摸屏背光降低到上面R7=10

RA=A5 ;幀頭低字節

RUN_DWIN_OS ;啟用os (STOP_DWIN_OS;關閉os)

  TP_CORRECT ;插卡配置時開啟觸摸屏校準一次

RC=00 ;參考RC寄存器8個位的配置。

1.4 、實際變量地址規劃

  (1)變量圖標 占用一個地址。如5A A5 05 82 0001 0001顯示0001地址的1號圖標。

  (2)動畫變量圖標 占用兩個地址。如5A A5 05 82 0002 0001顯示0002地址的動畫圖標開始動畫,另一個地址理解為輔助用。

  (3)位變量圖標 占用三個地址,實際指令是占用一個地址,如5a a5 05 82 0004 FFFF將0004地址的16個位寫滿,另外兩個地址,是輔助地址,主要是輔助位變量圖標的動畫顯示用的,輔助地址不可以訪問,可以接在後面設置如0005,0006。

  (4)文本變量 一個漢字占用兩個字節地址,如發指令顯示北京,5A A5 07 82 0008 B1B1 BEA9。

  (5)數據變量 不同的數據類型占用的地址大小不同,最少占兩個字節地址,如設置整數,發送5A A5 05 82 000A 000B,在0x000A地址裡寫入11,如長整數:5A A5 07 82 000B 0000 000B 在000B和000C地址裡面寫入數11,數據變量顯示的單位占用的是描述指針地址,最多可顯示11個ASCII碼。

  (6)RTC時間 不占用變量地址,可以用描述指針。

  (7)動畫圖片 不占用變量地址,可以用描述指針。

  (8)HEX變量(時間變量) 占用變量地址根據右邊設置 Byte_Mum的長度來的,比如Byte_Mum設置4,那麼地址占用是4個字節,也就是2個變量地址,編碼字符串占用描述指針的地址。

 DGUS標準屏變量地址0000H~6FFFH。

 描述指針間隔0x10個地址間距,如5000,5010,5020,5030。建議描述指針可以設置4000到6F00之間,變量地址4000H之前,這樣就不會產生沖突,6F00到6FFF之間的變量地址是硬件參數部分用的不推薦使用這個部分。6FFF之外的變量地址不要使用,會出現不可預計的錯誤。

1.5、五條指令

  DGUS液晶屏共有5條通信指令。如圖3所示,這5條指令被分為3組,一組(0x80、0x81)用於對DGUS寄存器區的訪問,一組(0x82、0x83)用於對用戶RAM區的訪問,一組(0x84)用於刷新曲線。如圖三所示:

                                                    圖3 DGUS的五條指令

1.6、DGUS寄存器區的訪問

  a、讀DGUS屏寄存器指令(81)

  數據幀格式如圖四所示:

圖4數據幀格式

R_ADR:用戶將讀取以此為首地址的連續的一段數據。

R_Num:用戶要讀取的以R_ADR為首地址,連續的一段數據的字節數。

  舉例讀圖片地址為說明:

 以讀當前圖片地址為例(假設當前頁面地址是第 5 幅)向屏發指令如下:

   5A A5 03 81 03 02

5A A5 表示:幀頭(默認幀頭,如果自行修改,請根據當前幀頭發送指令)

03   表示:數據長度(以字節為單位)

81 表示:讀DGUS屏寄存器

03 表示:寄存器(存儲DGUS 屏頁面寄存器(03和04寄存器存放的頁面))

02 表示:02個字節長度(圖片地址是兩個字節)

  指令發送完畢後以後屏會向串口返回讀的應答:

  5A A5 05 81 03 02 0005

5A A5 表示:幀頭

05  表示:數據長度

81 表示:讀DGUS屏寄存器

03 表示:寄存器(存儲DGUS 屏頁面寄存器(03和04寄存器存放的頁面))

02  表示:02個字節長度(圖片地址是兩個字節)

0005 表示:讀回來的03和04寄存器裡面放的數,也就是頁面號

  b、寫DGUS屏寄存器指令(80)

  數據幀格式如圖五示:

圖5據幀格式

W_ADR:“數據包”中的數據將以其為首地址,被依次寫入後面的寄存器地址中。

W_Data:要被寫入DGUS寄存區中的數據。

此處以切換圖片為例,如從當前頁面切換到第6幅圖片,向屏發指令如下:

  5A A5 04 80 03 0005

 5A A5 表示:幀頭

  04 表示:數據長度

  80 表示:寫DGUS屏寄存器

  03 表示:寄存器(存儲DGUS 屏頁面寄存器(03和04寄存器存放的頁面))

  0005 表示:向寄存器03和04分別寫00和05,也就是切換到第5頁

  (此條指令還可以這樣寫 :5A A5 03 80 04 05,隻寫04寄存器,針對頁面不超過FF)

其他寄存器寫指令舉例:

控制亮度: 5A A5 03 80 01 20 一半的亮度范圍(亮度范圍00~40)

蜂鳴器: 5A A5 03 80 02 20 單位10ms最大FF

復位指令: 5A A5 04 80 EE 5A A5 相當如掉電之後再上電的效果

頁面切換: 5A A5 04 80 03 0001

RTC: 5A A5 0A 80 1F 5A 17 07 20 00 16 05 59

(更改為2017年07月20日16:05:59星期用的00自動換算)

  按鍵觸發,4F鍵控:5AA5 03 80 4F (00~FF) 勾選後指令控制觸摸按鍵功能。右上角鍵控選項是01到FF之間可以設置255個鍵,把按鈕設置鍵控之後,軟件界面顯示顏色會變灰,這個時候就需要:發指令觸發5a a5 03 80 4F 01。觸控就不起作用,整個過程中指令就相當於觸控的效果。

  1.7、用戶RAM區的訪問(變量地址)

  a、寫變量存儲器指令指令(82)

  數據幀格式如圖六

                                                圖6數據幀格式

  此處以往 0000 變量地址裡寫數值 2 為例:

  5A A5 05 82 0000 0002

   5A A5 表示:幀頭

   05 表示:數據長度

  82 表示:寫變量存儲器指令

  0000 表示:變量地址(兩個字節)

  0002 表示:數據2(兩個字節)

指令代表往0000地址裡面賦值2.屏上的顯示,數據變量整數類型2

  b、讀變量存儲器指令指令(83)

  數據幀格式如圖七:

圖7據幀格式

  此處以讀 0000 變量地址裡的數值(假設當前數值為 2)為例:

  5A A5 04 83 0000 01

  5A A5 表示:幀頭

   04 表示:數據長度

  83 表示:讀數據存儲區指令

  0000 表示:變量地址(兩個字節)

  01 表示:從 0000 地址開始讀 1 個字長度數據

  讀完以後屏會向串口返回讀應答:

  5A A5 06 83 0000 01 0002

   5A A5 表示:幀頭

  06 表示:數據長度

  83 表示:讀變量存儲器指令指令

  0000 表示:變量地址(兩個字節)

  01 表示:從 0000 地址開始讀 1 個字長度數據

  00 02 表示:0000 地址裡的數據值是 2

  1.8、曲線緩存區的訪問

 0x84指令專門用於曲線數據的更新,指令格式如下:

圖8據幀格式

  CH_M:此字節控制著“數據包”中的數據是寫到哪個曲線緩存的。字節中的8個位,從低到高依次編號為bit0、bit1、……bit7,分別控制著曲線通道0、通道1、……通道7的數據分配,取值為1有效。

  Line_Data:發給曲線緩存的數據,每個數據為1個Word。

  舉例說明:將數據0x0001、0x0002寫到通道0,將數據0x0003、0x0004寫到通道5。

  指令:5A A5 0A 84 21 (0001 0003)(0002 0004)

  舉例說明:將數據0x0001、0x0002、0x0003分別寫到通道0、1、2。

  指令:5A A5 08 84 07 0001 0002 0003

  1.9、描述指針指令說明

  a、以數據變量顯示的屬性框來介紹描述指針

圖9數據變量顯示屬性

  例:數據變量顯示的描述指針設置5000,參考上表紅色框內可以看做偏移地址。

  控制顏色的地址就是5003

  控制坐標的地址就是5001

  改變數據變量顯示顏色:5A A5 05 82 5003 F800。修改成紅色。

  改變數據變量顯示位置:5A A5 07 82 5001 0000 0000。數據框會出現位置在(0,0)。

  若描述指針為1000變量地址為2000,需顯示左對齊,2位整數,三位小數,整數類型。指令:5A A5 07 82 1005 0002 0300。

  通過以上命令我們可以得知,描述指針加上變量的偏移地址即為修改變量相應屬性的實際地址。

  b、文本變量顯示

  改變字體顏色5A A5 05 82 1003 0030

  c、圖標變量顯示

圖10圖標變量顯示屬性

  圖標描述指針顯示背景色指令舉例:假設描述指針為5000,圖標庫位置為24。

  5A A5 05 82 5007 1801 顯示背景

  5A A5 05 82 5007 1800 不顯示背景

  動畫變量圖標可以指令控制改變停止的圖標:可以用描述指針+06H地址Icon_Stop,指令舉例:5a a5 05 82 5006 0002停止圖標2號,這個圖標的序號可以取該基地址ICO圖標的所有的小圖片圖標序號范圍。

  1.10、圖標

  迪文DGUS液晶屏所指的圖標是分辨率小於255*255的圖片文件,命名方式與圖片相同,即前綴為存儲序號。

  直接的圖標文件迪文DGUS屏是不能裝載和識別的,需要事先把所有圖標設計好並放在一個自定義的文件夾中,然後使用“DWIN_ICO生成工具”(軟件的初始頁面)生成一個.ICO的圖標庫文件,這個圖標庫文件的文件名前綴也必須是數字開頭,數字即其在FLASH存儲器空間的存儲編號。例如名稱為24.ICO圖標庫文件,其存儲位置為FLASH存儲器空間的第24號扇區,需要註意的是,根據圖標庫文件的大小,其實際占用的扇區數量有可能大於1個,這個在給圖標庫分配存儲扇區時需要註意,以免多個存儲文件之間發生交疊。

  使用迪文的圖標生成工具制作好圖標庫文件後,將其移至HMI工程目錄中的DWIN_SET文件夾中,然後在DGUS配置軟件中才能預覽到此庫文件。

  1.11、字庫

  迪文DGUS液晶屏隻支持點陣字庫,不支持矢量字庫。

  字庫的屬性包括:字符大小、字體、字庫編碼方式、存儲編號。

  迪文屏出廠預裝瞭4*8~64*128分辨率的ASCII碼字庫,文件名為0_DWIN_ASC.HZK,即其存儲在FLASH存儲區的第0號扇區。

  其他字庫需要客戶自己生成並存儲在FLASH存儲區的24號以後的扇區。(將字庫文件放在DWIN_SET文件夾中即可在軟件中預覽並調用)

  根據實際的需求利用ts3字庫生成器生成相應的字庫文件。

二、 顯示變量操作說明

  在顯示變量中文本顯示變量和數據變量顯示是最常用到的兩種變量顯示類型,其用法有相似之處,如都需要規劃好各自的描述指針,地址變量及合適的字庫(數據變量用0號字庫)等,區別在於顯示的內容不同(文本有相應的編碼格式),數據變量需要設置相應的數據類型以及數據形式(整數、小數)。在液晶顯示的同一頁面其他的變量類型在使用時或多或少的都會和這兩種數據變量顯示配合使用。其他變量顯示介紹如下:

  2.1、圖標變量顯示

  圖標隨變量值的變化而變化,可設定變量上下限。圖標需從預先生成的 ICO 圖標庫調用,設置參數及說明如圖十一所示。

圖11 圖標變量顯示參數設置

  描述指針:軟件自帶地址重合判重功能,如果設置的地址與已有地址區域重合,會提示“地址指定沖突”報錯,並將設置的值改回0XFFFF,即表示由配置文件生成,本變量可以將其設置為0XFFFF。

  變量地址:為該變量分配一個儲存地址。

  圖標文件:選擇圖標庫的存儲位置。

  變量上下限及對應的圖標:變量地址中的值分別對應上下限的圖標,即該控件處將根據地址中的值進行圖標變換。

  顯示模式:選擇是否將圖標的背景顯示出來。

  初始值:設置為0。

  演示效果:每個圖標持續顯示的時間。

  2.2、動畫圖標顯示和圖片動畫顯示

  a、動畫圖標顯示

  顯示動畫圖標,設定開始值和停止值,當數據等於開始值時,DGUS 開始重開始圖標到結束圖標循環播放,每副圖標的顯示時間自動分配,動畫圖標參數設置及說明如圖十二所失。

圖12 圖標變量顯示參數設置

  b、圖片動畫顯示

  用於實現圖片自動播放功能,如開機動畫等,設置開始播放的起始圖片和結束圖片,實現(循環)播放,圖片動畫顯示如圖13所示。

圖13 圖片動畫顯示參數設置

  a、b兩種方案均可用於開機動畫顯示的效果展示。兩者之間的區別是圖片動畫不需要生成圖標文件,可以直接以圖片ID作為動畫的起始和終止的標志 。而動畫圖標顯示需要設置某一初始值,而這初始值可以作為一個觸發條件在任何我們需要的時候利用這一條件顯示動畫效果。

  2.3、滑動刻度指示和拖動調節

滑動刻度指示和拖動調節是相互配合使用的,由於本液晶屏沒有觸摸屏,這裡我們設置拖動調節為鍵控的方式,並設置鍵值為1。其本質就是向4F寄存器裡面寫入數值,以命令的方式代替觸控的過程設置參數如圖14所示。

圖14 滑動刻度指示和拖動調節參數設置

   設置時要註意這裡的變量地址要是一樣的,保證操作的是同一數據。由於是在做測試這裡把描述指針設置為瞭0xFFFF,在實際應用中根據實際需要設置。

  2.4、數據變量顯示和增量調節

圖15 數據變量顯示和增量調節參數設置

數據變量顯示和增量調節的配置使用方法和上面的一組是類似的,這裡設置鍵控值為2。需要註意的是:由於數據變量顯示設置瞭一位的小數,而增量調節設置的步長是5,所以每次發送命令之後,數據的值以0.5的大小在變化,如果沒有設置小數位則數值以5的大小在變化。

  2.5、基本觸控

和前面的類似我們設置這些觸控的控件為鍵控的方式,由於其屬性為基本觸控,所以可用在任何需要觸控功能的地方,以實現按鈕效果,或是頁面切換效果。

  註:在使用鍵控命令時要註意當前所在的頁面,4F寄存器在DGUS處理完鍵碼之後會自動清零,所以可以多次對4F寄存器寫值,經測試不同的頁面上可以有相同的鍵碼值,但是一定要註意區分頁面。

  從整個系統的程序來看,就一個菜單頁面的操作來說,大致上分為兩個步驟,第一:實現一個選中的效果(調背景圖片或者是改變字體顏色)。第二:如果確定當前選項是操作者的操作選項,則利用頁面切換功能進行頁面切換(或者其他的實現效果)。對於鍵碼的引入,個人感覺沒有帶來特別大的作用,利用鍵控實現以上所說的功能也得需要兩個步驟,第一步與上面的相同,第二步則由相應的頁面切換命令改為鍵控的命令。基本觸控的參數設置如圖十六所示:

圖16 基本觸控參數設置

  2.6、位變量圖標顯示

  用於通過變量分解成的位變量來進行控制的功能。一個變量可分成 16 位,逆序排列,圖標需從預先生成的 ICO 圖標庫調用,位變量參數設置如圖十七所示:

  輔助地址:輔助變量指針,雙字,用戶軟件不能訪問,設置為0000。

  設置:為1的位就是需要顯示的位,0就是不需要顯示的位。

  移動間隔:在設置中每一個要顯示的位的顯示間隔。

  圖標文件:在DWIN_SET文件夾中將後綴為ICO的圖標文件加入進來,文件必須按照順序排好。在ICONOS,ICONOE,ICON1S,ICON1E中根據顯示模式中的設置選擇好。

圖17 位變量顯示參數設置

  顯示模式:依據下表進行設置。

  移動模式:表示位圖標的排列方式,參照下表進行設置。

  2.7、實時曲線顯示

   實時曲線顯示的配置參數如圖十八所示:

圖18 實時曲線顯示參數設置

  以上參數設置時參考下表中的具體的屬性設置信息

  DGUS液晶屏內部設有專門的類似FIFO性質的曲線數據緩存區,可同時滿足8條曲線的數據緩存。用戶對此空間隻能寫,不能讀。橫軸間隔設置好以後類似於橫軸的坐標軸已經設置好,緩沖區的數據作為縱坐標。曲線形成示意圖如圖十九所示:

圖19 曲線形成示意圖

  2.8、列表顯示

  測試中把列表設置為:5行3列的表格,每個表格可顯示5個字長數據,設置參數如圖二十:

  圖標ID:在該圖標庫中選擇需要顯示圖標的位置

  圖標旋轉中心:設置圖標旋轉的中心,若不進行設置,則默認為配置按鈕的左上角圖標就是圖標旋轉中心。

  各種角度設置:設置起始角度,終止角度以及分別對應的變量值。

  顯示模式:設置為透明。

  初始值:設置為0。

圖20 列表顯示參數設置

  每個格子的地址分佈如下表所示:

0x08000x08050x080A0x080F0x08140x08190x081E0x08230x08280x082D0x08320x08370x083C0x08410x0846

  用82指令往相應地址寫入數據即可。

  比如發送5A A5 05 82 0800 B1B1 會在0x0800,也就是第一個單元格顯示“北”字。

  2.9、圖標旋轉顯示

  本指令主要用於儀表刻度盤的指針指示。旋轉始終假定為“順時針”轉動,即終止旋轉角度必須大於起始旋轉角度。使用時要先在圖標變量裡面設置好選用的指示指針,並且要在液晶的顯示頁面添加合適的表盤,其參數設置如圖二十所示:                              

圖21 圖標旋轉指示參數設置

  2.9、滾動文本顯示

其主要功能是以滾動的方式顯示事先設置好的字體。

圖22 滾動文本顯示參數設置

  2.10、時間變量顯示

  用於實現計時功能,用來和時間變量組合出客戶需要的顯示格式。由本變量設置好時間顯示的格式,再由單片機或者OS配合以實現計時的功能。其編碼字符串中的冒號就是顯示在液晶上面不同時間單位的間隔符,其設置以及屬性信息如圖二十三所示。

圖23 時間變量顯示參數設置

  設置中具體的參數信息參考如下:

  2.11、基本圖形顯示

  在基本圖形設置的區域內,可以通過指令進行各種圖形的繪制:包括置點,連線,矩形,矩形域填充,畫圓等。

  註 :基本圖形顯示先在 14.BIN 中定義一個“繪圖板”功能,而具體的繪圖操作則由*VP 指向的變量存儲器內容決定。通過改變變量存儲器功能來實現不同的繪圖功能。

圖24 基本圖形顯示參數設置

  下面畫圖示范以本液晶即:320*240的屏測試選點是中間位置 矩形坐標左上角(44,56)2C 38 右下角(148,126)94 7E 圓心(160,120)A0 78。

  矩形畫 5a a5 11 82 0300 0003 0001 002C 0038 0094 7E F800

  矩形填充5a a5 11 82 0300 0004 0001 002C 0038 0094 7E F800

  畫一個圓 5a a5 0F 82 0300 0005 0001 A0 78 0040 F800

  畫兩個圓5a a5 17 82 0300 0005 0002 A0 78 0065 F800 A0 78 0022 f800這裡是畫的同心圓。

  註意圓的粗細不能加粗,隻能是畫多個圓半徑直接間隔一點點看著效果增粗。

  填充 5a a5 0d 82 0400 0008 0001 A0 78 F800填充上面的圓心瞭 填充顏色註意是填充底圖的顏色,如果要畫填充圓,要建立兩個基本圖形,第一層基本圖形畫一個,第二層進行填充。