




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、項(xiàng)目2 燈光閃爍學(xué)習(xí)目標(biāo)及要求1學(xué)用程序方框圖;2重點(diǎn)掌握MOV、LCALL、LJMP、DJNZ、RET等指令(12條);3了解ORG、END偽指令的用法;4初步理解單片機(jī)內(nèi)部結(jié)構(gòu)資源:工作寄存器(R0R7); 5掌握軟件延時(shí)程序的編程方法;(難點(diǎn))6理解機(jī)器周期的相關(guān)概念。示范與模仿 “燈光閃爍”操作任務(wù) 如圖2-5所示:在P1.0端口上接一個(gè)發(fā)光管L1,使L1在不停地一亮一滅;一亮一滅的時(shí)間間隔為0.2秒。圖2-5“燈光閃爍”硬件電路操作步驟實(shí)驗(yàn)箱的使用與Keil軟件的基本使用同前,不在重復(fù)。統(tǒng)板上硬件連線:把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的
2、L1端口上。編寫匯編源程序: ;“燈光閃爍”匯編源程序-dgss.asmORG 00 ;新涉及的偽指令START:SETB P1.0LCALL DELAY ;新涉及的指令CLR P1.0LCALL DELAYLJMP START ;新涉及的指令DELAY:MOV R5,#20;新涉及的指令D1:MOV R6,#20D2:MOV R7,#248DJNZ R7,$ ;新涉及的指令DJNZ R6,D2DJNZ R5,D1RET ;新涉及的指令END ;新涉及的偽指令編譯、連接、調(diào)試與運(yùn)行,并觀察實(shí)際結(jié)果。項(xiàng)目2-2相關(guān)知識(shí)與技能點(diǎn)1、程序中所涉及的新指令(參照“MCS-51匯編指令簡表”)新指令指令
3、格式:LCALL addr16功能:控制轉(zhuǎn)移類指令;是長調(diào)用子程序指令,可表示為addr16PC;字節(jié)數(shù)為3,周期數(shù)為2。說明:addr16為子程序起始地址(又叫入口地址)。PC是單片機(jī)中的一個(gè)16位程序計(jì)數(shù)器,里面存放的是將要執(zhí)行指令的地址,又叫程序指針。LCALL addr16執(zhí)行過程見圖2-6。圖2-6 調(diào)用子程序示意圖該指令為程序存儲(chǔ)器64KB地址范圍內(nèi)的調(diào)用子程序指令,子程序可在64KB地址空間的任一處。堆棧:實(shí)際上就是數(shù)據(jù)存儲(chǔ)器(RAM)里的一塊,只不過存取數(shù)據(jù)時(shí)有個(gè)特點(diǎn),即“先進(jìn)去的數(shù)據(jù)后出來,后進(jìn)去的數(shù)據(jù)先出來”,數(shù)據(jù)是一個(gè)壓著一個(gè)堆起來的。上面的數(shù)據(jù)不取出,下面的數(shù)據(jù)也出不來
4、。類似的指令有:ACALL。指令格式:ACALL addr11功能:控制轉(zhuǎn)移類指令;是短調(diào)用子程序指令,可表示為addr11PC;字節(jié)數(shù)為2,周期數(shù)為2。說明:基本作用同LCALL addr16,只是該指令為2KB地址范圍內(nèi)的調(diào)用子程序指令,子程序入口地址距當(dāng)前PC不得超過2KB地址范圍。注:在使用調(diào)用子程序指令時(shí),如不清楚地址范圍,可以全用LCALL指令,功能是一樣的,地址范圍是最大的,只是多用一個(gè)字節(jié)的程序存儲(chǔ)空間。而在實(shí)際編程時(shí),其子程序的入口地址往往是用一個(gè)標(biāo)號(hào)來實(shí)現(xiàn),如本程序中的DELAY標(biāo)號(hào),而不用管它的具體地址值是多少。指令格式:RET功能:控制轉(zhuǎn)移類指令;是子程序返回指令;字節(jié)
5、數(shù)為1,周期數(shù)為2。說明:每個(gè)子程序必須以RET指令結(jié)束。其作用是從堆棧中自動(dòng)取出斷點(diǎn)的地址值送到PC,從子程序返回到主程序。指令格式:Ljmp addr16功能:控制轉(zhuǎn)移類指令;是一個(gè)長轉(zhuǎn)移指令,可表示為addr16PC;字節(jié)數(shù)為3,周期數(shù)2。說明:該指令被執(zhí)行后,其后的addr16地址值送到PC,然后,程序跳轉(zhuǎn)到addr16處去執(zhí)行。跳轉(zhuǎn)范圍為64KB程序存儲(chǔ)器的全部地址。類似的指令還有:AJMP、SJMP。指令格式:Ajmp addr11功能:控制轉(zhuǎn)移類指令;是一個(gè)短轉(zhuǎn)移指令,可表示為addr11PC;字節(jié)數(shù)為2,周期數(shù)2。說明:功能同LJMP,只是用于2KB地址范圍內(nèi)的轉(zhuǎn)移。指令格式:
6、Sjmp rel功能:控制轉(zhuǎn)移類指令;是一個(gè)無條件相對(duì)轉(zhuǎn)移指令,可表示為PC+relPC;字節(jié)數(shù)為2,周期數(shù)2。說明:rel為相對(duì)當(dāng)前地址的用一個(gè)有符號(hào)字節(jié)數(shù)表示的偏移量,其偏移范圍為-127+127,轉(zhuǎn)移可以向前轉(zhuǎn)移(目的地址小于當(dāng)前地址),也可向后轉(zhuǎn)移(目的地址大于當(dāng)前地址)。注:在使用轉(zhuǎn)移指令時(shí),如不清楚地址范圍,可以全用LJMP指令,功能是一樣的,地址范圍是最大的,只是多占用一個(gè)字節(jié)的程序存儲(chǔ)空間。而在實(shí)際編程時(shí),其目的地址(不論是16位地址,還是11位地址或是rel)往往是用一個(gè)標(biāo)號(hào)來實(shí)現(xiàn),如本程序中的START標(biāo)號(hào),而不用管它的具體地址值是多少。指令格式:Djnz Rn,rel功能
7、:控制轉(zhuǎn)移類指令;是一個(gè)條件轉(zhuǎn)移指令,可表示為Rn-1Rn,Rn0時(shí),則PC+relPC;字節(jié)數(shù)為2,周期數(shù)2。說明:該指令是寄存器自動(dòng)減1不為零轉(zhuǎn)移的指令;Rn為單片機(jī)中的工作寄存器(R0R7)。該指令的作用是先對(duì)Rn中的值自動(dòng)減1,然后判斷Rn中的值是否為零?如果為零,程序則順序往下執(zhí)行;如果不為零,程序則轉(zhuǎn)移到目標(biāo)地址處執(zhí)行。類似的指令有:指令格式:Djnz direct,rel功能:控制轉(zhuǎn)移類指令;是一個(gè)條件轉(zhuǎn)移指令,可表示為(direct)-1(direct),(direct)0時(shí),則PC+relPC;字節(jié)數(shù)為3,周期數(shù)2。說明:direct是一個(gè)8位直接地址,(direct)是表示
8、這個(gè)地址中的字節(jié)內(nèi)容(數(shù)值);該指令的作用是直接尋址單元內(nèi)容減1不為零轉(zhuǎn)移,功能同上一條指令類似。指令格式:MOV Rn,#data功能:數(shù)據(jù)傳送類指令;為立即數(shù)送寄存器指令,其功能可表示為dataRn,字節(jié)數(shù)為2,周期數(shù)為1。說明:該指令是將立即數(shù)data送寄存器Rn。指令中的操作數(shù)我們給出了三種方式:#data(立即數(shù))、direct(直接地址)和Rn(工作寄存器)。與這三種操作數(shù)有關(guān)的MOV指令還有:MOV direct,Rn;MOV Rn,direct;MOV direct2,direct1。分述如下:指令格式:MOV direct,Rn功能:數(shù)據(jù)傳送類指令;為寄存器送直接尋址單元指令
9、,其功能表示為Rn(direct);字節(jié)數(shù)為2,周期數(shù)為2。說明:該指令是將工作寄存器里的數(shù)送直接尋址單元。指令格式:MOV Rn,direct功能:數(shù)據(jù)傳送類指令;為直接尋址單元送寄存器指令,其功能表示為(direct)Rn;字節(jié)數(shù)為2,周期數(shù)為2。說明:該指令是將直接尋址單元里的數(shù)送工作寄存器。指令格式:MOV direct2,direct1功能:數(shù)據(jù)傳送類指令;為直接尋址單元1送直接尋址單元2指令,其功能表示為(direct1)(direct2);字節(jié)數(shù)為3,周期數(shù)為2。說明:該指令是將直接尋址單元1里的數(shù)送直接尋址單元2。注:由于MOV在這些指令中最大只能傳送一個(gè)字節(jié)的數(shù),所以傳送的最
10、大數(shù)不能大于255(十進(jìn)制)。偽指令起始指令:ORG nn功能:為機(jī)器匯編時(shí),指示此語句后面的程序或數(shù)據(jù)塊以nn為起始地址連續(xù)存放在程序存儲(chǔ)器中。說明:nn為起始地址值。如在本程序例中:ORG 00START:SETB P1.0指示START標(biāo)號(hào)的指令地址從程序存儲(chǔ)器的00地址開始連續(xù)存放。匯編結(jié)束指令:END功能:指示源程序段結(jié)束。說明:通常程序都是以END偽指令作結(jié)束指令。如本程序例:. END偽指令不是控制單片機(jī)操作的指令,因此不是可執(zhí)行指令。它只是在機(jī)器自動(dòng)把源程序翻譯成機(jī)器語言時(shí),必須為匯編程序提供輔助信息的一些指令。2、程序的編程思路與解讀程序方框圖:編程時(shí),首先要養(yǎng)成理清編程思路
11、的好習(xí)慣,就是在具體編寫程序前,要根據(jù)任務(wù)的要求,構(gòu)畫出程序的主架構(gòu)及關(guān)系,即程序方框圖(由一些方框、菱形和箭頭線組成)。解讀程序也是這樣。本程序方框圖見圖2-7。圖2-7 “燈光閃爍”程序方框圖程序解讀:整個(gè)程序分為兩大部分:主程序段和延時(shí)子程序段。主程序段:ORG 00 ;偽指令,指示后面的程序段起始地址從00開始START:SETB P1.0 ;P1.0輸出”1”,L1燈滅LCALL DELAY ;調(diào)用標(biāo)號(hào)為DELAY的延時(shí)子程序, 延時(shí)0.2秒CLR P1.0 ;P1.0輸出”0”,L1燈亮LCALL DELAY ;調(diào)用標(biāo)號(hào)為DELAY的延時(shí)子程序, 延時(shí)0.2秒 LJMP START
12、 ;跳轉(zhuǎn)到標(biāo)號(hào)為START處的指令循環(huán)執(zhí)行延時(shí)子程序段:延時(shí)0.2秒DELAY:MOV R5,#20;將十進(jìn)制的立即數(shù)20送到R5工作寄存器D1:MOV R6,#20 ;將十進(jìn)制的立即數(shù)20送到R6工作寄存器D2:MOV R7,#248 ;將十進(jìn)制的立即數(shù)248送到R7工作寄存器DJNZ R7,$ ;R7減1不為零轉(zhuǎn)移到本指令地址(用$表示)DJNZ R6,D2 ;R6減1不為零轉(zhuǎn)移到標(biāo)號(hào)D2處DJNZ R5,D1 ;R5減1不為零轉(zhuǎn)移到標(biāo)號(hào)D1處 RET ;子程序結(jié)束,返回到主程序整個(gè)程序運(yùn)行的結(jié)果,實(shí)現(xiàn)了L1燈不停地亮和滅,其間隔為0.2秒。3、延時(shí)程序的設(shè)計(jì)方法延時(shí)程序是如何設(shè)計(jì)的呢?下
13、面具體介紹其原理:如圖2-5所示的石英晶體為12MHz,因此,1個(gè)時(shí)鐘振蕩周期為1/f=1/12MHz秒=1/(12×106)秒。一個(gè)機(jī)器周期=12個(gè)時(shí)鐘周期=12×1/12M=1/1000000秒=1微秒。則延時(shí)子程序: ;機(jī)器周期數(shù) 所用時(shí)間DELAY: MOV R5,#20 ; 2 2usD1:MOV R6,#20 ; 2 2usD2:MOV R7,#248 ; 2 2us DJNZ R7,$ ; 2 2us 重復(fù)執(zhí)行248次 DJNZ R6,D2 ; 2 2us 重復(fù)執(zhí)行20次 DJNZ R5,D1 ; 2 2us 重復(fù)執(zhí)行20次執(zhí)行完后,所用的時(shí)間為:第4條指令執(zhí)
14、行完所用的時(shí)間為:2×248=496(微秒)=0.496ms;第3條至第5條指令重復(fù)執(zhí)行20次所用時(shí)間為:20×(2+496+2)=10000微秒=10ms;第2條至第6條指令重復(fù)執(zhí)行20次所用時(shí)間為:20×(2+10000+2)=200080(微秒)=200.08ms;再加上第1條指令所用的時(shí)間,因此,上面的延時(shí)程序總時(shí)間為200.082 ms,近似為0.2秒。套用上述編程格式,當(dāng)R7248時(shí),其延時(shí)公式為:t=0.5ms×R6×R5。根據(jù)不同的延時(shí)要求,適當(dāng)調(diào)整R5與R6的值的乘積即可。如本程序要求延時(shí)0.2秒200ms,即0.5ms
15、15;R6×R5=200ms,則R5×R6=400。R5=10,R6=40可以實(shí)現(xiàn);R5=4,R6=100也可以實(shí)現(xiàn)。在實(shí)際延時(shí)編程時(shí),如需要的延時(shí)時(shí)間較大,可增加工作寄存器;如需要的延時(shí)時(shí)間較小,也可減少工作寄存器,靈活應(yīng)用。注:MOV傳送的最大數(shù)不能超過255。4、工作寄存器(R0R7)工作寄存器在內(nèi)部數(shù)據(jù)存儲(chǔ)器中,見MCS-51內(nèi)部RAM存儲(chǔ)器結(jié)構(gòu)及寄存器和RAM地址對(duì)照表。數(shù)據(jù)緩沖區(qū)地址范圍30H7FH 位尋址區(qū)(007F)地址范圍20H2FH工作寄存器區(qū)3(R0R7)地址范圍18H1FH工作寄存器區(qū)2(R0R7)地址范圍10H17H工作寄存器區(qū)1(R0R7)地址范
16、圍08H0FH工作寄存器區(qū)0(R0R7)地址范圍00H07HMCS-51內(nèi)部RAM存儲(chǔ)器結(jié)構(gòu)0區(qū)1區(qū)2區(qū)3區(qū)00HR008HR010HR018HR001HR109HR111HR119HR102HR20AHR212HR21AHR203HR30BHR313HR31BHR304HR40CHR414HR41CHR405HR50DHR515HR51DHR506HR60EHR616HR61EHR607HR70FHR717HR71FHR7寄存器和RAM地址對(duì)照表工作寄存器有四組,每組8個(gè)(R0R7)寄存器??梢杂捎脩敉ㄟ^特殊功能寄存器PSW的D4和D3位來自行定義使用哪個(gè)組。見工作寄存器區(qū)選擇表。PSW.4(RS1)PSW.3(RS0)當(dāng)前工作寄存器(R0R7)000區(qū)011區(qū)102區(qū)113區(qū)工作寄存器區(qū)選擇使用工作寄存器時(shí)應(yīng)注意:初始化或復(fù)位時(shí),自動(dòng)選中0組;寄存器的選組用程序狀態(tài)字PSW的RS1和RS0位決定;一旦選中了一組寄存器,其它三組只能作為數(shù)據(jù)存儲(chǔ)器使用,而
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中物理第3章1電磁感應(yīng)現(xiàn)象學(xué)案新人教版選修1-1
- 2024-2025學(xué)年高中物理第十章熱力學(xué)定律第4節(jié)熱力學(xué)第二定律練習(xí)含解析新人教版選修3-3
- 2024新教材高中化學(xué)第2章第3節(jié)第1課時(shí)認(rèn)識(shí)氧化還原反應(yīng)課時(shí)作業(yè)含解析魯科版必修第一冊(cè)
- 2024-2025學(xué)年高中政治第2單元第3課第1框世界文化的多樣性教案新人教版必修3
- 2024-2025學(xué)年高中數(shù)學(xué)第2講直線與圓的位置關(guān)系第6課時(shí)與圓有關(guān)的比例線段二課后提能訓(xùn)練新人教A版選修4-1
- 2024-2025學(xué)年新教材高中政治課時(shí)作業(yè)1原始社會(huì)的解體和階級(jí)社會(huì)的演進(jìn)含解析
- 2024-2025學(xué)年八年級(jí)物理上冊(cè)第三章物態(tài)變化第4節(jié)升華和凝華作業(yè)設(shè)計(jì)新版新人教版
- 第七章 第6節(jié)geogebra最速降線(微分方程法)GeoGebra物理教學(xué)設(shè)計(jì)制作學(xué)習(xí)與應(yīng)用高級(jí)教程
- 2025年海水養(yǎng)殖產(chǎn)品種苗合作協(xié)議書
- 15《我與地壇(節(jié)選)》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊(cè)
- 研學(xué)旅行概論教學(xué)課件匯總完整版電子教案
- 控股集團(tuán)公司組織架構(gòu)圖.docx
- DB11_T1713-2020 城市綜合管廊工程資料管理規(guī)程
- 最常用2000個(gè)英語單詞_(全部標(biāo)有注釋)字母排序
- 氣管套管滑脫急救知識(shí)分享
- 特種設(shè)備自檢自查表
- 省政府審批單獨(dú)選址項(xiàng)目用地市級(jí)審查報(bào)告文本格式
- 往復(fù)式壓縮機(jī)安裝方案
- 漢字的演變甲骨文PPT課件
- 在銀行大零售業(yè)務(wù)工作會(huì)議上的講話講解學(xué)習(xí)
- 古代傳說中的藝術(shù)形象-
評(píng)論
0/150
提交評(píng)論