九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

分支程序設(shè)計實驗實驗報告.doc

上傳人:good****022 文檔編號:116541844 上傳時間:2022-07-05 格式:DOC 頁數(shù):19 大?。?70.18KB
收藏 版權(quán)申訴 舉報 下載
分支程序設(shè)計實驗實驗報告.doc_第1頁
第1頁 / 共19頁
分支程序設(shè)計實驗實驗報告.doc_第2頁
第2頁 / 共19頁
分支程序設(shè)計實驗實驗報告.doc_第3頁
第3頁 / 共19頁

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

15 積分

下載資源

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

資源描述:

《分支程序設(shè)計實驗實驗報告.doc》由會員分享,可在線閱讀,更多相關(guān)《分支程序設(shè)計實驗實驗報告.doc(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、實驗二 分支程序設(shè)計實驗實驗報告實驗名稱:分支程序設(shè)計實驗 指導(dǎo)教師 羅志祥 專業(yè)班級 光信1006 姓名 張博 學(xué)號U201013339 聯(lián)系方式 13554098548 一、任務(wù)要求:熟練掌握KeilC環(huán)境下匯編語言程序的調(diào)試方法,加深對匯編語言指令、機器碼、尋址方式等基本內(nèi)容的理解,掌握分支程序和簡單程序的設(shè)計與調(diào)試方法,了解并行IO口的使用。1. 設(shè)有8bits符號數(shù)X存于外部RAM單元,按以下方式計算后的結(jié)果Y也存于外部RAM單元,請按要求編寫程序。2. 利用51系列單片機設(shè)計一個24小時制電子時鐘,電子時鐘的時、分、秒數(shù)值分別通過P0、P1、P2端口輸出(以壓縮BCD碼的形式)。P

2、3.0為低電平時開始計時,為高電平時停止計時。提高部分(選做):a. 實現(xiàn)4位十進制加、減1計數(shù),千位、百位由P1口輸出;十位、個位由P2口輸出。利用P3.7狀態(tài)選擇加、減計數(shù)方式。b. 利用P3口低四位狀態(tài)控制開始和停止計數(shù),控制方式自定。二、設(shè)計思路:1.分支函數(shù)程序設(shè)計:首先將X賦給累加器A,與40比較大小,將大于或等于40的執(zhí)行乘方操作;小于40的再與20做比較,大于20的執(zhí)行取除法操作,小于或等于20的執(zhí)行取反操作。最后將計算結(jié)果Y存于片外的RAM上。2.電子時鐘程序設(shè)計思路:首先用循環(huán)程序的嵌套實現(xiàn)一個1s的延時,同時讓記秒的端口P2同步加一,到60后清零;再讓此循環(huán)執(zhí)行60次實現(xiàn)

3、1min的延時,同時讓P1同步加一,到60后清零;再讓分鐘的循環(huán)執(zhí)行24次,實現(xiàn)1hour的延時,同時讓P0同步加一。至此循環(huán),即可實現(xiàn)24小時的時鐘功能。(注:本計算機的晶振頻率為12MHz)3.4位十進制加、減1計數(shù)程序思路:低位的個位和十位賦給一個寄存器,而將高位即百位千位賦給另外一個寄存器,通過循環(huán)程序使低位數(shù)循環(huán)100次即向高位進位或借位,高位循環(huán)100次后即回歸初始狀態(tài),同時設(shè)計兩個子函數(shù)分別執(zhí)行加一、減一操作。其中,用P3的第7位的狀態(tài)實現(xiàn)對計數(shù)與否的控制。三、資源分配:1.分支函數(shù)程序:A:累加器C:位操作B:做乘方的寄存器DPTR:片外尋址指針2000H、2001H、2002

4、H:片外存儲空間2.電子時鐘程序:A:累加器C:位操作P0、P1、P2:分別電子時鐘的時、分、秒輸出R0、R1、R2:分別時分秒計數(shù)用存儲器R3、R4、R5:完成1s延時的相關(guān)數(shù)據(jù)存儲3.四位十進制加、減1計數(shù)程序:A:累加器C:位操作P0:低位輸出口 P1:高位輸出口 R0:高位寄存器 R1:低位寄存器 R7 R6:分別臨時儲存低位和高位的寄存器四、流程圖:1. 分支函數(shù)程序流程圖2電子時鐘程序流程圖3四進制加、減1計數(shù)程序流程圖各圖形如下:開始取數(shù)比較X與40的大小 大于或等于40比較X與20的大小 小于或等于20 大于20求平均值執(zhí)行取反運算執(zhí)行平方運算 存結(jié)果于Y結(jié)束電子時鐘:開始R0

5、,R1,R2置零P0,P1,P2置零R2-0R1-0 R0-0 空操作延時1秒R0加1,輸出P2R0=60? NO YESR1+1,輸出P1 R1=60? NO YESR2+1,輸出P0R2=24? NO YES清零結(jié)束開始加減計數(shù)器流程圖:P0, P1, P2-0P3.7=0?執(zhí)行1計數(shù)執(zhí)行+1計數(shù) YESR0=0?高兩位R1-1,轉(zhuǎn)換為十進制,輸出P0R0-99R0=0?R1-99低位R01,轉(zhuǎn)換為十進制,輸出P1P0, P1-99P0, P1-0R1-0R0-0低兩位R0+1,轉(zhuǎn)換為十進制,輸出P1R0=99? NO NO YES YES高兩位R1+1,轉(zhuǎn)換為十進制,輸出P0R0=99?

6、 YES YES NO NO清零結(jié)束五、源代碼:1)ORG 0000HMOV A,#50HMOV DPTR,#2000HMOVX DPTR,A ;將數(shù)存入片外RAMMOV DPTR,#2000HMOVX A,DPTR ;從片外RAM中取數(shù)XMOV R7,ACLR CMOV R0,#40H ;對X的值進行比較SUBB A,R0JNC MUTIMOV R1,#20HCLR CMOV A,R1SUBB A,R7JC DIVIMOV A,R7CPL A ;對X進行取反MOV DPTR,#2001HMOVX DPTR,A ;存入片外RAMLJMP STOPDIVI:MOV B,#2H ;除法子程序 MO

