RUNLED電子版本_第1頁
RUNLED電子版本_第2頁
RUNLED電子版本_第3頁
RUNLED電子版本_第4頁
RUNLED電子版本_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Good is good, but better carries it.精益求精,善益求善。RUNLED-基本輸出埠實(shí)習(xí)霹靂燈實(shí)習(xí)目的:瞭解MCS-51基本輸出埠的使用瞭解MCS-51組合語言的寫法以MCS-51的輸出埠控制LED實(shí)習(xí)功能:利用8個(gè)LED,作霹靂燈由最左邊第一個(gè)LED先亮再來亮第二個(gè)LED,第三個(gè)LED每次只亮一個(gè)LEDLED亮到最右邊的時(shí)候,重新開始重複上述LED亮的動(dòng)作,永不停止每次轉(zhuǎn)換LED時(shí)間為0.5秒顯示圖型:表LED亮:表LED熄硬體分析:要達(dá)成本實(shí)習(xí)所需的功能,除了MCS-51外,尚須LED的驅(qū)動(dòng)電路,以驅(qū)動(dòng)LED,因此其硬體方塊圖如下:硬體方塊圖:MCS-51L

2、ED電路(含驅(qū)動(dòng)電路)(含:重置(Reset)電路振盪電路)圖4-1.1霹靂燈方塊圖MCS-51電路:MCS-51電路包含了,重置(Reset)電路,OSC振盪電路,這部份如果使用者,使用ICE(模擬器)作實(shí)驗(yàn),亦可不接,因?yàn)镮CE內(nèi)部,己經(jīng)有這些電路,但接了也無妨,可以經(jīng)由一般的ICE功能選項(xiàng)中,選擇要用內(nèi)部振盪器(ICE內(nèi)),或是外部振盪器(自己接的振盪電路),其詳細(xì)電路如下:目前使用內(nèi)部記憶體接VCC若用外部記憶體則接GND振盪電路,若用ICE可以不接重置按鈕,當(dāng)機(jī)時(shí)用RESET電路,利用開機(jī)時(shí)電容的充電時(shí)間,作自動(dòng)重置的工作,若用ICE可以不接圖4-1.2MCS-51CLK和OSC電路

3、LED驅(qū)動(dòng)電路:當(dāng)PORTx.x為L(zhǎng)o時(shí)LED導(dǎo)通會(huì)亮導(dǎo)通時(shí)R為限流電阻,可決定LED的亮度所以適當(dāng)?shù)目刂芇ORTx.x為L(zhǎng)o或Hi即可控制LED是否亮(PORTx.x為8051四個(gè)埠中任一位元皆可)圖4-1.3LED驅(qū)動(dòng)電路注意:一般目前使用的MCS-51大都是CMOS元件,因此輸出時(shí)電流較小,LED可能不太亮,因此建議可在MCS-51和LED之間再加一個(gè)緩衝器(74244)以增加驅(qū)動(dòng)能力,提高LED的亮度如下:可用排阻圖4-1.4以緩衝器(74LS244)驅(qū)動(dòng)LED在本實(shí)習(xí)中,以埠(Port2)來驅(qū)動(dòng)LED,使用者亦可使用其它的I/O埠,但若使用埠(Port0),則注意須在Port0加提昇

4、電阻,否則將無法驅(qū)動(dòng)LED亮。完整電路圖:將上述兩個(gè)電路圖結(jié)合起來,即為本實(shí)習(xí)之完整的電路圖。如下:VCC:20PinGND:10PinVCC:40PinGND:20Pin圖4-1.5霹靂燈完整電路圖實(shí)習(xí)接線:若以本書之ALI_MCS-51實(shí)驗(yàn)板作本實(shí)習(xí),則僅需依下列步驟即可完成本實(shí)習(xí)之硬體電路:JP1開路(使用內(nèi)部記憶體);JP2開路,JP3短路(以JUMP連接,使用12MHz之振盪器);將LED板(ALI_MCS-51_002),以排線或直接插入實(shí)驗(yàn)?zāi)赴?ALI_MCS-51_001)上的PORT2-1上。如圖4-1.6:圖4-1.6實(shí)驗(yàn)?zāi)0逯泳€軟體分析:在本實(shí)習(xí)中,將以三種較常用的方法

