<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è) > 光電顯示 > 設計應用 > 計算機EPP控制CPLD顯示點(diǎn)陣漢字的實(shí)現

計算機EPP控制CPLD顯示點(diǎn)陣漢字的實(shí)現

作者: 時(shí)間:2009-03-04 來(lái)源:網(wǎng)絡(luò ) 收藏

其中,lHzkPosition是庫中的首地址,nSection和nPosition分別是的區碼和位碼。Windows 2000/XP操作系統默認的字符集是Unicode,這是一個(gè)全球一體化的字符集,無(wú)法映射得到漢字的GB2312區位碼。所以,軟件的字符編碼方式必須采用GB2312,在VC++中采用MBCS(Multi-Byte Char System)即可。在此使用一個(gè)CString對象存儲需要的文本,CString可以以字節為單位進(jìn)行操作,一個(gè)漢字(或其它全角字符)對應兩個(gè)字節。如果保證這個(gè)CString里面的字符全部是全角字符,就可以在漢字庫里找到它們的。以字節為單位讀取字符的機內碼。將一個(gè)字符的高字節減去0xA0就得到漢字的區碼;將一個(gè)字符的低字節減去0xA0就得到漢字的位碼。為避免頻繁磁盤(pán)讀寫(xiě),同時(shí)較大程度的集成,可以把HZK16漢字庫放到程序的資源中。確定此資源在內存中的首地址,再加上由區位碼計算得到的字庫的存儲位置,就可以確定在內存中的位置。

在程序中加入兩個(gè)定時(shí)器,分別定時(shí)觸發(fā)漢字滾動(dòng)和數據發(fā)送事件。漢字滾動(dòng)用位操作,建立一個(gè)32字節的字節數組,用來(lái)存儲當前屏上需要的點(diǎn)陣,定時(shí)器觸發(fā)時(shí),根據當前顯示的字符和已經(jīng)移位的次數,讀取待顯示的相應位置,并將讀取出來(lái)的點(diǎn)陣數據移位相加,即可獲得當前屏幕需要顯示的點(diǎn)陣。調整定時(shí)器觸發(fā)的時(shí)間間隔,即可調整漢字滾動(dòng)的速度。

4.2 點(diǎn)陣漢字發(fā)送的原理

以字節為單位讀取待顯示的32字節數組,根據前述協(xié)議,通過(guò)操作并口寄存器將每次讀到的字節數據發(fā)送到,并讀取的返回狀態(tài),不斷地握手、發(fā)送、等待應答,直到以用戶(hù)給定的幀速將點(diǎn)陣數據發(fā)送完畢。幀速的設定是因為發(fā)送定時(shí)器的觸發(fā)時(shí)間較長(cháng),會(huì )產(chǎn)生較嚴重的閃爍現象,因此每次發(fā)送定時(shí)器觸發(fā)時(shí),同一幀數據發(fā)送多次,就可以有效的減少閃爍感。用戶(hù)可以根據使用環(huán)境,隨時(shí)調整幀速以達到最好的顯示效果。

為了避免設備掉電或者其他原因沒(méi)有應答造成的程序死鎖,發(fā)送程序必須包含超時(shí)檢測。在等待應答時(shí),反復讀取并口的狀態(tài)寄存器,以一個(gè)臨時(shí)變量記錄沒(méi)有應答的次數,并和一個(gè)預先設定好的最大應答延遲次數相比較,如果超過(guò)最大延遲次數,則判定CPLD應答超時(shí),停止繼續發(fā)送并提示用戶(hù)。最大延遲次數的設定和CPLD采用的晶振頻率有關(guān),在實(shí)驗中,若采用4Mhz晶振,正常工作狀態(tài)下,無(wú)需循環(huán),可以實(shí)時(shí)檢測到CPLD的應答信號;若采用250Khz晶振,則需要多次檢測才可以檢測到應答信號,此時(shí)若將最大延遲次數設置過(guò)低,將設備判為延遲并重新發(fā)送,極易引起顯示屏的閃爍。

5 結束語(yǔ)

通過(guò)本設計我們可以看到,利用并口的模式結合CPLD設計數字電子系統,可以將大量繁雜工作交給軟件承擔,利用計算機強大的開(kāi)發(fā)環(huán)境來(lái)完成。本文作者創(chuàng )新點(diǎn):提出了一種有助于減小系統設計難度、縮短開(kāi)發(fā)時(shí)間的設計方式,同時(shí)可以得到友好的人機界面和方便的操作。這種設計方法具有一定的通用性,對需要使用CPLD的電子設計,尤其是實(shí)驗教學(xué)具有一定的參考價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(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>