版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
9.1.1明確工作任務(wù)用任務(wù)3制作的8位LED跑馬燈電路,通過編寫程序控制與P0口相連的8個LED燈循環(huán)點亮,每個燈點亮的時間為0.5秒。任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
9.1.2跟我想
1.編寫跑馬燈程序思路該任務(wù)要求通過編寫程序,使連接P0口的8個LED燈循環(huán)點亮(跑馬燈),每個燈點亮的時間為0.5秒。怎樣來編寫程序呢?我們用一個寄存器R1存儲用于點亮P0口的LED燈的數(shù)據(jù),R1首先存儲點亮與P0.0相連的LED燈D0(數(shù)據(jù)為:0000001H),可以通過指令MOVP0,R1將與P0.0相連的LED0點亮,然后調(diào)用延時0.5秒的程序,延時時間到后,可以帶進位位左移指令RRA,將R1中的數(shù)據(jù)左移一位(數(shù)據(jù)為:00000010),再送給P0口,點亮與P0.1相連的LED燈D1,依次類推;用寄存器R2存儲LED燈從D0移動到D7的移動次數(shù)為8次,每移一次減1,R2的值為0時,表示第1次循環(huán)結(jié)束,接下來又從點亮D0開始下一個循環(huán),就這樣反復(fù)循環(huán)點亮,達到跑馬燈的效果。在編寫程序之前,讓我們學一學相關(guān)指令的功能和用法。任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
9.1.3跟我學1)減1不為零循環(huán)轉(zhuǎn)移指令DJNZDJNZRn,rel;PC←PC+2,Rn←(Rn)-1,若(Rn)≠0,則PC←PC+relDJNZdirect,rel;PC←PC+2,direct←(direct)-1,若(direct)≠0,則
PC←PC+rel;每執(zhí)行一次循環(huán)轉(zhuǎn)移指令,第一操作數(shù)(Rn或direct中的數(shù))減1,并保存,若減1后結(jié)果不為零,則轉(zhuǎn)移至目的地(標號處);若減1后結(jié)果為零,則程序按順序執(zhí)行下一條指令。
任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
2)移位指令移位指令的功能是對累加器A的內(nèi)容進行循環(huán)移位,除了帶進位標志位CY的移位指令會影響CY外,其它指令都不影響CY、AC、OV等標志位。
RLA;循環(huán)左移指令;
RLCA;帶進位位循環(huán)左移指令;圖6-1RLA指令示意圖圖6-2RLCA指令示意圖任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
RRA;循環(huán)右移指令;RRCA;帶進位位循環(huán)右移指令;
任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
3)堆棧操作指令(1)堆棧的概念堆棧就是按照堆放貨物(先堆下面,先搬上面,即后進先出)的思路,設(shè)計一種按后進先出原則組成的存儲區(qū),稱為堆棧區(qū)。在51單片機中,片內(nèi)RAM都可用做堆棧區(qū)。在使用堆棧前,應(yīng)設(shè)置一個棧底,告訴CPU從那個地址單元開始堆放數(shù)據(jù),如棧底為40H單元,第1個數(shù)(設(shè):#30H)存放在棧底的上一個單元41H中,則第2個數(shù)存放42H單元中,如果有多個數(shù)要堆放在堆棧區(qū)中,以此類推,當用戶取數(shù)時,則先從最頂部開始,即最后存的數(shù)先取出。在51單片機中有一個專門的堆棧指針寄存器SP,用于存放棧頂單元的地址。任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
(2)堆棧的作用堆棧的作用是在子程序調(diào)用與中斷時,用于保存斷點地址及片內(nèi)數(shù)據(jù)單元的內(nèi)容。(3)堆棧的使用方法需要用到堆棧時,首先通過MOVSP,#data指令設(shè)置棧底,如:MOVSP,#60H.
注意:51單片機復(fù)位后,默認的棧底為07H,即SP的默認值為07H。因07H地址在RAM的工作寄存器區(qū),所以用07H作為棧底,不是很合適,使用時必須另設(shè)棧底。在子程序調(diào)用或響應(yīng)中斷后,CPU會直接將斷點地址壓入堆棧區(qū),但是要將某個數(shù)據(jù)保存在堆棧區(qū)就必須用壓棧指令PUSH和出棧指令POP。任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
壓棧指令格式為:PUSHdirect;SP←SP+1
;(SP)←(direct)執(zhí)行時堆棧指針SP先加1,然后將直接地址direct中的數(shù)據(jù)壓至SP所指定的地址單元。如:MOVSP,#50H;設(shè)置棧底為50H單元
MOV30H,#25H;將立即數(shù)25H送30H單元
PUSH30H;將30H中的數(shù)據(jù)25H壓入堆棧區(qū)51H單元出棧指令格式為:POPdirect;(direct)←(SP);SP←SP-1該指令執(zhí)行時先將SP所指單元數(shù)據(jù)彈出至direct所指的地址單元,然后SP減1指向新的棧頂單元地址。4)子程序調(diào)用指令子程序調(diào)用指令的功能調(diào)用子程序,執(zhí)行時先將斷點地址(調(diào)用指令的下一條指令的首地址)壓入堆棧區(qū),然后將子程序的首地址送PC,執(zhí)行子程序。(1)長調(diào)用指令LCALLaddr16;PC←PC+3
;SP←SP+1
;(SP)←PC7-0
;SP←SP+1
;(SP)←PC15-8
;PC←addr16這條指令調(diào)用地址為addr16(在寫程序時都用子程序標號)處的子程序。執(zhí)行時,先將PC+3(因為該指令是3字節(jié)指令)以獲得下一條指令的首地址(斷點地址),并把它壓入SP所指定的堆棧區(qū),然后將子程序標號所在的16位地址送PC指針,使CPU轉(zhuǎn)去執(zhí)行子程序。LCALL中的addr16取值范圍為16位地址,所以子程序可位于程序存儲器64KB空間的任何一處。(2)短調(diào)用指令A(yù)CALLaddr11;;PC←PC+2
;SP←SP+1
;(SP)←PC7-0
;SP←SP+1
;(SP)←PC15-8
;PC10-0←addr10-0
執(zhí)行該指令時,先將PC+2得到下一條指令的16位首地址,并將其壓入堆棧,最后子程序標號所在的子程序入口地址送給PC,CPU轉(zhuǎn)入子程序執(zhí)行。由于短調(diào)用指令中的PC高5位地址不變,所以其轉(zhuǎn)移的范圍為2KB。任務(wù)9用自制的跑馬燈電路實現(xiàn)8只LED循環(huán)點亮
ORG0000HAJMPSTART;轉(zhuǎn)移至標號START ORG0030H;以下程序下載到單片機的ROM時,從ROM的0030地址開始存儲
START:MOVR1,#00000001B;將立即數(shù)01H送R1 MOVR2,#08;將立即數(shù)8送R2,循環(huán)8次(8個燈)LOOP:MOVA,R1;將R1中的數(shù)送A MOVP0,A;將A中的數(shù)送P0口,點亮LED燈
CALLDEL1S;調(diào)用延時子程序,控制亮燈時間
RLA;A中的數(shù)據(jù)左移一位,為下一次亮燈作準備
MOVR1,A;左移后的數(shù)據(jù)存放在R1 DJNZR2,LOOP;循環(huán)了8次嗎?沒有則繼續(xù)
AJMPSTART;完成8次循環(huán),轉(zhuǎn)移至START重新開始
;***************1秒鐘延時子程序***********************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中燃魯西經(jīng)管集團一線崗位招聘筆試真題2024
- 2026年及未來5年市場數(shù)據(jù)中國汽車智能剎車系統(tǒng)(IBS)市場競爭格局及投資戰(zhàn)略規(guī)劃報告
- 2026年及未來5年市場數(shù)據(jù)中國電動密集柜行業(yè)市場供需格局及投資規(guī)劃建議報告
- 2026年及未來5年市場數(shù)據(jù)中國蛋白胨行業(yè)競爭格局分析及投資規(guī)劃研究報告
- 2026年及未來5年市場數(shù)據(jù)中國便攜打印機市場競爭格局及投資戰(zhàn)略規(guī)劃報告
- 2026年及未來5年市場數(shù)據(jù)中國精密注塑行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 2025年博思睿人力招聘(派遣至浙江大學國際聯(lián)合商學院)備考題庫及完整答案詳解一套
- 2025年臨沂公安招錄400人備考題庫及完整答案詳解一套
- 無為市公安局2026年專職人民調(diào)解員招聘28人備考題庫及參考答案詳解1套
- 2025年廈門大學藥學院李良成教授課題組科研助理招聘備考題庫及參考答案詳解一套
- 臨床輸血管理委員會年終的工作總結(jié)
- 國家安全教育高教-第六章堅持以經(jīng)濟安全為基礎(chǔ)
- 足部固定器產(chǎn)品技術(shù)要求2022
- 韋萊韜悅-東方明珠新媒體集團一體化職位職級體系方案-2018
- 電力通道維護及管理方案
- GB/T 23576-2024拋噴丸設(shè)備通用技術(shù)規(guī)范
- 2024至2030年中國低溫瀝青行業(yè)發(fā)展現(xiàn)狀分析及投資戰(zhàn)略規(guī)劃報告
- 道德與法治新人教版八年級上冊道德與法治期末試卷及答案
- 高考政治 《法律與生活》答題術(shù)語
- 山東省信息技術(shù)合格考模擬10套題(帶答案)
- 護理科研計劃書糖尿病
評論
0/150
提交評論