5、,介紹如何控制LED的亮或熄,來達(dá)到本實(shí)習(xí)的功能要求,此三種方法分別為:立即定址法、旋轉(zhuǎn)法、查表法,以下分別介紹這三種方法:方法一:立即定址法此種方法是將欲顯示的LED,透過控制埠(本實(shí)習(xí)使用埠2),直接送”Lo”,而對(duì)不顯示的LED則送”Hi”即可。軟體架構(gòu):LED_PORT:REGP2(使用埠2來控制LED)宣告用那一個(gè)埠控制LEDORG0H(8051重置後會(huì)從位址0H,開始執(zhí)行程式)宣告記憶體載入位址(讓CPU能正確的到此位址執(zhí)行程式)宣告段主程式段$1:MOVLED_PORT,#01111111B(使用埠2來控制LED)將第一個(gè)LED控制訊號(hào)送到LED控制埠(P2)ACALLDELAY

6、0.5秒(呼叫時(shí)間延遲副程式)LED要亮0.5秒必須延遲0.5秒時(shí)間CPU執(zhí)行延遲副程式0.5秒後返回主程式執(zhí)行延遲程式延遲時(shí)間0.5秒ACALLRETMOVLED_PORT,#10111111B(使用埠2來控制LED)將第二個(gè)LED控制訊號(hào)送到LED控制埠(P2)SJMP$1(重頭開始循環(huán)顯示)第八個(gè)LED動(dòng)作完畢後應(yīng)跳回步驟一重新顯示END(程式段到此結(jié)束)結(jié)束圖4-1.7以立即定址法製作霹靂燈之軟體架構(gòu)使用指令:MOV(搬移指令):用來將資料送到控制埠;ACALL(副程式呼叫指令):用來呼叫延遲副程式,此副程式控制LED變化時(shí)間;SJMP(短程跳躍指令):用來造成無窮迴圈,使LED燈號(hào)循

7、環(huán)顯示。主程式段流程如下:開始$1:MOVLED_PORT,#01111111BACALLDELAY0.5S$1亮第個(gè)LED延遲0.5秒MOVLED_PORT,#10111111BACALLDELAY0.5S亮第二個(gè)LED延遲0.5秒MOVLED_PORT,#11011111BACALLDELAY0.5S亮第三個(gè)LED延遲0.5秒MOVLED_PORT,#11101111BACALLDELAY0.5S亮第四個(gè)LED延遲0.5秒MOVLED_PORT,#11110111BACALLDELAY0.5S亮第五個(gè)LED延遲0.5秒MOVLED_PORT,#11111011BACALLDELAY0.5S

8、亮第六個(gè)LED延遲0.5秒MOVLED_PORT,#11111101BACALLDELAY0.5S亮第七個(gè)LED延遲0.5秒MOVLED_PORT,#11111110BACALLDELAY0.5S亮第八個(gè)LED延遲0.5秒SJMP$1跳回亮第一個(gè)LED圖4-1.8立即定址法製作霹靂燈之主程式流程圖主程式解析:上述流程圖中,其對(duì)應(yīng)的指令,如:MOVLED_PORT,#11111110B其中:LED_PORT:表示本實(shí)習(xí)控制LED的輸出埠,此埠視實(shí)際硬體電路而定,在本實(shí)習(xí)中,使用埠2,所以在程式的初始位置要加以定義如下:LED_PORTREGP2;表示LEDPORT使用埠2#11111110B:表

9、示使用立即定址法,最低位元(BIT0)為”Lo”,其餘為”Hi”,後面的B表示使用二進(jìn)位表示法。ACALLDELAY0.5;表示呼叫延遲0.5這個(gè)副程式SJMP$1;直接跳回區(qū)域標(biāo)題$1的地方繼續(xù)執(zhí)行另外要注意的是,程式中若有使用標(biāo)題的地方,如$1則在撰寫程式(KEYIN)時(shí),標(biāo)題名稱需在該行第一個(gè)位置的地方,其它指令,則至少要空一個(gè)空格。;副程式解析:本程式應(yīng)使用延遲0.5秒副程式,所以還需寫一個(gè)延遲0.5秒的副程式。延遲0.5秒:最方便的延遲方法即是用迴圈方式延遲,因每一個(gè)指令執(zhí)行,都佔(zhàn)一定的時(shí)間,因此可利用同一個(gè)指令被重複執(zhí)行多次,來.達(dá)到時(shí)間延遲的目的。使用指令:MOV(搬移指令):用

