分支程序設(shè)計(jì)實(shí)驗(yàn)

上傳人:ch****o 文檔編號(hào):114080337 上傳時(shí)間:2022-06-27 格式:DOC 頁(yè)數(shù):12 大?。?3.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
分支程序設(shè)計(jì)實(shí)驗(yàn)_第1頁(yè)
第1頁(yè) / 共12頁(yè)
分支程序設(shè)計(jì)實(shí)驗(yàn)_第2頁(yè)
第2頁(yè) / 共12頁(yè)
分支程序設(shè)計(jì)實(shí)驗(yàn)_第3頁(yè)
第3頁(yè) / 共12頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《分支程序設(shè)計(jì)實(shí)驗(yàn)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《分支程序設(shè)計(jì)實(shí)驗(yàn)(12頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 《單片機(jī)實(shí)驗(yàn)》報(bào)告 實(shí)驗(yàn)名稱(chēng) 分支程序設(shè)計(jì)實(shí)驗(yàn) 指導(dǎo)教師 劉冬生 專(zhuān)業(yè)班級(jí) 電子1103班 姓名 XXXXXX 學(xué)號(hào) XXXXXXXXXXX 聯(lián)系方式 XXXXXXXXXXX 一、任務(wù)要求 熟練掌握KeilC環(huán)境下匯編語(yǔ)言程序的調(diào)試方法,加深對(duì)匯編語(yǔ)言指令、機(jī)器碼、尋址方式等基本內(nèi)容的理解,掌握分支程序和簡(jiǎn)單程序的

2、設(shè)計(jì)與調(diào)試方法,了解并行IO口的使用 1. 設(shè)有8bits符號(hào)數(shù)X存于外部RAM單元,按以下方式計(jì)算后的結(jié)果Y也存于外部RAM單元,請(qǐng)按要求編寫(xiě)程序。 2. 利用51系列單片機(jī)設(shè)計(jì)一個(gè)24小時(shí)制電子時(shí)鐘,電子時(shí)鐘的時(shí)、分、秒數(shù)值分別通過(guò)P0、P1、P2端口輸出(以壓縮BCD碼的形式)。P3.0為低電平時(shí)開(kāi)始計(jì)時(shí),為高電平時(shí)停止計(jì)時(shí)。 提高部分(選做): a. 實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1口輸出;十位、個(gè)位由P2口輸出。利用P3.7狀態(tài)選擇加、減計(jì)數(shù)方式。 b. 利用P3口低四位狀態(tài)控制開(kāi)始和停止計(jì)數(shù),控制方式自定。 思考題: 1.實(shí)現(xiàn)多分支結(jié)

3、構(gòu)程序的主要方法有哪些?舉例說(shuō)明。 2.在編程上,十進(jìn)制加1計(jì)數(shù)器與十六進(jìn)制加1計(jì)數(shù)器的區(qū)別是什么?怎樣用十進(jìn)制加法指令實(shí)現(xiàn)減1計(jì)數(shù)? 二、設(shè)計(jì)思路 1.分段函數(shù)設(shè)計(jì)? 第一個(gè)任務(wù)相當(dāng)于一個(gè)分段函數(shù)程序,根據(jù)變量X的值所處的區(qū)間進(jìn)行相應(yīng)的計(jì)算。可利用比較轉(zhuǎn)移指令CJNE來(lái)判斷X是否等于臨界值20、40,若不等,再根據(jù)執(zhí)行CJNE指令后的進(jìn)位位CY的值來(lái)判斷X與臨界值的的大小關(guān)系,易知CY=0則X大于臨界值,CY=1則X小于臨界值;如此,再進(jìn)行相應(yīng)的計(jì)算。另外若乘方運(yùn)算結(jié)果大于255,高八位與低八位應(yīng)分開(kāi)存儲(chǔ);本次除法采用右移一位來(lái)處理,未考慮余數(shù)。 2.?24小時(shí)制時(shí)鐘程序? 首先

4、構(gòu)建一個(gè)三重循環(huán)實(shí)現(xiàn)“一秒延時(shí)”,循環(huán)體利用NOP指令(單字節(jié)指令,1μs)經(jīng)多次循環(huán)達(dá)到延時(shí)一秒的效果。再利用已經(jīng)構(gòu)建好的“一秒延時(shí)”部分,設(shè)計(jì)計(jì)時(shí)系統(tǒng):秒(0-59)、分(0-59)、時(shí)(0-23)。需要注意的是,在小時(shí)、分、秒達(dá)到59時(shí),下一次應(yīng)該為零。程序運(yùn)行時(shí)修改P3.0的值可以實(shí)現(xiàn)暫停和繼續(xù)的功能。 三、資源分配 1.分段函數(shù)? ?? ?假設(shè)該8位無(wú)符號(hào)數(shù)的地址2000H分配給它,把片外地址2001H和2002H分配給經(jīng)分段函數(shù)計(jì)算得到的結(jié)果Y。按位取反計(jì)算結(jié)果存于2001H單元,乘方計(jì)算中結(jié)果的高、低八位分開(kāi)存儲(chǔ)于2001H-2002H單元,除法運(yùn)算結(jié)果放在2001H中。

5、寄存器A,B存放在乘除運(yùn)算中所得的中間結(jié)果。? ???? ???2.二十四小時(shí)制時(shí)鐘? ??? 工作寄存器R0、R1、R2分別用于秒、分、時(shí)循環(huán)次數(shù)的計(jì)數(shù),R5-R7用于“一秒延時(shí)”循環(huán)中的循環(huán)次數(shù)設(shè)定。秒、分、時(shí)數(shù)值分別由P2、P1、P0端口輸出。 四、流程圖 1.分段函數(shù) 開(kāi)始 將C置零取出外部數(shù)據(jù) 是否大于20 取反并存儲(chǔ)結(jié)果 是否小于40 平方并存儲(chǔ)結(jié)果 除以2并存儲(chǔ)結(jié)果 結(jié)束 否 否 是 是 ?2.二十四小時(shí)制時(shí)鐘 開(kāi)始 P3.0=1? 等待 端口初始化,輸出端口置0;計(jì)數(shù)R0、R1、R2置1 延時(shí)1秒,P2←R2,R2加

6、1,并轉(zhuǎn)化為十進(jìn)制 R6=60H? R2置1,P2置0,P1←R1 R1加1,并轉(zhuǎn)化為十進(jìn)制 R1=60H? R2、R1置1,P2、P1置0, P0←R0, R0加1,并轉(zhuǎn)化為十進(jìn)制 R0=24H? 是 否 否 否 否 是 是 是 五、源代碼 (含文件頭說(shuō)明、資源使用說(shuō)明、語(yǔ)句行注釋?zhuān)? 1.分段函數(shù)? clr c ; 清零 mov dptr ,#2000h ; 取外部數(shù)據(jù) movx a ,@dptr // mov a ,#1h cjne a,#14h ,cmp20 ; 與20比較大小 qufa

7、n: cpl a ; inc dptr movx @dptr ,a sjmp jieshu cmp20: jc qufan cjne a ,#28h , cmp40 ; 與40比較大小 sq: mov r7, a ; 平方 mov b , r7 mul ab inc dptr movx @dptr ,a mov a, b inc dptr movx @dptr ,a sjmp jieshu cmp40: jnc sq chu2: rr a ; 除以2(右移一

8、位) inc dptr movx @dptr ,a sjmp jieshu jieshu: nop end ?2.二十四小時(shí)制時(shí)鐘 start: mov r0,#01h ; 寄存器初始化 mov r1,#01h mov r2,#01h mov p0 ,#00h ; 端口初始化 mov p1 ,#00h mov p2 ,#00h mov a ,#0 // setb p3.0 ; 設(shè)置、判斷p3.0 clr p3.0 jb p3.0 ,$ onesec: mov r7

