![單片機(jī)原理及應(yīng)用思考題_第1頁(yè)](http://file4.renrendoc.com/view/6cc0c1617287cb81bacf7620f972a1ad/6cc0c1617287cb81bacf7620f972a1ad1.gif)
![單片機(jī)原理及應(yīng)用思考題_第2頁(yè)](http://file4.renrendoc.com/view/6cc0c1617287cb81bacf7620f972a1ad/6cc0c1617287cb81bacf7620f972a1ad2.gif)
![單片機(jī)原理及應(yīng)用思考題_第3頁(yè)](http://file4.renrendoc.com/view/6cc0c1617287cb81bacf7620f972a1ad/6cc0c1617287cb81bacf7620f972a1ad3.gif)
![單片機(jī)原理及應(yīng)用思考題_第4頁(yè)](http://file4.renrendoc.com/view/6cc0c1617287cb81bacf7620f972a1ad/6cc0c1617287cb81bacf7620f972a1ad4.gif)
![單片機(jī)原理及應(yīng)用思考題_第5頁(yè)](http://file4.renrendoc.com/view/6cc0c1617287cb81bacf7620f972a1ad/6cc0c1617287cb81bacf7620f972a1ad5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及應(yīng)用思考題第一頁(yè),共三十五頁(yè),編輯于2023年,星期五1.順序程序設(shè)計(jì)例4.1請(qǐng)用MCS-51匯編指令編寫(xiě)程序,將片內(nèi)RAM104、105單元中的內(nèi)容分別傳送到片外RAM104H、105H單元中。分析:應(yīng)注意片內(nèi)和片外的尋址指令不同第二頁(yè),共三十五頁(yè),編輯于2023年,星期五ORG1000HMOVR0,#68HMOVA,@R0 ;片內(nèi)RAM104單元內(nèi)容送累加器MOVDPTR,#0104HMOVX@DPTR,A ;完成片內(nèi)RAM104單元內(nèi)容送片
;外104H單元中INCR0MOVA,@R0 ;片內(nèi)RAM105單元內(nèi)容送累加器INCDPTRMOVX@DPTR,A ;完成片內(nèi)RAM105單元內(nèi)容送片
;外105H單元中SJMP$ ;等待END ;結(jié)束第三頁(yè),共三十五頁(yè),編輯于2023年,星期五1.簡(jiǎn)單分支程序YN
順序執(zhí)行條件滿足?轉(zhuǎn)向目標(biāo)程序2.分支程序設(shè)計(jì)圖4.1簡(jiǎn)單分支程序轉(zhuǎn)移第四頁(yè),共三十五頁(yè),編輯于2023年,星期五分析:只要將兩數(shù)進(jìn)行比較,用比較的結(jié)果作為分支轉(zhuǎn)移的條件就很容易地找出其中的大數(shù)。
已知片內(nèi)RAMFIRST開(kāi)始的兩個(gè)單元中各存放有一個(gè)8位無(wú)符號(hào)二進(jìn)制數(shù),要求找出其中的大數(shù)并存入片內(nèi)RAM的SECOND單元中。例4.2第五頁(yè),共三十五頁(yè),編輯于2023年,星期五 ORG1000H CLRC MOVR0,#FRIST ;第一個(gè)數(shù)地址送R0中
MOVA,@R0 ;取第一個(gè)數(shù)
INCR0 ;R0指向第二個(gè)數(shù)地址
SUBBA,@R0 ;兩數(shù)比較
JCBIG ;第二個(gè)數(shù)大轉(zhuǎn)BIG DECR0 ;R0指向第一個(gè)數(shù)地址BIG: MOVSECOND,@R0;存大數(shù)
SJMP$;等待
END;結(jié)束參考程序第六頁(yè),共三十五頁(yè),編輯于2023年,星期五2)多路分支程序(散轉(zhuǎn)程序)K=n
K=n-1
K=2
轉(zhuǎn)向分支n-1
轉(zhuǎn)向分支2
轉(zhuǎn)向分支1
轉(zhuǎn)向分支nK=?
K=1
…圖4.2多路分支程序轉(zhuǎn)移第七頁(yè),共三十五頁(yè),編輯于2023年,星期五1)把AJMP或LJMP指令組成一個(gè)分支程序的
轉(zhuǎn)移表,表的首地址放入DPTR中;2)調(diào)整后的出口信息放入累加器A中;3)執(zhí)行JMP@A+DPTR轉(zhuǎn)向?qū)?yīng)的分支程序。
可通過(guò)間接轉(zhuǎn)移指令JMP@A+DPTR和無(wú)條件轉(zhuǎn)移指令中的AJMP或LJMP指令來(lái)實(shí)現(xiàn)多路分支轉(zhuǎn)移:第八頁(yè),共三十五頁(yè),編輯于2023年,星期五例4.3
已知R0中存放有一數(shù)字關(guān)鍵碼,要求根據(jù)碼值的不同,分別轉(zhuǎn)向?qū)?yīng)的碼值程序段去執(zhí)行。即當(dāng)(R0)=K時(shí),便執(zhí)行CODEK程序。第九頁(yè),共三十五頁(yè),編輯于2023年,星期五
ORG1000HMOVDPTR,#TAB ;表首址送DPTRMOVA,R0 ;取數(shù)字關(guān)鍵碼
ADDA,R0 ;每條AJMP指令占用兩個(gè)字
;節(jié),將出口信息乘2JNCLESS ;關(guān)鍵碼小于128轉(zhuǎn)LESSINCDPHLESS:JMP@A+DPTR
TAB:AJMPCODE0 ;關(guān)鍵碼為0,轉(zhuǎn)CODE0執(zhí)行
AJMPCODE1 ;關(guān)鍵碼為1,轉(zhuǎn)CODE1執(zhí)行
……AJMPCODE255 ;關(guān)鍵碼為255,轉(zhuǎn)CODE255
;執(zhí)行
SJMP$ ;等待
END ;結(jié)束參考程序第十頁(yè),共三十五頁(yè),編輯于2023年,星期五
AJMP指令的轉(zhuǎn)移范圍不超出所在的2KB字節(jié)區(qū)間,如各小段程序較長(zhǎng),在2KB字節(jié)內(nèi)無(wú)法全部容納,上面的程序應(yīng)該怎樣修改?思考第十一頁(yè),共三十五頁(yè),編輯于2023年,星期五1)循環(huán)初始化
設(shè)置循環(huán)的初始狀態(tài),位于循環(huán)程序的開(kāi)頭位置2)循環(huán)處理
循環(huán)程序的主體部分,是通過(guò)反復(fù)執(zhí)行來(lái)完成數(shù)據(jù)的具體處理,它位于循環(huán)體內(nèi)。3.循環(huán)程序設(shè)計(jì)循環(huán)程序由4部分組成:第十二頁(yè),共三十五頁(yè),編輯于2023年,星期五3)循環(huán)控制
也在循環(huán)體內(nèi),是用于控制循環(huán)的繼續(xù)與否。4)循環(huán)結(jié)束
通常位于循環(huán)體后,是用來(lái)存放循環(huán)處理的最終結(jié)果及恢復(fù)各寄存器與工作單元的原始值。第十三頁(yè),共三十五頁(yè),編輯于2023年,星期五
設(shè)MCS-51單片機(jī)內(nèi)部RAM從40H開(kāi)始的連續(xù)16個(gè)單元中,每個(gè)單元中分別存放有單字節(jié)的帶符號(hào)數(shù)。要求將其中的正數(shù)存入50H開(kāi)始的連續(xù)單元中,負(fù)數(shù)存入60H開(kāi)始的連續(xù)單元中,并將正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)分別存入70H、71H、72H單元中。例4.4第十四頁(yè),共三十五頁(yè),編輯于2023年,星期五1) 帶符號(hào)數(shù)的最高位為符號(hào)位,可通過(guò) 最高位判斷正負(fù):“0”表示正數(shù),“1” 表示負(fù)數(shù)。2) 程序中需要從40H單元開(kāi)始取源數(shù), 存正數(shù)和負(fù)數(shù),故需要三個(gè)地址指針 來(lái)指向?qū)?yīng)的內(nèi)存單元;設(shè)對(duì)應(yīng)的地 址指針?lè)謩e為R0、R1和R2,由于R2 不能用間接尋址方式,故R2需要同R1 或R0進(jìn)行交換后,才能進(jìn)行負(fù)數(shù)的存 放。
分析第十五頁(yè),共三十五頁(yè),編輯于2023年,星期五圖4.3程序流程圖第十六頁(yè),共三十五頁(yè),編輯于2023年,星期五參考程序:
ORG1000HCLRAMOV70H,A ;存放正數(shù)的個(gè)數(shù)單元清0MOV71H,A ;存放負(fù)數(shù)的個(gè)數(shù)單元清0MOV72H,A ;存放零的個(gè)數(shù)單元清0MOVR3,#10H ;設(shè)循環(huán)計(jì)數(shù)器初值
MOVR0,#40H ;設(shè)源數(shù)地址指針
MOVR1,#50H ;設(shè)正數(shù)地址指針
MOVR2,#60H ;設(shè)負(fù)數(shù)地址指針第十七頁(yè),共三十五頁(yè),編輯于2023年,星期五LOOP:MOVA,@R0 ;取源數(shù)
JZ
ZERO
;源數(shù)為0,轉(zhuǎn)ZER0JNBACC.7,POSI
;源數(shù)為正,轉(zhuǎn)POSI
INC71H ;負(fù)數(shù)個(gè)數(shù)加1MOVR4,A ;暫存原數(shù)
MOVA,R2XCHA,R1 ;R1與R2中的內(nèi)容交換
XCHA,R4MOV@R1,A ;存負(fù)數(shù)
XCHA,R4XCHA,R1 ;R1與R2中的內(nèi)容交換
INCR2 ;調(diào)整負(fù)數(shù)地址指針
SJMP
LOOP1
;轉(zhuǎn)循壞控制第十八頁(yè),共三十五頁(yè),編輯于2023年,星期五POSI:INC70H ;正數(shù)個(gè)數(shù)加1MOV@R1,A ;存正數(shù)
INCR1 ;調(diào)整正數(shù)地址指針
SJMPLOOP1ZERO:INC72H ;零的個(gè)數(shù)加1LOOP1:INCR0 ;調(diào)整源數(shù)地址指針
DJNZR3,LOOP ;未送完,繼續(xù)
SJMP$ ;等待
END ;結(jié)束第十九頁(yè),共三十五頁(yè),編輯于2023年,星期五查表指令有:
MOVCA,@A+DPTRMOVCA,@A+PC
查表就是把事先計(jì)算或測(cè)得的數(shù)據(jù)按照一定的順序編制成表格存放在存儲(chǔ)器中,然后根據(jù)輸入的數(shù)據(jù),從表格中查出所需的結(jié)果。4.查表程序設(shè)計(jì)第二十頁(yè),共三十五頁(yè),編輯于2023年,星期五
片內(nèi)RAM的EGA單元中有一個(gè)大寫(xiě)的英文字母,要求將此字母在英文字母表中的位置送入片內(nèi)的COUNT單元中,如EGA單元中字母為I時(shí),則COUNT單元中需送入數(shù)字9。例4.6第二十一頁(yè),共三十五頁(yè),編輯于2023年,星期五如果將26個(gè)英文字母按照順序編成一個(gè)表,通過(guò)查表法得到一個(gè)字母與EGA單元中的字母比較,若不相等再查,同時(shí)記錄查表的次數(shù)。查完后,將記錄次數(shù)送COUNT單元。分析第二十二頁(yè),共三十五頁(yè),編輯于2023年,星期五參考程序
ORG1000HEGAEQU50HCOUNTEQU60HMOVCOUNT,#00HMOVA,#16 ;調(diào)整地址LOOP:PUSHAMOVCA,@A+PC;查表
CJNZA,EGA,NF ;所查字母與EGA中字母比較
SJMPLAST ;相等轉(zhuǎn)LASTNF:POPAINCA ;調(diào)整地址
INCCOUNT ;記數(shù)值加1SJMPLOOP ;繼續(xù)查L(zhǎng)AST:INCCOUNT ;記數(shù)值加1SJMP$ ;等待ALPT:DB‘A’,‘B’,…,‘Y’,‘Z’END ;結(jié)束第二十三頁(yè),共三十五頁(yè),編輯于2023年,星期五編寫(xiě)子程序時(shí)應(yīng)注意:a.子程序的第一條指令之前必須有標(biāo)號(hào);b.子程序中需要保護(hù)現(xiàn)場(chǎng);c.主程序和子程序之間的參數(shù)傳遞。5.子程序設(shè)計(jì)第二十四頁(yè),共三十五頁(yè),編輯于2023年,星期五
已知片內(nèi)BLOCKB單元開(kāi)始處有一數(shù)據(jù)塊,塊長(zhǎng)在R2中,在此數(shù)據(jù)塊的每個(gè)單元中存放有一個(gè)未組合的BCD碼,要求將每個(gè)BCD碼轉(zhuǎn)換為ASCAII碼,并存放在片內(nèi)BLOCKA開(kāi)始的連續(xù)單元中。例4.8BCD碼轉(zhuǎn)換為ASCAII碼第二十五頁(yè),共三十五頁(yè),編輯于2023年,星期五將一位BCD碼轉(zhuǎn)換為ASCAII碼的子程序:TRANS: MOVA,@R0 ;取BCD碼
ADDA,#30H MOV@R1,A ;送ASCAII碼
INCR0 INCR1 RET ;返回分析:將一位BCD碼轉(zhuǎn)換為相應(yīng)的ASCAII碼只需加上30H即可。第二十六頁(yè),共三十五頁(yè),編輯于2023年,星期五
主程序:
ORG1000HMOVR2,#LMOVR0,#BLOCKB ;設(shè)BCD碼的地址指針
MOVR1,#BLOCKA ;設(shè)ASCAII的地址指針LOOP:ACALLTRANS ;調(diào)用TRANS子程序
DJNZR2,LOOP ;未轉(zhuǎn)換完,繼續(xù)
SJMP$ ;等待
END ;結(jié)束第二十七頁(yè),共三十五頁(yè),編輯于2023年,星期五
設(shè)片內(nèi)40H單元中有一組合的BCD碼,要求將其轉(zhuǎn)換為二進(jìn)制數(shù)存回原處。分析:
1)組合的BCD碼為兩位十進(jìn)制數(shù),需將十位 數(shù)和個(gè)位數(shù)分開(kāi)處理。
2)十位數(shù)轉(zhuǎn)換時(shí)只要累加0AH就能將其轉(zhuǎn)換 為相應(yīng)的二進(jìn)制數(shù),然后再將個(gè)位數(shù)直接 加到轉(zhuǎn)換后的十位數(shù)上就可完成整個(gè)數(shù)的 轉(zhuǎn)換。例4.9BCD碼轉(zhuǎn)換為二進(jìn)制數(shù)第二十八頁(yè),共三十五頁(yè),編輯于2023年,星期五參考程序
ORG1000BCDTOB: MOVA,40H ANLA,#F0H ;取十位數(shù)
SWAPA ;將十位數(shù)換到低4位
JZDONE ;十位數(shù)為0,返回
MOVR3,#00H ;累加和寄存器清0LOOP: DECA
ACALLADD0AH ;調(diào)用加10子程序
JNZLOOP ;未加完繼續(xù)
MOVA,40H ANLA,#0FH ;取個(gè)位數(shù)
ADDA,R3 ;與十位相加
MOV40H,A ;轉(zhuǎn)換完,存結(jié)果DONE: RET
;(書(shū)上此處有錯(cuò))第二十九頁(yè),共三十五頁(yè),編輯于2023年,星期五ADD0AH:PUSHA;保護(hù)現(xiàn)場(chǎng)
MOVA,R3;累加的和送A中
ADDA,#0AHMOVR3,A;加10后送回原處
POPA;恢復(fù)現(xiàn)場(chǎng)
RET;返回
加10子程序:第三十頁(yè),共三十五頁(yè),編輯于2023年,星期五
已知片內(nèi)RAMADR1開(kāi)始的單元依次從低位到高位存放有L個(gè)字節(jié)的無(wú)符號(hào)數(shù),片外RAMADR2開(kāi)始的單元也依次從低位到高位存放有L個(gè)字節(jié)的無(wú)符號(hào)數(shù)。請(qǐng)編一個(gè)加法程序,將他們的和存放在ADR1開(kāi)始的連續(xù)單元中。2)算術(shù)運(yùn)算子程序例4.11多字節(jié)無(wú)符號(hào)數(shù)相加第三十一頁(yè),共三十五頁(yè),編輯于2023年,星期五R0:片內(nèi)RAM地址指針,初值為ADR1DPTR:片外RAM地址指針,初值為ADR2每完成一個(gè)字節(jié)的加法后,R0、DPTR各自加1,調(diào)整為加數(shù)、被加數(shù)下一待加字節(jié)的地址。R2:計(jì)數(shù)器。存放待加的字節(jié)數(shù),每完成一個(gè)字節(jié)的加法后,內(nèi)容減1,當(dāng)R2=0時(shí),程序結(jié)束。第三十二頁(yè),共三十五頁(yè),編輯于2023年,星期五開(kāi)始#ADR1→(R0)#A
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年山西省三晉聯(lián)盟名校高二上學(xué)期期中聯(lián)合考試歷史試卷
- 2025年互聯(lián)網(wǎng)商品交易協(xié)議范本
- 2025年養(yǎng)老護(hù)理雇傭合同標(biāo)準(zhǔn)
- 2025年倉(cāng)儲(chǔ)合同風(fēng)險(xiǎn)控制策略制定
- 2025年倉(cāng)儲(chǔ)物流服務(wù)協(xié)議文本
- 2025年企業(yè)股份制改革協(xié)議合同范本
- 2025年兒童鞋類(lèi)行業(yè)供需合同樣本
- 2025年船底防污漆項(xiàng)目申請(qǐng)報(bào)告
- 2025年事業(yè)單位合同采購(gòu)范例
- 2025年錳氧化物項(xiàng)目提案報(bào)告模范
- 汶川地震波時(shí)程記錄(臥龍3向)
- 即興口語(yǔ)(姜燕)-課件-即興口語(yǔ)第七章PPT-中國(guó)傳媒大學(xué)
- 蛋白質(zhì)分離技術(shù)全PPT課件
- 磷酸鐵鋰電池工商業(yè)儲(chǔ)能項(xiàng)目施工組織設(shè)計(jì)方案
- 艾默生HipulseUPS操作手冊(cè)
- 愛(ài)心樹(shù)(繪本)
- NPI管理流程(精)
- 色卡 對(duì)照表 PANTONE-CMYK
- 深圳水管理體制改革的思考和建議
- 蘇教版六年級(jí)上冊(cè)計(jì)算題練習(xí)大全(經(jīng)典)
- 內(nèi)容講義說(shuō)明案例nxt pop trainning
評(píng)論
0/150
提交評(píng)論