10、來設(shè)定迴圈數(shù)DJNZ(遞減分支指令):用來控制迴圈數(shù)RET(副程式返回):在任何副程式結(jié)尾,皆須使用此一指令在MCS-51中的迴圈指令有DJNZ,其指令格式如下:DIR為一直接定址或暫存器(R0R7)定址REL為一標(biāo)題名稱DJNZDIR,RELDJNZ其動(dòng)作為先將DIR的內(nèi)容減一,減完後會(huì)自動(dòng)檢查是否為,若是執(zhí)行下一行指令,若不等於執(zhí)行REL所指位址上的指令。其流程如下:(DIR)(DIR)-1執(zhí)行REL所指位址上的指令否(DIR)=0?執(zhí)行下一行指令是圖4-1.9指令DJNZ的執(zhí)行流程DJNZ指令每執(zhí)行一次要花費(fèi)二個(gè)機(jī)械週期(24個(gè)Clock)的時(shí)間,相當(dāng)於2us(使用12MHz的Clock

11、),所以只要適當(dāng)?shù)目刂圃撝噶钪蠷EL所指的位址,即可重複執(zhí)行本指令,亦即將REL指到自己。如下指令格式,及流程:$1:DJNZ,$1$1(DIR)(DIR)-1否(DIR)=0?是圖4-1.10以DJNZ產(chǎn)生時(shí)間延遲的方法在上圖中,吾人只要適當(dāng)?shù)脑O(shè)定DIR的內(nèi)容值即可達(dá)到延遲不同時(shí)間的功能,例如使用R0當(dāng)DIR,而要延遲200us,則只要將R0的值設(shè)定為100,即可重複執(zhí)行100次,每次2us所以可以延遲200us。如下:$2:MOVR0,#100(設(shè)定迴圈執(zhí)行100次)$2(R0)100$1(R0)(R0)-1$1:DJNZR0,$1(重複執(zhí)行100次)否(R0)=0?是圖4-1.11產(chǎn)生2

12、00us時(shí)間延遲的方法上述迴圈R0被設(shè)定為100,因此DJNZ這一行指令,將被執(zhí)行100次,每次2us,將可延遲200us,若以同樣方法將上述指令再重複執(zhí)行100次,即可延遲100*200us20ms,也就是在上述的迴圈外面再加一層迴圈。如下:外層執(zhí)行100次延遲100(200+1)us約20ms$3:MOVR1,#100(R1)100$2$2:MOVR0,#100(R0)100$1內(nèi)層執(zhí)行100次共延遲200us(R0)(R0)-1$1:DJNZR0,$1否(R0)=0?是(R1)(R1)-1(R1)=0?DJNZR1,$2圖4-1.12以雙層迴圈產(chǎn)生20ms時(shí)間延遲的方法同理如果要延遲0.

13、5秒,則利用上述方法,將延遲20ms的程式再重複執(zhí)行25次即可,因25*20ms=0.5s,設(shè)使用R2來重複執(zhí)行25次,其流程如下:最外層執(zhí)行25次延遲25(20ms+1us+2us)約0.5秒MOVR2,#25$3:第二層執(zhí)行100次延遲100(200+1)us約20msMOVR1,#100$2:MOVR0,#100最內(nèi)層執(zhí)行100次共延遲200us$1:DJNZR0,$1DJNZR1,$2DJNZR2,$3圖4-1.130.5秒時(shí)間延遲說明所以延遲0.5秒的片段程式即如上所示:如需改變延遲時(shí)間,則修改R0、R1、R2的值即可延遲時(shí)間為Delaytime=R2*(R0*2)+3)*R1+3)

14、us約為R2*R1*R0us而要達(dá)到由左至右循環(huán)的霹靂燈功能的完整程式如下:程式4-1.1以立即定址法撰寫霹靂燈;使用I/O埠宣告;LED_PORT:REGP2;以埠2控制LED(視硬體實(shí)際接法而定);起始位址宣告;因MCS-51經(jīng)重置以後,會(huì)從位址0H的指令開始執(zhí)行,所以要宣告從0開始;ORG0H;告訴編輯程式程式碼0H開始;主程式;使用副程式:延遲0.5秒(DELAY0.5s);$1:MOVLED_PORT,#01111111B;亮左邊第一個(gè)LEDACALLDELAY0.5S;呼叫延遲0.5秒副程式MOVLED_PORT,#10111111B;亮左邊第二個(gè)LEDACALLDELAY0.5S

