![校內(nèi)大賽單片機(jī)多媒體課件網(wǎng)絡(luò)原理版_第1頁](http://file4.renrendoc.com/view11/M00/17/19/wKhkGWWg9MiAZfRFAADvut4AHxQ391.jpg)
![校內(nèi)大賽單片機(jī)多媒體課件網(wǎng)絡(luò)原理版_第2頁](http://file4.renrendoc.com/view11/M00/17/19/wKhkGWWg9MiAZfRFAADvut4AHxQ3912.jpg)
![校內(nèi)大賽單片機(jī)多媒體課件網(wǎng)絡(luò)原理版_第3頁](http://file4.renrendoc.com/view11/M00/17/19/wKhkGWWg9MiAZfRFAADvut4AHxQ3913.jpg)
![校內(nèi)大賽單片機(jī)多媒體課件網(wǎng)絡(luò)原理版_第4頁](http://file4.renrendoc.com/view11/M00/17/19/wKhkGWWg9MiAZfRFAADvut4AHxQ3914.jpg)
![校內(nèi)大賽單片機(jī)多媒體課件網(wǎng)絡(luò)原理版_第5頁](http://file4.renrendoc.com/view11/M00/17/19/wKhkGWWg9MiAZfRFAADvut4AHxQ3915.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
順序程序是指按順序依次執(zhí)行的程序,順序程序結(jié)構(gòu)雖然比較簡單,但它是構(gòu)成復(fù)雜程序的基礎(chǔ)。一.順序程序注意;這里不能用INC指令,因為INC指令不影響標(biāo)志位。CONT:MOV A,R0 ;讀低8位
CPL A ;取反
ADD A,#1 ;加1
MOV R2,A ;存低8位
MOV A,R1 ;讀高8位
CPL A ;取反
ADDC A,#80H ;加進(jìn)位及符號位
MOVR3,A ;存高8位
RET ;
ORG2000HBCD2:MOVA,R2;取入口數(shù)據(jù)
ANLA,#0F0H;取出十位
SWAPA;高4位低4位
MOVB,#0AH
【例4-3】:將R2中BCD碼數(shù)轉(zhuǎn)為二進(jìn)制數(shù)存進(jìn)R2。方法:將十位取出,乘10,加上個位(設(shè)R2中存放的數(shù)是19)
MULAB;十位乘10(A)=0AH
MOVR3,A;積暫存進(jìn)R3MOVA,R2;再取入口數(shù)據(jù)
ANLA,#0FH;取出個位
ADDA,R3;(A)=12H
MOVR2,A;結(jié)果R2
END;根據(jù)不同條件轉(zhuǎn)向不同的處理程序,這種結(jié)構(gòu)的程序稱為分支程序。80C51指令系統(tǒng)中的條件轉(zhuǎn)移指令、比較轉(zhuǎn)移指令和位轉(zhuǎn)移指令,可以實現(xiàn)分支程序。二.分支程序【例4-4】已知X、Y均為8位二進(jìn)制有符號數(shù),分別存在30H,31H中,試編制能實現(xiàn)下列符號函數(shù)的程序:實現(xiàn)程序如下:【例4-5】將ASCII碼轉(zhuǎn)換為十六進(jìn)制數(shù)。設(shè)ASCII碼放在累加器A中,轉(zhuǎn)換結(jié)果放到B中。
解:0~9的ASCII碼30H~39H為,將ASCII碼減30H(0~9)。A~F的ASCII碼41H~46H為,37H(A~F)就可獲得對應(yīng)的十六進(jìn)制數(shù)。散轉(zhuǎn)程序是一種并行多分支程序。見前面學(xué)過的內(nèi)容:按0、1、2、3發(fā)生三角波、方波、鋸齒波、正弦波。
循環(huán)程序一般包括以下幾個部分: ⑴循環(huán)初值; ⑵循環(huán)體; ⑶循環(huán)修改; ⑷循環(huán)控制; 以上四部分可以有兩種組織形式,其結(jié)構(gòu)如圖4-6所示。三.循環(huán)程序【例4-10】設(shè)Xi均為單字節(jié)數(shù),并按順序存放在以50H為首地址的內(nèi)RAM存儲單元中,數(shù)據(jù)長度(個數(shù))N存在R2中,試編程求和S=X1+X2+‥‥+XN,并將S(雙字節(jié))存放在R3R4中,(設(shè)S<65536)。R0-----放置數(shù)據(jù)的首地址R2----放置數(shù)據(jù)的長度R3----放置數(shù)據(jù)和的低8位R4----放置數(shù)據(jù)和的高8位解:程序如下:
SXN:MOVR2,#N ;置數(shù)據(jù)長度(循環(huán)次數(shù))
MOVR4,#00H;和單元(高8位)清0
MOVR3,#00H;和單元(低8位)清0
MOVR0,#50H;求和數(shù)據(jù)區(qū)首址LOOP:MOVA,R3 ;讀入前次的第8位的和
ADDA,@R0 ;低8位累加
MOVR3,A ;存低8位和
CLRA;ADDCA,R4;高8位加進(jìn)位
MOVR4,A;存高8位和
INCR0;指向下一數(shù)據(jù),循環(huán)修改
DJNZR2,LOOP;判N個數(shù)據(jù)累加完否?循環(huán)控制
RET;退出循環(huán)置循環(huán)初值循環(huán)體【例4.11】設(shè)在內(nèi)RAM40H開始的存儲區(qū)有若干個字符和數(shù),已知最后一個為字符“$”(并且只有惟一一個),試統(tǒng)計這些字符和數(shù)字的個數(shù),統(tǒng)計結(jié)果存人30H單元。
解:程序如下:解:程序如下:【例4-12】內(nèi)部RAM20H單元開始存有8個數(shù),試找出其中最大的數(shù),送入MAX單元。方法:比較和交換操作;①先取第一個數(shù)和第二個數(shù)進(jìn)行比較,且將前一個數(shù)作為基準(zhǔn);
②如果前一個數(shù)大則不作交換,再取下一個數(shù)作比較;
③如果后一個數(shù)大則用較大的數(shù)來代替原來的基準(zhǔn)數(shù),再拿基準(zhǔn)數(shù)和下一個數(shù)進(jìn)行比較;④基準(zhǔn)數(shù)中總是存著最大值?!纠?-13】
假設(shè)在內(nèi)部RAM中,起始地址為40H的10個單元中存放有十個無符號數(shù)。試進(jìn)行升序排序編寫無符號數(shù)排序程序:①冒泡法:從前向后進(jìn)行相鄰數(shù)據(jù)的比較,如數(shù)據(jù)的大小次序與要求的順序不符就將這兩個數(shù)據(jù)進(jìn)行互換否則不互換。②對升序排列:從前到后進(jìn)行一次置換就可以將最大的數(shù)值找到!以次類推--。試用冒泡法升序排列各數(shù):
78,81,18,13,84,83,16第一輪78,18,13,81,83,16,84(7個數(shù)比較6次)第二輪18,13,78,81,16,83,84(7個數(shù)比較5次即可)第三輪13,18,78,16,81,83,84(7個數(shù)比較4次即可)第四輪13,18,16,78,81,83,84(7個數(shù)比較4次即可)N個數(shù)最多需要N-1輪,用標(biāo)志位來標(biāo)識!比較次數(shù)最多為N-1次;R7--作比較次數(shù)計數(shù)器,其初始值為09H,F(xiàn)0--作為互換標(biāo)志位,只要某輪有一次交換該位置一。程序如下:ORG0400HSTART:MOVR0,#40H;起始地址MOVR7,#09H;每輪比較9次CLRF0;清零標(biāo)志位LOOP:MOVA,@R0;取前一個數(shù)MOV2AH,A;暫存前數(shù)INCR0;準(zhǔn)備后一個數(shù)的地址MOV2BH,@R0;暫存后數(shù)CLRC;清零CY
SUBBA,@R0;兩個數(shù)進(jìn)行比較JCNEXT;前數(shù)小,則跳轉(zhuǎn)MOV@R0,2AH;前數(shù)大則將此數(shù)后移DECR0;準(zhǔn)備前數(shù)的地址MOV@R0,2BH;將后數(shù)前移INCR0;恢復(fù)后數(shù)的地址SETBF0;作完交換置標(biāo)志位NEXT:DJNZR7,LOOP;判斷每輪的比較次數(shù)JBF0,START;是否進(jìn)行下一輪END【例4-14】編寫延時10ms子程序,fosc=12MHz。fosc=12MHz,一個機(jī)器周期為1
s。說明:MOVRn指令為1個機(jī)器周期;
DJNZ指令為2個機(jī)器周期;
RET指令為2個機(jī)器周期;DY10ms:MOVR6,#20;置外循環(huán)次數(shù)DLP1:MOVR7,#250;置內(nèi)循環(huán)次數(shù)DLP2:DJNZR7,DLP2;2機(jī)周×250=500機(jī)周
DJNZR6,DLP1;500機(jī)周×20=10000機(jī)周
RET;2個機(jī)器周期{[(2機(jī)周×250)+1+2]×20+1+2}×1
s/機(jī)周=10063
s≈10ms
ORG1000HDELAY:MOVR6,#200;1TmLOOP1:MOVR7,#248;1TmNOP;1TmLOOP2:DJNZR7,LOOP2;2TmDJNZR6,LOOP1;2TmRET;2Tm【例4.15】:軟件循環(huán)延時100mS(晶振12MHz)☆1個機(jī)器周期=1uS100mS=100000uS☆MOVRn#data和NOP是單機(jī)器周期指令☆DJNZRn,rel是雙機(jī)器周期指令☆200=0C8H;
248=0F8H1+1+248x2=498(498+2)x200
ORG1000HDL1S:MOVR7,#10DL1:
MOVR6,#200DL2:
MOVR5,#250
DL3:
DJNZR5,DL3
DJNZR6,DL2
DJNZR7,DL1RET【例4.16】:軟件循環(huán)延時1S(晶振12MHz)☆機(jī)器周期=1uS1S=1000000uS☆MOVRn#data是單機(jī)器周期指令☆DJNZRn,rel是雙機(jī)器周期指令1+250x21+[(1+250x2)+2)]x2001+
[(1+250x2+2)x200+2]x10=
設(shè)80C51單片機(jī)的P1口作為輸出口,經(jīng)驅(qū)動電路74LS240(8反相三態(tài)緩沖/驅(qū)動器)接8只發(fā)光二極管,如圖4-8所示。當(dāng)輸出位為“1”時,發(fā)光二極管點亮,輸出位為“0”時為暗。試編程實現(xiàn):每個燈閃爍點亮10次,再轉(zhuǎn)移到下一個燈閃爍點亮10次,循環(huán)不止?!纠?.17】編制一個循環(huán)閃爍燈的程序。FLASH:MOVA,#01H ;置燈亮初值FSH0:MOVR2,#0AH ;置閃爍次數(shù)FLOP:MOVP1,A ;點亮
LCALLDY1s ;延時1sMOVP1,#00H ;熄滅
LCALLDY1s ;延時1sDJNZR2,FLOP ;閃爍10次
RL A ;左移一位
SJ
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北師大版歷史八年級下冊第5課《工業(yè)化的起步與人民代表大會制度的確立》聽課評課記錄
- 五年級數(shù)學(xué)上冊蘇教版第三單元《小數(shù)的意義和性質(zhì)》聽評課記錄(共8課時;定稿)
- 蘇科版數(shù)學(xué)七年級上冊聽評課記錄《6-2角(第1課時)》
- 青島版數(shù)學(xué)九年級下冊5.6《二次函數(shù)的圖象與一元二次方程》聽評課記錄
- 粵教版地理七年級下冊7.3《南亞》聽課評課記錄1
- 湘教版數(shù)學(xué)七年級上冊1.4《有理數(shù)的加法》聽評課記錄
- 2025年度房地產(chǎn)開發(fā)項目貸款合同模板
- 2025年度潔凈型煤保供配送與能源結(jié)構(gòu)調(diào)整合同
- 用戶心理在UX設(shè)計中的應(yīng)用探討
- 2025年度旅游度假合作分成協(xié)議
- 2024版《安全生產(chǎn)法》考試題庫附答案(共90題)
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》完整全套教學(xué)課件
- 疥瘡病人的護(hù)理
- 2024年江西省中考英語試題含解析
- 公務(wù)員2012年國考《申論》真題卷及答案(地市級)
- 跨學(xué)科實踐活動2 制作模型并展示科學(xué)家探索物質(zhì)組成與結(jié)構(gòu)的歷程(分層作業(yè))-九年級化學(xué)上冊同步高效課堂(人教版2024)(解析版)
- 新員工三級安全教育考試試題參考答案
- 山東省物流工程師職稱考試參考試題及答案(新版)
- 35kV輸變電工程(變電站、輸配電線路建設(shè))技術(shù)方案
- 數(shù)學(xué)史簡介課件可編輯全文
- 化學(xué)廢水水池清理施工方案
評論
0/150
提交評論