1樓:易爾通網路科技
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; 點陣**表
2樓:匿名使用者
漢字至少16x16點陣。8x8點陣只能顯示極少數筆劃簡單的漢字,其它的就是糊成一片的。
微控制器延遲程式詳解,微控制器延時程式的延時時間怎麼算的?
如果是51,晶振是12m,你的程式可延遲4ms左右。如果一定要用它延遲40ms,那就把晶振換成1m左右的吧!晶振12m時,一條djnz花的時間是2us,mov r5,108h 花的時間是1us ret 花的時間是2us 你算一下它們執行了幾次,把他們花掉的時間加起來,就是延遲時間了。你可以參巧延遲算...
微控制器 按鍵產生中斷 控制顯示 程式
中斷保護現場,是為了你中斷子程式執行完以後能夠返回到你程式中中斷點,即產生中斷的地方,使程式能夠繼續向下執行!如過你說的不用保護現場的話,那麼程式執行完以後就不能夠回到現場,那麼你的程式將不知道要跳轉到那裡去了,也就是飛鳥,呵呵 你說的中斷巢狀,也是一樣的,兩者都要保護現場,不然你也不能夠回到現場,...
微控制器中斷程式怎麼讀啊,什麼是微控制器的中斷
讀懂中斷服務程式很容易的。首先你要搞懂這是什麼中斷,從中斷服務程式第一行可以看出來。void int time void interrupt 1這是中斷名,可以隨便取 這是中斷號,從0 開始往上排,1表示定時器0中斷。分別是 0 外部中斷0 1 定時器0中斷。2 外部中斷1 3 定時器1 4 串列埠中...