15、;呼叫延遲0.5秒副程式MOVLED_PORT,#11011111B;亮左邊第三個(gè)LEDACALLDELAY0.5S;呼叫延遲0.5秒副程式MOVLED_PORT,#11101111B;亮左邊第四個(gè)LEDACALLDELAY0.5S;呼叫延遲0.5秒副程式MOVLED_PORT,#11110111B;亮左邊第五個(gè)LEDACALLDELAY0.5S;呼叫延遲0.5秒副程式MOVLED_PORT,#11111011B;亮左邊第六個(gè)LEDACALLDELAY0.5S;呼叫延遲0.5秒副程式MOVLED_PORT,#11111101B;亮左邊第七個(gè)LEDACALLDELAY0.5S;呼叫延遲0.5秒副

16、程式MOVLED_PORT,#11111110B;亮最右邊的LEDACALLDELAY0.5S;呼叫延遲0.5秒副程式SJMP$1;回到步驟重新開始;延遲0.5秒;DELAY0.5S:;延遲0.5秒副程式MOVR2,#25;設(shè)定最外層迴圈25次$3:MOVR1,#100;設(shè)定第二層迴圈100次$2:MOVR0,#100;設(shè)定最內(nèi)層迴圈100次$1:DJNZR0,$1;最內(nèi)層迴圈延遲200usDJNZR1,$2;第二層迴圈延遲20msDJNZR2,$3;最外層迴圈延遲0.5sRET;副程式返回,配ACALL指令;程式結(jié)束;END;告訴編輯程式,結(jié)束編輯;利用此種立即定址法所撰寫之程式,最為簡(jiǎn)單易

17、懂,但程式較無彈性,日後若要修改顯示的燈號(hào),須到程式中,一行一行指令慢慢的修改,所以在本實(shí)習(xí)另介紹兩種寫程式的方法。方法二:旋轉(zhuǎn)法在MCS-51中共有四個(gè)旋轉(zhuǎn)指令供使用者使用,而這四個(gè)旋轉(zhuǎn)指令的運(yùn)算元都是累加器A也就是說使用者僅能在累加器A中完成旋轉(zhuǎn)的動(dòng)作,其四個(gè)指令為:RLA:左旋轉(zhuǎn),將累加器A的各位元往左移一位元累加器A往左旋轉(zhuǎn)A7A6A5A4A3A2A1A0動(dòng)作:累加器A的各位元往左移一位元原第七位元(A7)移到第0位元(A0)RLCA:左旋轉(zhuǎn)含進(jìn)位旗標(biāo)累加器A進(jìn)位旗標(biāo)往左旋轉(zhuǎn)A7A6A5A4A3A2A1A0C動(dòng)作:累加器A的各位元往左移一位元原第七位元(A7)移到進(jìn)位旗標(biāo)(C)原進(jìn)位旗

18、標(biāo)(C)移到第0位元(A0)RRA:右旋轉(zhuǎn),將累加器A的各位元往右移一位元累加器A往右旋轉(zhuǎn)A7A6A5A4A3A2A1A0動(dòng)作:累加器A的各位元往右移一位元原第位元(A0)移到第七位元(A7)RRCA:右旋轉(zhuǎn)含進(jìn)位旗標(biāo)累加器A進(jìn)位旗標(biāo)往右旋轉(zhuǎn)A7A6A5A4A3A2A1A0C動(dòng)作:累加器A的各位元往右移一位元原第位元(A0)移到進(jìn)位旗標(biāo)(C)原進(jìn)位旗標(biāo)(C)移到第七位元(A7)在本實(shí)習(xí)中,可以用右旋轉(zhuǎn)的方式,來達(dá)到LED往右移的目的,其軟體架構(gòu)如下:軟體架構(gòu)LED_PORT:REGP2(使用埠2來控制LED)宣告用那一個(gè)埠控制LEDORG0H(8051重置後會(huì)從位址0H,開始執(zhí)行程式)宣告記憶

