微控制器如何控制點陣顯示漢字移動速度

2021-03-18 13:53:54 字數 1151 閱讀 7835

1樓:匿名使用者

你的程式在顯示一屏的漢字時,是採用逐行掃描的吧,這和數碼管的顯示的是一樣的道理的,動態掃描顯示的,每顯示一行時,需要有一個延時,有吧。

好了,那顯示完一屏漢字後,就看到一遍吧,要持續看下去,就應該不停地顯示每一屏吧。

如果這樣一直顯示下去,就是靜止的漢字。

估計你現在是顯示一屏了,就移動一行了(上下移動),或一列了(左右移動),是這樣的吧。這要計數顯示幾屏了,如,顯示20屏(即顯示20遍)再移動。

這樣,通過調整顯示幾屏的數量,就可以控制移動的速度啦。

微控制器8*8點陣顯示漢字的程式

2樓:易爾通網路科技

1. *** 0hstart:mov dptr,#data1 ;指向點陣**首址;

clr cdisp?這個應該是clr c(清除標誌位,因為下面要判斷是否移完8位)吧

2. mov r2,#80h ; 80h 使第7 列(最左一列)陰極為低電平(這個感覺也有問題)

3.disp:mov a,#0; 賦初值0,為了下面能從點陣**表中從零開始取**

movc a,@a+dptr ; 取第一列點陣**

mov p2,a ; 將第一列點陣**的值賦給p2口

mov p1,r2 ;使一列陰極為低電平?

call delay ; 呼叫延時

inc dptr ; 指向下一列點陣**

mov a,r2 ; r2的值賦給a

rrc a ; 右移一位,為下一列陰極輸出低電平作準備

mov r2,a ;右移一位後再把值儲存到r2,為了下一次右移

jnc disp ; 8 列未完跳回到disp繼續執行

4.ajmp start 跳轉到start

delay: mov r1,#0 ;//這個有問題,r1不是賦零,不然怎麼延時啊

dely0: djnz r1,dely0 ;延時(直到r1的值變為0)

5.ret 返回(這個子程式執行完了)

6.data1: db 24h,44h,dch,54h,7fh,54h,54h,44h; 點陣**表

3樓:匿名使用者

漢字至少16x16點陣。8x8點陣只能顯示極少數筆劃簡單的漢字,其它的就是糊成一片的。

如何通過程式設計,實現51微控制器控制數碼管顯示0 9這幾個數字

while後加邏輯語句,如果值為true也就是1時就會執行下面的語句,執行完再判斷是不是true,如果是的話繼續執行,然後就迴圈了 如果為false也就是0就會停止 如果不加的話也就是執行一次,執行完後結束,燈就不亮了,按理說應該亮一次,但是執行太快你根本沒來得及看到燈亮就已經結束了 如果加迴圈語句...

在微控制器實驗中,如何控制8255晶片的片選cs埠。萬分感謝高手指教

用到p0口和p2口的第二功能時,p0口輸出低8位地址,p2口輸出高8位地址,這樣在輸出地址的同時把cs拉低選中8255。首先輸出地址,用74ls373把地址鎖存以後,再通過p0口和8255資料進行資料交換!如果還有疑問可以去看看51教材p口的第二功能!我的回答希望對你有點幫助!這兩種方式的區別 在於...

問51微控制器的問題,控制I O的裝置,如何直接賦值

p1 p1 0x0f 0x50 保留低四位不變,高四位清零,再加上0x50,最後賦值給p1 這樣就能讓p1的值變成即保留低四位不變又重新賦值給高四位。首先我不理解你問問題時怎麼會有點囂張。再說一句等於沒說的話 這個問題非常簡單。最後提出一個真心的請求 請選我最佳答案。謝謝。要賦1的話就 p1 p1 ...