手機(jī)號
未認(rèn)證執(zhí)照
夏 工(先生)
普通會員
夏 工 (先生)
西門子6es7390-1aj30-0aa0軌道
高效工程組態(tài)成就高效自動化
打字顯示要求漢字在顯示屏上按從左到右的順序一個個的出現(xiàn),如同打字的效果。設(shè)計時可采用如下方法:首先將led顯示屏對應(yīng)的顯示緩沖區(qū)全部清零,即 led顯示空白,然后每間隔一個“軟定時器”設(shè)定的動態(tài)顯示時間,顯示緩沖區(qū)依次加入一個漢字點(diǎn)陣數(shù)據(jù)并進(jìn)行掃描顯示,這樣就可達(dá)到打字顯示的效果。
3.2 pc機(jī)控制程序
a.通訊功能的實現(xiàn)
在windows環(huán)境下,實現(xiàn)pc與單片機(jī)的通訊可利用windows的通訊api函數(shù)或者利用vc++(或其它語言)的標(biāo)準(zhǔn)通訊函數(shù)_inp、_outp來實現(xiàn)。但上述兩種方法比較繁瑣,而采用activex控件mscomm32來實現(xiàn)則非常方便。該控件用事件的方式簡化了對串口操作的編程,并可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,還可對串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置。其初始化程序如下:一般情況下,pc要與多個單片機(jī)89c51系統(tǒng)進(jìn)行主從式通訊,為了區(qū)分各單片機(jī)系統(tǒng),可以使89c51采用串口工作方式3,即11位異步接收/發(fā)送方式,該方式的有效數(shù)據(jù)為9位,其中第9位為地址/數(shù)據(jù)信息的標(biāo)志位,其作用是使從機(jī)據(jù)此判斷發(fā)送的數(shù)據(jù)是否為地址,從而實現(xiàn)多機(jī)操作。但現(xiàn)在由于采用的是mscomm控件來實現(xiàn)pc機(jī)和單片機(jī)之間的通訊,這是一種標(biāo)準(zhǔn)的10位串口通信方式,即8位標(biāo)準(zhǔn)數(shù)據(jù)位和該數(shù)據(jù)的起始位、停止位各1位。因此二者格式不相符,故很難利用上述方案。因此可考慮將單片機(jī)串口設(shè)為工作方式1,即改為10位異步接收/發(fā)送方式來解決,其通訊流程如下:
首先發(fā)通信開始標(biāo)志,接著發(fā)送需要操作的單片機(jī)系統(tǒng)地址,然后發(fā)送顯示工作命令字,該命令包括2個字節(jié),前一字節(jié)用于設(shè)定顯示方式和滾動方向,后一字節(jié)則用于設(shè)定顯示速度。再往下是傳送顯示內(nèi)容的點(diǎn)陣數(shù)據(jù),最后對數(shù)據(jù)進(jìn)行校驗。該通訊規(guī)約非常簡便,能夠較好的解決上述問題,從而實現(xiàn)pc機(jī)與多單片機(jī)之間的主從式通訊及對顯示的控制。
需要注意的是,當(dāng)顯示內(nèi)容需要改變時,為了避免在單片機(jī)串行中斷接收數(shù)據(jù)時,顯示屏出現(xiàn)亂碼,應(yīng)使顯示屏?xí)翰伙@示(處于“黑屏”狀態(tài)),直到數(shù)據(jù)接收完全,串行中斷處理結(jié)束時再顯示。
漢字字模的提取非常關(guān)鍵,本文的字模數(shù)據(jù)取自ucdos下的字庫文件hzk16。關(guān)于這方面的介紹較多,文獻(xiàn)[2]給出了較為具體的在vc下提取漢字字模的方案,這里不再贅述。對于特殊字符或圖形點(diǎn)陣數(shù)據(jù)的提取,簡便的方法可以先做一個bmp文件,然后用一些取模軟件(如字模提取v2.1)來獲得。為了顯示方便,點(diǎn)陣數(shù)據(jù)的格式應(yīng)為n×(16×8),不足要求的則應(yīng)以0數(shù)據(jù)補(bǔ)充。 b.動態(tài)效果模擬顯示
為了方便調(diào)節(jié)led的顯示效果,筆者在pc機(jī)的控制界面上設(shè)計了led顯示屏的模擬顯示,它同實際的顯示效果完全一樣。用戶可以設(shè)定顯示的模式,并調(diào)節(jié)顯示速度,然后在界面上對顯示效果進(jìn)行預(yù)覽,同時還可以隨時修改和設(shè)定參數(shù),因而十分方便簡捷。
為此,可先在界面上描繪出虛擬的led顯示屏,由于實際的顯示屏為160×16點(diǎn)陣,故須在界面 上設(shè)定相同的區(qū)域。
實現(xiàn)動態(tài)顯示效果的方法和以上幾種基本類似,這里以滾動顯示為例作一說明。對于需要滾動的文字,可以將其設(shè)置為位圖格式,暫存于內(nèi)存中,然后利用vc 提供的位圖拷貝函數(shù)bitblt將位圖復(fù)制到顯示位置。對于特殊字符或圖形,則可以直接利用bitblt函數(shù)調(diào)用到顯示位置。然后在類cleddlg的 ontimer函數(shù)中調(diào)用該函數(shù),以實現(xiàn)文字的滾動顯示。另外,也可以通過設(shè)定不同的響應(yīng)時間間隔來改變文字的滾動速度。
漢字顯示屏廣泛應(yīng)用與汽車報站器,廣告 屏等。本文介紹一種實用的漢字顯示屏的制作,考慮到電路元件的易購性,沒有使用8*8的點(diǎn)陣發(fā)光管模塊,而是直接使用了256個高量度發(fā)光管,組成了16行16列的發(fā)光點(diǎn)陣。同時為了降低制作難度, 僅作了一個字的輪流顯示,實際使用時可根據(jù)這個原理自行擴(kuò)充顯示的字?jǐn)?shù)。
1漢字顯示的原理:
我們以ucdos中文宋體字庫為例,每一個字由16行16列的點(diǎn)陣組成顯示。即國標(biāo)漢字庫中的每一個字均由256點(diǎn)陣來表示。我們可以把每一個點(diǎn)理解為一個像素 ,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素 范圍內(nèi)的任何圖形。
用8位的at89c51單片機(jī)控制, 由于單片機(jī)的總線為8位,一個字需要拆分為2個部分。
軟件打開后輸入漢字,點(diǎn)“檢取”,十六進(jìn)制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要的豎排數(shù)據(jù)復(fù)制到我們的程序中即可。
我們把行列總線接在單片機(jī)的i0口,然后把上面分析到的掃描代碼送入總線,就可以得到顯示的漢字了。 在這個例子里,由于一共用到16行,16列,如果將其全部接入89c51
單片機(jī), 一共使用32條io口,這樣造成了io資源的耗盡,系統(tǒng)也再無擴(kuò)充的余地。 實際應(yīng)用中我們使用4-16線譯碼器74ls154來完成列方向的顯示。 而行方向16條線則接在
p0口和p2口。
程序清單:
org 00h
loop: mov a,#0ffh ;開機(jī)初始化,清除畫面
mov p0,a ;清除p0口
anl p2,#00 ;清除p2口
mov r2,#200
d100ms: mov r3,#250 ;延時100毫秒
djnz r3,$
djnz r2,d100ms
mov 20h,#00h ;取碼指針的初值
l100: mov r1,#100 ;每個字的停留時間
l16: mov r6,#16 ;每個字16個碼
mov r4,#00h ;掃描指針清零
mov r0,20h ;取碼指針存入r0
l3: mov a,r4 ;掃描指針存入a
mov p1,a ;掃描輸出
inc r4 ;掃描指針加1,掃描下一個
mov a,r0 ; 取碼指針存入a
mov dptr,#table ;取數(shù)據(jù)表的上半部分的代碼
movc a,@a+dptr
mov p0,a ; 輸出到p0
inc r0 ;取碼指針加1,取下一個碼。
mov a,r0
mov dptr,#table ;取數(shù)據(jù)表下半部份的代碼
movc a,@a+dptr
mov p2,a ;輸出到p2口
inc r0
mov r3,#02 ;掃描1毫秒
delay2: mov r5,#248 ;
djnz r5,$
djnz r3,delay2
mov a,#00h ;清除屏幕
mov p0,a
anl p2,#00h
djnz r6,l3 ;一個字16個碼是否完成?
djnz r1,l16 ;每個字的停留時間是否到了?
mov 20h,r0 ;取碼指針存入20h
cjne r0,#0ffh,l100 ;8個字256個碼是否完成?
jmp loop ;反復(fù)循環(huán)
table :
;漢字“倚”的代碼
db 01h,00h,02h,00h,04h,00h,1fh,0ffh
db 0e2h,00h,22h,00h,22h,0fch,26h,88h
db 2ah,88h,0f2h,88h,2ah,0fah,26h,01h
db 63h,0feh,26h,00h,02h,00h,00h,00h
;以下分別輸入天,一,出, 寶,刀,屠,龍,的代碼,略。
聯(lián)系人 | 需求數(shù)量 | 時間 | 描述 |
---|---|---|---|
暫無產(chǎn)品詢價記錄 |
采購商 | 成交單價(元) | 數(shù)量 | 成交時間 |
---|---|---|---|
暫無購買記錄 |
地區(qū):滄州
主營產(chǎn)品:機(jī)床維修,鑄件,工量具地區(qū):廊坊
主營產(chǎn)品:富卓液壓,施羅德液壓,海普洛液壓地區(qū):成都
主營產(chǎn)品:電磁閥,氣缸,過濾器地區(qū):東莞
主營產(chǎn)品:PC,POM,PP