功能說(shuō)明:通過(guò)取表的方法,使P1口的指示燈,進(jìn)行單個(gè)指示燈左移運(yùn)動(dòng)。一、硬件電路
本文引用地址:http://www.ex-cimer.com/article/201611/321681.htm
二、程序:
ORG 00H;程序開(kāi)始
*******************************************
START: MOV DPTR,#TABLE;數(shù)據(jù)指針指向表頭地址⑴
********************************************
S1:MOVA,#00H;設(shè)置地址偏移量⑵
*************************************************
MOVCA,@A+DPTR;根據(jù)DPRT到表內(nèi)取顯示碼⑶
******************************************************
CJNEA,#0fe0h,S2;判斷是否是結(jié)束碼
LJMPSTART
********************************************
S2:
MOVP1,A;將取到的顯示碼送P1口顯示
LCALL DELAY
INCDPTR;數(shù)據(jù)指針加1
LJMPS1
****************************************
DELAY:MOVR5,#20;延時(shí)子程序
D1:MOVR6,#20
D2:MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
*********************************************
TABLE:
DB 01H,02H,04H,08H ;顯示碼表
DB 10H,20H,40H,80H,
db 00h,00h,00h,00h
db 00h,00h,00h,00h
db0feh
end
三、理論依據(jù):
1、取表的大要素:
(1)定義表頭指針
MOVDPTR,#TABLE;數(shù)據(jù)指針指向表頭地址⑴
(2)定義偏移量
MOVA,#00H;設(shè)置地址偏移量⑵
(3)取值
MOVCA,@A+DPTR;根據(jù)DPRT到表內(nèi)取顯示碼⑶
2、 制表要領(lǐng):
(1)要有標(biāo)號(hào),以“:”冒號(hào)相隔。
(2)DB開(kāi)頭,DB與數(shù)值之間要有“空格”。
(3)數(shù)值為十進(jìn)制0—255,十六進(jìn)制0—0FFH,二進(jìn)制00000000B—11111111B
(4)數(shù)值以“,”逗號(hào)相隔。
一般要有結(jié)束碼,也可以沒(méi)用。作為結(jié)束碼時(shí),不能與里面的數(shù)值相同。
評(píng)論