7、V A,R7 DIV AB MOV DPTR,#2001H MOVX DPTR,A LJMP STOPMUTI:MOV A,R7 ;平方子程序 MOV B,A MUL AB MOV DPTR,#2001H ;低位存入片外RAM中2001H MOVX DPTR,A INC DPTR MOV A,B MOVX DPTR,A ;高位存入片外RAM中2002HSTOP:SJMP $ END2)ORG 0000H MOV R0,#0;R0,R1,R2置0MOV R1,#0MOV R2,#0MOV P0,#0;P0,P1,P2置0MOV P1,#0MOV P2,#0 INPUT:JNB P3.0,STEP

8、 START: ACALL DELAY INC R0;秒鐘計數(shù) MOV A,R0 ACALL OUTPUT;轉(zhuǎn)化為bcd碼 MOV P2, A CJNE R0,#60,START;60進制判斷進1 MOV R0,#0; MOV P2,#0; INC R1;分鐘計數(shù) MOV A,R1 ACALL OUTPUT;轉(zhuǎn)化為bcd碼 MOV P1,A CJNE R1,#60,START;60進制判斷 MOV R1,#0; MOV P1,#0; INC R2;時鐘計數(shù) MOV A,R2; ACALL OUTPUT;計算bcd碼 MOV P0,A CJNE R2,#24,START;判斷是不是溢出了 MOV

9、 R2,#0;溢出清0 MOV P0,#0;輸出清0 SJMP INPUT;跳出循環(huán) DELAY:MOV R3,#19H;循環(huán)次數(shù)LOOP:MOV R4,#28HLOOP1:MOV R5,#0FAH;循環(huán)次數(shù)LOOP2:NOP NOP DJNZ R5,LOOP2 DJNZ R4,LOOP1 DJNZ R3,LOOP SJMP START RET OUTPUT:MOV B,#0AH; DIV AB SWAP A ORL A,B RET DONE:SJMP $STEP:SJMP STEP END3)ORG 0000HMOV P0,#0HMOV P1,#0HMOV P2,#0HJUDGE:CLR C

10、 MOV C,P3.7 JNC ADDDONESUBDDONE:MOV P0,#99H MOV P1,#99H MOV R0,#63H ;千,百位 MOV R1,#63H ;十,個位START: MOV A,R1 ACALL DELAY DEC A MOV R7,A ACALL OUTPUT MOV P1,A MOV B,R7 MOV R1,B CJNE A,#0H,START;低位循環(huán) MOV A,#63H MOV R7,A ACALL OUTPUT MOV P1,A MOV B,R7 MOV R1,B MOV A,R0 MOV R7,A DEC A ACALL OUTPUT MOV P0,