9、 , #10 ; 1秒延時(shí) del1: mov r6 ,#200 nop del2: mov r5,#248 del3: djnz r5 ,del3 djnz r6 ,del2 djnz r7 ,del1 mov p2 ,r2 ; 把秒數(shù)送入p2 mov a,r2 add a,#01h da a mov r2 ,a cjne r2 ,#60h ,onesec ; 判斷r2是否計(jì)到60,跳轉(zhuǎn) onemin: mov r2 ,#01h ; 把r2,p2初始化,開(kāi)始分鐘計(jì)數(shù)

10、mov p2 ,#00h mov p1 ,r1 mov a ,r1 add a ,#01h da a mov r1 ,a cjne r1 ,#60h, onesec ; 判斷r1是否計(jì)到60,跳轉(zhuǎn) hour: mov r2 ,#01h ; 把r2,p2,r1,p1初始化,開(kāi)始小時(shí)計(jì)數(shù) mov p2 ,#00h mov r1 ,#01h mov p1 ,#00h mov p0 ,r0 mov a ,r0 add a ,#01h da a mov r0 ,a cjne r0 ,

11、#24h ,onesec ; 判斷r0是否計(jì)到24,跳轉(zhuǎn) sjmp start end 六、程序測(cè)試方法與結(jié)果、軟件性能分析 1.分段函數(shù) X=01H X=1EH X=31H 功能分析:該程序可正常執(zhí)行要求的3項(xiàng)功能 2.二十四小時(shí)制時(shí)鐘 功能分析:該程序運(yùn)行后可按正確的二十四小時(shí)制時(shí)鐘進(jìn)行計(jì)時(shí),程序功能完整可靠。 【思考題】? ●實(shí)現(xiàn)多分支結(jié)構(gòu)程序的主要方法有哪些?舉例說(shuō)明。? 答:一是利用條件轉(zhuǎn)移指令實(shí)現(xiàn),如DJNZ,JNC等等,二是利用分支表來(lái)實(shí)現(xiàn),如分支地址 表、轉(zhuǎn)移指令表、地址偏移量表。?? ●在編程上,十進(jìn)制加1計(jì)數(shù)器與十六進(jìn)制加1計(jì)數(shù)器的區(qū)別是什么?怎樣用十進(jìn)制加法指令實(shí)現(xiàn)減1計(jì)數(shù)? 答:十進(jìn)制加一后需要在計(jì)算結(jié)果的基礎(chǔ)上進(jìn)行修正,運(yùn)用DA指令,而十六進(jìn)制加一指令 所得結(jié)果即為最終結(jié)果,無(wú)需進(jìn)行修正。?? 用十進(jìn)制加法指令實(shí)現(xiàn)減1計(jì)數(shù),可通過(guò)以下代碼實(shí)現(xiàn):?????????? ????????????ADD?A?,?#63H????????????? DA??A?

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!