19、體載入位址(讓CPU能正確的到此位址執(zhí)行程式)宣告段主程式段MOVA,#01111111B(只有累加器A才可以旋轉(zhuǎn))設(shè)定LED初始圖樣(初始圖樣存在累加器A)(以利旋轉(zhuǎn)指令的操作)$2:MOVLED_PORT,A(LED控制埠為埠2)$2顯示LED(累加器的值放到LED埠)LED要亮0.5秒必須延遲0.5秒時(shí)間ACALLDELAY0.5秒(呼叫時(shí)間延遲副程式)CPU執(zhí)行延遲副程式0.5秒後返回主程式ACALL執(zhí)行延遲程式延遲時(shí)間0.5秒RETRRA(右旋轉(zhuǎn)LED會(huì)往右移一個(gè))將累加器A的值右旋轉(zhuǎn)(LED往右移)SJMP$2(回步驟2繼續(xù)執(zhí)行)跳回步驟2繼續(xù)顯示結(jié)束圖4-1.14以旋轉(zhuǎn)法製作霹靂

20、燈之軟體架構(gòu)由於只有累加器A才可以旋轉(zhuǎn),所以把要顯示的第一個(gè)圖放在累加器A中,以後要顯示時(shí)就將累加器A的值搬到LED埠即可。使用旋轉(zhuǎn)方式完成本程式:優(yōu)點(diǎn):程式流程較為簡(jiǎn)捷修改顯示圖案時(shí),只要修改第一個(gè)原始圖案(LED)即可缺點(diǎn):顯示的圖案較無變化,僅能作移位、旋轉(zhuǎn)的變化程式4-1.2使用旋轉(zhuǎn)法撰寫霹靂燈;使用I/O埠宣告;LED_PORT:REGP2;以埠2控制LED(視硬體實(shí)際接法而定);起始位址宣告;因MCS-51經(jīng)重置以後,會(huì)從位址0H的指令開始執(zhí)行,所以要宣告從開始;ORG0H;告訴編輯程式程式碼0H開始;主程式;使用副程式:延遲0.5秒(DELAY0.5S);MOVA,#011111

21、11B;設(shè)定顯示LED最左邊亮$2:MOVLED_PORT,A;顯示LEDACALLDELAY0.5S;延遲0.5秒RRA;LED往右移一個(gè)位置,右旋轉(zhuǎn)一位元SJMP$2;跳到步驟(繼續(xù)顯示);延遲0.5秒;DELAY0.5S:;延遲0.5秒副程式MOVR2,#25;設(shè)定最外層迴圈25次$3:MOVR1,#100;設(shè)定第二層迴圈100次$2:MOVR0,#100;設(shè)定最內(nèi)層迴圈100次$1:DJNZR0,$1;最內(nèi)層迴圈延遲200usDJNZR1,$2;第二層迴圈延遲20msDJNZR2,$3;最外層迴圈延遲0.5sRET;副程式返回,配ACALL指令;程式結(jié)束;END;告訴編輯程式,結(jié)束編輯

22、;方法三:查表法使用本方法首先必須建立一個(gè)顯示圖表檔(即先把要顯示的資料放入記憶體中),如下:欲顯示的資料以二進(jìn)制方式存入亦可以其它方式存入108H107H11111110B設(shè)顯示圖案從位址100H開始存放本存放位址使用者可自行決定(以O(shè)RG指定)亦可由編輯程式安排106H11111101B105H11111011B104H11110111B103H11101111B102H11011111B101H10111111B100H01111111B圖4-1.15查表法讀取顯示圖表內(nèi)的資料,在MCS-51中讀取表格的方式只有兩種讀取程式記憶體用MOVC(讀取致能為PSEN),亦可讀取內(nèi)部記憶體指令格

23、式:MOVCA,A+DPTR功能:以DPTR+累加器A的值為位址,將該位址的值放入累加器A中。例:(DPTR)=100H,(A)=3,則MOVCA,A+DPTR2DPTR+A=100H+3H=103H累加器A在執(zhí)行前的值1108H107H11111110B403H106H11111101B累加器A在執(zhí)行後的值105H11111011B104H11110111B103H11101111B0EFHDPTR102H11011111B3101H10111111BDPTR目前為100H100H01111111B取出位址103H內(nèi)的,資料放入累加器A圖4-1.16MOVC指令執(zhí)行動(dòng)作說明讀取外部記憶體用M

24、OVX(讀取致能為RD)指令格式:MOVXA,A+DPTR功能:將DPTR所指位址內(nèi)的資料讀到累加器A。例(DPTR)=100HMOVXA,A+DPTR取出DPTR所指位址的資料放入累加器A21累加器A在執(zhí)行前的值108H107H11111110B303H106H11111101B累加器A在執(zhí)行後的值105H11111011B104H11110111B103H11101111B7FHDPTR102H11011111B101H10111111B100H01111111B圖4-1.17MOVX指令執(zhí)行動(dòng)作說明將記憶體內(nèi)的值逐一讀出,放入輸出埠(本實(shí)驗(yàn)使用埠2),便可顯出逐一讀取表格內(nèi)資料埠2110

