;*****************************************;;實(shí)驗名稱(chēng):兩位數碼管動(dòng)態(tài)顯示0-99實(shí)驗 ;
;作者: 龍誼 ;
;版本: VER 1.0 ;
;說(shuō)明: 采用共陰極數碼管 ;
;修改: 無(wú) ;
;編程語(yǔ)言: 匯編語(yǔ)言 ;
;*****************************************;
本文引用地址:http://dyxdggzs.com/article/201611/320661.htm ORG00H
START: MOVDPTR,#TABLE;把表TABLE的地址存入數據指針
MOVR1,#00H ;計數器清零,顯示從00開(kāi)始
MOVR5,#50 ;設定顯示間隔為1秒
BEGIN: MOVA,R1 ;計數器送累加器
MOVB,#10 ;B=10
DIVAB ;除法運算,除數送A,余數送B
MOVCA,@A+DPTR ;從表中除數所指的地址取碼
MOVP0,A ;碼由P0顯示,即顯示兩位數的十位,段選信號
MOVP2,#0FDH ;位選由P2控制
CALLDELAY ;調延時(shí)子程序
MOVP2,#0FFH ;穩定動(dòng)態(tài)顯示處理,PROTUES仿真必加,實(shí)際電路測試可不用此行
MOVA,B ;將余數送A
MOVCA,@A+DPTR ;從表中余數所指的地址取碼
MOVP0,A ;碼由P0顯示,即顯示兩位數的個(gè)位,段選信號
MOVP2,#0FEH ;位選由P2控制
CALLDELAY ;調延時(shí)子程序
MOVP2,#0FFH ;穩定動(dòng)態(tài)顯示處理,PROTUES仿真必加,實(shí)際電路測試可不用此行
DJNZR5,BEGIN ;顯示時(shí)間=1秒?不等于跳到BEGIN
MOVR5,#50 ;等于重新設定延時(shí)時(shí)間為1秒
INCR1 ;計數器加1
CJNER1,#100,BEGIN;計數器=100?不等于返回BEGIN
JMPSTART ;計數器=100返回開(kāi)始重新計數
DELAY: MOVR6,#20 ;采用12MHZ晶振,延時(shí)時(shí)間為0.01秒
D1: MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
TABLE: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共陰極數碼管0-9的編碼
END
評論