基于PSoC的精簡LED點陣系統(tǒng)設(shè)計方案
數(shù)據(jù)包在傳輸過程中會在每個包的前面加上可設(shè)置好長度的前導(dǎo)碼;接收端為了識別幀的到來,需要前導(dǎo)碼進行幀同步,從而確定收發(fā)系統(tǒng)之間何時發(fā)送和接收數(shù)據(jù)。同步字在前導(dǎo)碼之后,要用設(shè)定好的同步字作為同步模式的標(biāo)志碼。本系統(tǒng)設(shè)定的同步字為2 個字節(jié),同步字內(nèi)容為0x2DD4,接收端在檢測到同步字后才開始接收數(shù)據(jù)。數(shù)據(jù)載荷長度為1 字節(jié),有效數(shù)據(jù)載荷是用戶所發(fā)送的數(shù)據(jù)。CRC 校驗和由內(nèi)置CRC 校檢。Si4432 內(nèi)部集成有調(diào)制/解調(diào)、編碼/解碼等功能,從而前導(dǎo)碼、同步字、數(shù)據(jù)載荷長度和CRC校驗和都通過硬件自動加上去的,用戶只需設(shè)定數(shù)據(jù)包的組成結(jié)構(gòu)和部分結(jié)構(gòu)的具體內(nèi)容如前導(dǎo)碼和同步字就可以。
表2 數(shù)據(jù)包格式
1.3 系統(tǒng)軟件設(shè)計
利用中斷分時處理的原理構(gòu)成系統(tǒng)主程序和中斷服務(wù)程序。其中主程序如圖4,該主程序不斷的判斷相應(yīng)的flag 是否為1 只要flag 等于1 就通過中斷進入相應(yīng)的子程序。中斷子程序(Timer8 Interrupt), 作時間間斷、計數(shù)器標(biāo)志單元為70H、每當(dāng)?t=100ms 到了就是相應(yīng)的flag 置1。
1.4 主機應(yīng)用程序
應(yīng)用程序如圖5 所示是利用Delphi 開發(fā)編制。
Delphi 是Windows 平臺下簡單、易學(xué)、強大、簡便易用和代碼執(zhí)行速度快、高效的可視化開發(fā)環(huán)境(IDE),其具有所見即所得的可視化界面設(shè)計風(fēng)格和面向?qū)ο蟮某绦蛟O(shè)計等特點,已廣泛應(yīng)用于各個領(lǐng)域。
Delphi 提供了良好的界面設(shè)計能力,在PC 串口通信方面也有很強的功能。
圖5 上位機軟件界面之一
1.4.1 取模
顯示漢字必然要用到漢字的點陣字形信息, 也叫做漢字的字模。即漢字字形的數(shù)字化。根據(jù)漢字的顯示清晰度,本應(yīng)用軟件多種字模供用戶選擇。以16×6點陣字模來舉例,每一個字由16 行16 列的點陣組成顯示。即國標(biāo)漢字庫中的每一個字均由256點陣來表示。
我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個顯示屏不僅可顯示漢字, 也可顯示在256 像素范圍內(nèi)的任何圖形。通過建立位圖的方法來取??煞奖泔@示各種特殊字符。
取模方式可分成橫向,縱向取模,供用戶選擇。
1.4.2 Delphi 環(huán)境下串口通信實現(xiàn)方法
本系統(tǒng)選用了MSComm 控件,它通過串行端口傳送和接收數(shù)據(jù)為應(yīng)用程序提供基本的串口通信功能,使得程序員不必花費大量的時間去了解較為復(fù)雜的API 函數(shù)。本系統(tǒng):采用的是發(fā)送二進制數(shù),需要使用Variant變量矩陣,矩陣大小自動調(diào)節(jié)mscomm1.Settings :=‘9600,N,8,1’;//參數(shù)設(shè)置,返回波特率、奇偶校驗、數(shù)據(jù)位、停止位mscomm1.SThreshold:= 0;//一次發(fā)送所有數(shù)據(jù)mscomm1.PortOpen:=true; // 打開端口mscomm1.RThreshold := 16;//設(shè)置接收多少字節(jié)并產(chǎn)生OnComm 事件,捕獲并處理通信中發(fā)生的事件或錯誤。
2 結(jié)論
采用PSoC芯片設(shè)計的多功能精簡尺寸型LED點陣系統(tǒng)的功能很強大,硬件設(shè)計簡單,軟件編程只需要調(diào)用API 函數(shù),并且系統(tǒng)可配置、可靈活多變、無需外加芯片,從而大大提高了其性價比。
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理 溫濕度控制器相關(guān)文章:溫濕度控制器原理
評論