LED霹靂燈試驗_第1頁
LED霹靂燈試驗_第2頁
LED霹靂燈試驗_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、4-2 LED霹靂燈實驗4-2-1目的介紹查表指令,並利用查表方式讓八顆 LED達到各式各樣的燈號效果。4-2-2電路圖圖 4-2-1產(chǎn)生其他各種燈號的變化,查表法是最方便的方式,只要事先將所要的燈號變化資料依序存 放於程式記憶體此即所謂建表,再由程式控制在適當?shù)臅r機讀取並由I/O埠送出,就可以讓LED 展現(xiàn)不同的顯示效果。將LED_PORT規(guī)劃爲輸出模式將TBLP指向表格起 始位址呼叫80ms延邊SETC0UNT=6LED_PORT=OOhCOUNT=匚 OUNT-l>TBLP=TBLP+1(KT J依TBLP拒標查表並將値 送至 LED PORT4-2-3流程圖4-2-4程式碼(TR

2、BRD m)#INCLUDEHT66F50.INCMY_DATA.SECTION 'DATA'DEL1DB ?;疋義變數(shù)位址DEL2DB ?;疋義變數(shù)位址DEL3DB ?;疋義變數(shù)位址COUNTDB ?;疋義變數(shù)位址LED_PORTEQUPC;定義LED_POR等於PCLED_PORTCEQUPCC;定義LED_PORT等於PCCMY_CODE.SECTION AT 0 'CODE'ORG00H;記憶體位址由00H開始MOVA,08HMOVCP1C,A;關(guān)閉CP1類比比較器功能CLRLED_PORTC;將LED_POR規(guī)劃為輸出模式MAIN:MOVA,HIGH

3、TAB_PILI;將TBHP指向表格TAB_PIL起始位址MOVTBHP,AMOVA, LOW TAB_PILI;將TBLP指向表格TAB_PIL起始位址MOVTBLP,AMOVA,06MOVCOUNT,A;將 COUNT設(shè)定為6LOOP:TABRDLED_PORT;依TBHP及TBLP旨示之值讀取資料,送至LED PORT®示MOVA,80CALLDELAY;呼叫DELAY®程式INCTBLP;TBLP加1,指向下一筆顯示資料SDZCOUNT;判斷COUNT減 1是否為0JMPLOOPJMPMAINTAB_PILI:;LED顯示資料建表區(qū)DC000000001000000

4、1BDC0000000001000010BDC0000000000100100BDC0000000000011000BDC0000000000100100BDC0000000001000010BDELAYPROC;DELAY®程式MOVDEL1,ADEL_1:MOVA,3MOVDEL2,ADEL_2:MOVA,110MOVDEL3,ADEL_3:SDZDEL3JMPDEL_3SDZDEL2JMPDEL_2SDZDEL1JMPDEL_1RETDELAYENDPEND建表就是將一些固定不變的常數(shù)資料存放在程式記憶體中,當程式運行時再依據(jù)實際需求讀出,常見的應 用:七段顯示器、三角函數(shù)、指

5、數(shù)等,都是可以先將結(jié)果計算好加以存放。 HT66F50 提供兩個查表指令 TABRDm及TABRDLm方便使用者使用;以HT66F50為例,程式記憶體共有 8192個位置OOOOhIFFFh 固需要兩個暫存器組成 13位元做為讀取之位址。當使用TABRDm指令時,是依據(jù) TBHP TBLP暫存器所 指示之位址,將程式記憶體內(nèi)容讀出,並將低八位元存入資料記憶體 m位址中,其餘位元則存入TBLH暫存器。HT66F50將程式記憶體以256個位置為單位,稱為程式頁;假設(shè)使用TABRDLm指令,則是根據(jù)TBLP 所指示之位址將 程式最末頁 的內(nèi)容讀出,並將低八位元存入資料記憶體m位址中,TBHP暫存器的

6、內(nèi)容不會影指令晶片查表資料所在位址1211109876543210TABRD mHT66F50TBHP4:0TBLP7: 0TABRDL m11111TBLP7: 0在程式TAB_PIL後插入ORG OFDh的指令後,已不能完整的呈現(xiàn)原有霹靂燈險式的燈號。主 要原因是建表資料發(fā)生跨頁的狀況,而程式中並未加以處理。通常都習慣把建表資料直接置於程式之後,以增加程式的可讀性,但當程式經(jīng)過屢次修改,可能 會產(chǎn)生跨頁的現(xiàn)象,又少指令的判定,就無法取得正確資料,要特別注意。為防止此問題,建議把資 料存放在程式記憶體的最末頁,用TABRDLmJ指令來讀取資料,程式碼如下。(TABRDL M)#INCLUDE

7、HT66F50.INCMY_DATA.SECTION 'DATA'DEL1DB ?;疋義變數(shù)位址DEL2DB ?;疋義變數(shù)位址DEL3DB ?;疋義變數(shù)位址COUNTDB ?;疋義變數(shù)位址LED_PORTEQUPC;定義 LED_POR為 PCLED_PORTCEQUPCC;定義 LED_PORT為 PCCMY_CODE.SECTION AT0 'CODE'ORG00H;宣告記憶體位址00HMOVA,08HMOVCP1C,A;關(guān)閉CP1類比比較器CLRLED_PORTC;將LED_POR規(guī)劃為輸出模式MAIN:MOVA, LOW TAB_PILI;將TBLP指向

8、表格TAB_PIL起始位址MOVTBLP,AMOVA,06MOVCOUNT,A;將 COUNT設(shè)定為 6LOOP:TABRDLLED_PORT;依TBLP之值讀取資料,並送至 LED PORTMOVA,80CALLDELAY;呼叫DELAY副程式INCTBLP;將TBLP加1,指向下一筆資料SDZCOUNT;判斷COUNT減 1是否等於0,成立就跳至MAIN,JMPLOOP不成立就跳至LOOPJMPMAINMOVDEL1,ADEL_1:MOVA,3MOVDEL2,ADEL_2:MOVA,110MOVDEL3,ADEL_3:SDZDEL3JMPDEL_3SDZDEL2JMPDEL_2SDZDEL

9、1JMPDEL_1RETDELAYENDPORGLASTPAGETAB_PILI:;LED顯示資料建表區(qū)DC0000000010000001BDC0000000001000010BDC0000000000100100BDC0000000000011000BDC0000000000100100BDC0000000001000010BEND程式4-1-1跟4-1-2的差異有兩點:第一是改用TABRDL mJ指令來讀取資料,第二是利用ORG LASTPAGE虛指令將資料擺到程式記憶體的最後一頁,使用 TABRDLm指令不用理會TBHP暫存 器,可使程式更簡潔。不管是TABRDLm或TABRDm,在循

10、序讀取表格資料時,可以直接利用遞增或遞減指令 來更改指標值,可說是相當方便,要注意跨頁現(xiàn)象,如果想要隨機讀取表格內(nèi)的資料,使用上述的指 令就有點慢,所以HT66F50的程式計數(shù)器PCL是可以當成一般暫存器來運算,假設(shè)能好好利用,也可以 做為查表的另一項選擇,尤其在隨機讀取資料時更顯為其成效,請參考如下。(ADDM A,PCL)#INCLUDEHT66F50.INCMY_DATA.SECTION 'DATA'DEL1DB?;疋義變數(shù)位址DEL2DB?;疋義變數(shù)位址DEL3DB?;疋義變數(shù)位址COUNTDB?;疋義變數(shù)位址INDEXDB?;疋義變數(shù)位址LED_PORTEQUPC;定

11、義 LED_POR為 PCLED_PORTCEQUPCC;定義 LED_PORT為 PCCMY CODE.SECTION AT 0 'CODE'ORG00H;宣告記憶體位址為 00HMOVA,08HMOVCP1C,A;關(guān)閉CP1類比比較器功能CLRLED_PORTC;將LED_POR規(guī)劃為輸出模式MAIN:CLRINDEX;將INDEX去除為0MOVA,06MOVCOUNT,A;將 COUNT設(shè)定為 6LOOP:MOVA,INDEXCALLTRANS_PILI;呼叫 TRANS_PILIMOVLED_PORT,AMOVA,80CALLDELAY;呼叫DELAY®程式I

12、NCINDEX;INDEX加 1SDZCOUNT;判斷COUNT減 1是否為0,成立就跳至MAIN,JMPLOOP不成立就跳至 LOOPJMPMAINJDELAYPROC;DELAY®程式MOVDEL1,ADEL_1:MOVA,3MOVDEL2,ADEL_2:MOVA,110MOVDEL3,ADEL_3:SDZDEL3JMPDEL_3SDZDEL2JMPDEL_2SDZDEL1JMPDEL_1RETDELAYENDPTRANS_PILI PROC;LED顯示資料建表區(qū)ADDMA,PCLRETA,10000001BRETA,01000010BRETA,00100100BRETA,00011000BRETA,00100100BRETA,01000010BTRANS_PILI ENDPENDTRANS_PIL副程式

溫馨提示

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

評論

0/150

提交評論