<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 收費系統中PC機與LED顯示屏的串行通信

收費系統中PC機與LED顯示屏的串行通信

——
作者:郭欣 王長(cháng)清 顧紅 劉國歲 南京理工大學(xué)電子工程技術(shù)研究中心 (南京210094) 時(shí)間:2007-01-26 來(lái)源:《電子工程師》 收藏

近年來(lái)路橋收費管理系統不斷地向自動(dòng)化、智能化的方向發(fā)展,它除了要完成基本的收費功能外,還需要對一些外部設備進(jìn)行管理。這些外部設備是收費站與車(chē)輛司乘人員最直接的交流窗口,它不僅要控制車(chē)輛的放行和禁止,而且還要能夠給出有關(guān)車(chē)輛的車(chē)型、收費金額等提示信息。這些信息的給出是由信號燈、led顯示屏、數碼管顯示器、語(yǔ)音報價(jià)器等外設來(lái)完成的。

本文引用地址:http://dyxdggzs.com/article/20749.htm

在我們所設計的路橋收費管理系統中,道口工作站對這些外部設備的控制是通過(guò)兩者之間的串行通信實(shí)現的。下面我們僅以led顯示屏為例,介紹工作站與外設的串行通信實(shí)現方案以及l(fā)ed顯示字符點(diǎn)陣數據的提取方法。 1道口工作站與led顯示屏的串行通信

為了實(shí)現道口工作站和led顯示屏的串行通信,我們首先在兩者之間定義了一個(gè)通信協(xié)議 。在本協(xié)議中主控器即道口工作站的pc機程序由vb語(yǔ)言編寫(xiě),被控器單片機程序由c51語(yǔ)言編寫(xiě)。該串行通信是在pc機的rs-232串行口和mcs-51系列單片機的uart串行口之間進(jìn)行的。下面首先給出通信協(xié)議的定義。

1.1通信協(xié)議

(1)通信常量的定義

通信常量的定義見(jiàn)表1。

當主控器或被控器發(fā)送命令時(shí),對前幾個(gè)需要發(fā)送的字節作異或處理得到bcc校驗碼 ,并將該校驗碼作為最后一個(gè)字節發(fā)送。接收命令時(shí),接收方對收到的所有字節進(jìn)行異或處理,若為零,則表示數據傳輸無(wú)誤,否則進(jìn)行出錯處理?!?br>
(2)主控器寫(xiě)命令執行方式
主:

(若末收到被控器發(fā)出的ack或收到的bcc校驗出錯,該命令重發(fā)一次,共允許重發(fā)三次)

(若收到被控器發(fā)出的nac或接收的bcc校驗出錯,該命令重發(fā)一次,共允許重發(fā)三次)

(4)錯誤定義

信息傳輸失?。褐骺仄靼l(fā)出一條信息后收到被控器的錯誤應答(包括校驗出錯),計為一次傳輸失敗。

超時(shí):主控器發(fā)出一條信息后,過(guò)0.5s被控器無(wú)回音;被控器發(fā)出一條信息后,過(guò)0.1s主控器無(wú)回音。 超數:一條信息傳輸失敗,重試三次仍失敗。

(5)錯誤處理

當主控器收到被控器的錯誤應答(包括校驗出錯)時(shí),在不超數的情況下,主控器將重新發(fā)送命令。若被控器超時(shí)一次,計為信息傳輸失敗一次。若被控器超數,則丟失本次傳輸所有數據,回到正常工作狀態(tài)。

1.2 通信程序的編寫(xiě)

根據通信協(xié)議,我們使用vb語(yǔ)言在主控器pc機的通信窗體中共編寫(xiě)了三個(gè)函數:通信的初始設置函數、主控器寫(xiě)命令函數、主控器讀命令函數。其中初始設置函數主要完成串口的打開(kāi)與關(guān)閉、通信端口號的設置以及波特率、校驗方式、數據位、停止位的設置等。主控器寫(xiě)命令函數主要完成工作站的pc機向led顯示屏發(fā)送各種需要顯示的問(wèn)候語(yǔ)以及收費金額、余額等信息。主控器讀命令函數主要用于讀取led顯示屏的狀態(tài)信息。

在該通信窗體中,我們使用了一個(gè)active x控件mscomm,該控件通過(guò)串行端口發(fā)送和接收數據,下面是有關(guān)該控件的一些屬性說(shuō)明。

圖1給出了主控器寫(xiě)命令函數的程序流程圖。由圖1可知,在整個(gè)通信過(guò)程中,我們在主控器pc機的程序里設置了三個(gè)出錯檢測點(diǎn):a)檢測被控器·發(fā)出的ack信號以及bcc校驗是否正確;b)檢測被控器的響應是否超時(shí);c)檢測信息傳輸失敗是否連續超過(guò)3次。經(jīng)過(guò)我們的實(shí)踐證明,該串行通信實(shí)現方案較好地保證了信息傳輸的可靠性,運行也非常穩定。

2 led顯示字符點(diǎn)陣數據的提取

一般來(lái)說(shuō),路橋收費管理系統中led顯示屏并不需要顯示整個(gè)字模庫中的字符,而只需顯示某些特定的漢字和數字字符,如各種提示信息、收費金額、固定的問(wèn)候語(yǔ)等。因此為了簡(jiǎn)化led部分的電路規模、降低成本,我們只需提取所需的特定字符的點(diǎn)陣數據。

在我國的漢字字模庫中,每一個(gè)字符,包括漢字、數字、英文字母等都是按照區位碼的順序存儲的,因此提取所需的特定字符的點(diǎn)陣數據可以采用兩種方法,一是首先從區位碼表中查出需要顯示的每一個(gè)字符的區位碼,然后根據這些區位碼采用文件定位的方式從漢字字模庫中提取出點(diǎn)陣數據;另一種方法是對每一個(gè)顯示字符,根據其ascii碼和區位碼的關(guān)系首先獲得該字符的區位碼,然后根據區位碼提取出點(diǎn)陣數據。相對而言第二種方法比較靈活方便 ,而且也節省了設計者的時(shí)間。

下面以16×16點(diǎn)陣漢字字模庫為例,給出vb語(yǔ)言編寫(xiě)的獲得特定字符點(diǎn)陣數據的具體程序

以上介紹了pc機和led顯示屏的串行通信實(shí)現方案以及l(fā)ed顯示字符點(diǎn)陣數據的提取方法,其中本方案中提及的通信協(xié)議也可以應用于pc機和其他外設的串行通信,有效地保證數據傳輸的可靠性。當led并不需要顯示整個(gè)漢字字模庫中的字符時(shí),可以采用本文提供的點(diǎn)陣數據的提取方案,但是在某些情況下,若led需要顯示所有的國標一級漢字字符,則可以直接采用文件定位的方法從第1區開(kāi)始提?。ù藭r(shí)提取的點(diǎn)陣數據包含有英文字母和數字等非漢字字符),也可以從第16區開(kāi)始提取數據(此時(shí)提取的全部是漢字數據)。在實(shí)際應用中,讀者可以根據自己的需要對串行通信協(xié)議以及點(diǎn)陣數據的提取方法進(jìn)行選擇和修改。

led顯示器相關(guān)文章:led顯示器原理




關(guān)鍵詞: 發(fā)光二極管 LED

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>