11、A MOV B,R7 MOV R0,B CJNE A,#0H,START ;高位循環(huán) SJMP $;原地踏步ADDDONE:MOV P0,#00H MOV P1,#00H MOV R0,#00H ;千,百位 MOV R1,#00H ;十,個位MOV R0,#0HSTART1: MOV A,R1 ACALL DELAY INC A MOV R7,A ACALL OUTPUT MOV P1,A MOV B,R7 MOV R1,B CJNE A,#99H,START1 ;低位循環(huán) MOV A,#0H MOV R7,A ACALL OUTPUT MOV P1,A MOV B,R7 MOV R1,B M

12、OV A,R0 INC A MOV R6,A ACALL OUTPUT MOV P0,A MOV B,R6 MOV R0,B CJNE A,#99H,START1 ;高位循環(huán) SJMP $;原地踏步 OUTPUT:MOV B,#0AH;轉(zhuǎn)化為BCD碼 DIV AB SWAP A ORL A,B RET DELAY:MOV R3,#32H;循環(huán)次數(shù)LOOP:MOV R4,#14H;循環(huán)次數(shù)LOOP1:MOV R5,#0FAH;循環(huán)次數(shù)LOOP2:NOP NOP DJNZ R5,LOOP2 DJNZ R4,LOOP1 DJNZ R3,LOOP RET END 六、 程序測試方法與結(jié)果、軟件性能分析

13、 1) 分段函數(shù)測試 分別令X=10、30、50測試個分段函數(shù),再使用X=20、40測試分界點,其對應(yīng)結(jié)果如下:X=40時,得到X,Y存入片外RAMX=20時,X=30時,X=40時,Y的高位存入片外RAM 2002H,低位存入2001HX=50時,Y的高位存入片外RAM 2002H,低位存入2001H2)、電子時鐘測試當P3.0為高電平時,不記時,如圖:當P3.7為低電平時計時開始,其計時效果如下:由于小時等待時間太長,故在此不再截圖顯示3)、4位十進制加、減1計數(shù):當P3.7為低電平時執(zhí)行加一計數(shù)P0輸出千位和百位 P1輸出十位和各位當P3.7為高電平時執(zhí)行減一計數(shù)P0輸出千位和百位 P1

14、輸出十位和各位七、思考題1 1實現(xiàn)多分支結(jié)構(gòu)程序的主要方法有哪些?舉例說明。答:實現(xiàn)方法大致如下:1. 1.使用條件轉(zhuǎn)移指令實現(xiàn),如DJNZ,JNC2. 2.使用分支表法,如分支地址表、轉(zhuǎn)移指令表、地址偏移量表。2 2在編程上,十進制加1計數(shù)器與十六進制加1計數(shù)器的區(qū)別是什么?怎樣用十進制加法指令實現(xiàn)減1計數(shù)?答:十進制加一后需要在計算結(jié)果的基礎(chǔ)上進行修正,運用DA指令;而十六進制加一指令所得結(jié)果即為最終結(jié)果,無需進行修正。 寫十進制加法指令時,首先將結(jié)果與#0相加,即ADDA,0;然后運用DAA指令,修正A為十進制,最后再執(zhí)行減一操作,即DEC A。如此便可得到結(jié)果。八、心得與體會本次實驗主

15、要進行了分支程序的設(shè)計實驗,并涉及到了函數(shù)的多分支,與子函數(shù)間的嵌套,加深了我們對如何運用子函數(shù)進行程序的分支的方法。其中,分支函數(shù)的實現(xiàn)過程不是很復(fù)雜,但是電子時鐘的24小時制程序設(shè)計需要對多級函數(shù)的嵌套有深刻的理解,在這個程序的設(shè)計過程中,的確鍛煉了我們對于子函數(shù)、延時程序、系統(tǒng)頻率等相關(guān)概念有了多的了解。在電子時鐘設(shè)計中,要指出的是,程序在考慮一些延時的循環(huán)函數(shù)時,一些耗時比較少的指令沒有加入計算,這就導(dǎo)致了,程序在執(zhí)行過程中會出現(xiàn)一定的誤差,在所難免,但總體而言,精確度還算比較高,滿足了設(shè)計的要求??偠灾?,本次實驗在自己一人的努力下,基本完成了實驗任務(wù),歲耗時較長,但有其自己的效果,也提高了我通過單片機實現(xiàn)一些小型功能的能力,這些對以后的學(xué)習(xí)必將大有裨益!

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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