25、8HLED驅(qū)動(dòng)電路107H11111110B106H11111101B105H11111011B104H11110111B103H11101111B102H11011111B101H10111111B100H01111111B圖4-1.18以查表法控制霹靂燈之說明因?yàn)楸緦?shí)習(xí)使用內(nèi)部記憶體,所以使用MOVC這個(gè)指令,其軟體架構(gòu)如下:使用指令:CLR(清除指令):清除累加器A的值MOVC(搬移指令):將DPTR+A,所指的位址內(nèi)資料,搬到累加器AINC(遞增指令):用來使指標(biāo)指到下一個(gè)顯示的資料位址宣告用那一個(gè)埠控制LED軟體架構(gòu)LED_PORT:REGP2(使用埠2來控制LED)ORG0H(80

26、51重置後會(huì)從位址0H,開始執(zhí)行程式)宣告記憶體載入位址(讓CPU能正確的到此位址執(zhí)行程式)宣告段主程式段LED_TAB:.DB01111111B.DB10111111B.DB11011111B.DB11101111B.DB11110111B.DB11111011B.DB11111101B.DB11111110B共八筆資料$1$1:MOVDPTR,#LED_TABDPTR要指到表格的第一筆資料所在位址MOVR3,#8(共有8種亮法,必須在表格中建八筆資料)設(shè)定LED共有幾種亮法$2:CLRAMOVCA,A+DPTR(讀取表格資料並存在A)清除累加器的值讀取表格資料(使用MOVC須確定累加器A的

27、值)MOVLED_PORT,A(把累加器A的值放入埠2)將讀到的資料送到LED埠(埠2)顯示ACALLDELAY0.5秒(呼叫時(shí)間延遲副程式)LED要亮0.5秒必須延遲0.5秒的時(shí)間執(zhí)行延遲程式延遲時(shí)間0.5秒ACALLCPU執(zhí)行延遲副程式0.5秒後返回主程式RETINCDPTR(指標(biāo)指到下一筆資料)要讀取表格下一筆資料須將指標(biāo)加一DJNZR3,$2SJMP$1(若R3=0,表示八種圖樣,都顯示完了,須重新開始。)(若R30表示表格內(nèi)尚有資料未被讀取,須繼續(xù)讀取並顯示)檢查顯示幾筆資料了(R3)-1看是否為0)否顯示完成是結(jié)束圖4-1.19以查表法製作霹靂燈之軟體架構(gòu)程式4-1.3使用查表法撰

28、寫霹靂燈;使用I/O埠宣告;LED_PORT:REGP2;以埠2控制LED(視硬體實(shí)際接法而定);起始位址宣告;因MCS-51經(jīng)重置以後,會(huì)從位址0H的指令開始執(zhí)行,所以要宣告從開始;ORG0H;告訴編輯程式程式碼0H開始;主程式;使用副程式:延遲0.5秒(DELAY0.5S);$1:MOVDPTR,#LED_TAB;指標(biāo)指到圖表開頭MOVR3,#8;設(shè)定顯示圖樣數(shù)$2:CLRA;將累加器A清除為MOVCA,A+DPTR;讀取指標(biāo)資料MOVLED_PORT,A;顯示所讀取的圖案ACALLDELAY0.5S;延遲0.5秒INCDPTR;指標(biāo)指到下一個(gè)圖案DJNZR3,$2;圖案是否顯示完了,否:跳2SJMP$1;是:跳到(從頭開始);延遲0.5秒;DELAY0.5S:;延遲0.5秒副程式MOVR2,#25;設(shè)定最外層迴圈25次$3:MOVR1,#100;設(shè)定第二層迴圈100次$2:MOVR0,#100;設(shè)定最內(nèi)層迴圈100次$1:DJNZR0,$1;最內(nèi)層迴圈延遲200usDJNZR1,$2;第二層迴圈延遲20msDJNZR2,$3;最外層迴圈延遲0.5sRET;副程式返回,配ACALL指令;顯示圖型宣告;LED_TAB:;表格名稱.DB01111111H;最左的LED亮.DB10111111H;左邊第二個(gè)LED亮.DB11011111H;左邊第三個(gè)LED亮

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論