分支與循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告匯總_第1頁
分支與循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告匯總_第2頁
分支與循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告匯總_第3頁
分支與循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告匯總_第4頁
分支與循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告匯總_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)名稱分支與循環(huán)程序設(shè)計(jì)實(shí)驗(yàn) 指導(dǎo)教師羅志祥專業(yè)班級光電1406 姓名 段映暉學(xué)號 U2014*聯(lián)系電話13系*一、任務(wù)要求1 .設(shè)有8bits符號數(shù)X存于外部RAW元,按以下方式計(jì)算后的結(jié)果 Y也存于外部RAM11元, 請按要求編寫完整程序。2 .利用51系列單片機(jī)設(shè)計(jì)一個24小時制電子時鐘,電子時鐘的時、分、秒數(shù)值分別通過P0 P1、P2端口輸出(以壓縮BC加的形式)。為低電平時開始計(jì)時,為高電平時停止計(jì)時。設(shè)計(jì) 1s 延時子程序(延時誤差小于 10us,晶振頻率12MHz 。二、設(shè)計(jì)思路1 .設(shè)有8bits符號數(shù)X存于外部RAW元,按以下方式計(jì)算后的結(jié)果 Y也存于外部RAMtl元, 請

2、按要求編寫完整程序。將外部單元1000H中的X,通過分支判斷,分別執(zhí)行不同的語句,三條語句分別為標(biāo)記為 L1、 L2、L3,先比較X與64的大小關(guān)系,再判斷X與10的大小關(guān)系,主要利用比較轉(zhuǎn)移指令 CJNE以及 執(zhí)行CJNE旨令后的進(jìn)位位CY,進(jìn)一步比較大小,分別跳轉(zhuǎn)至對應(yīng)語句。將結(jié)果存于外部單元的1001H 以及1002H2 .利用51系列單片機(jī)設(shè)計(jì)一個24小時制電子時鐘,電子時鐘的時、分、秒數(shù)值分別通過PR P1、P2端口輸出(以壓縮BC加的形式)。為低電平時開始計(jì)時,為高電平時停止計(jì)時。設(shè)計(jì) 1s 延時子程序(延時誤差小于 10us,晶振頻率12MHz 。主程序設(shè)計(jì)三層循環(huán),分別對應(yīng)時、

3、分、秒,最內(nèi)層安放一秒延時程序。利用RO R1、R2計(jì)數(shù), R3保存分鐘數(shù)、R4保存小時數(shù),最內(nèi)層循環(huán)60次,中循環(huán)循環(huán)1次,中循環(huán)60秒,外循環(huán)循環(huán) 1次,外循環(huán)循環(huán)24次,清零。其中對端口顯示的秒數(shù)、分鐘數(shù)、時間數(shù),進(jìn)行二進(jìn)制修正。利用循環(huán)來設(shè)計(jì)延時程序,合理計(jì)算語句長度,以及循環(huán)次數(shù)。程序運(yùn)行時修正的值,可以實(shí)現(xiàn)暫停計(jì)數(shù)和繼續(xù)的功能。提高部分(選做):1)實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1 口輸出;十位、個位由P2 口輸出。利用 狀態(tài)選擇加、減計(jì)數(shù)方式。2)利用P3口低四位狀態(tài)控制開始和停止計(jì)數(shù),控制方式自定。初始化P1、P2,計(jì)數(shù)循環(huán)中插入一秒延時程序。R1存千百位、R2存?zhèn)€

4、十位,=0時,進(jìn)行加 1計(jì)數(shù),取出R2中的數(shù)存于A,對A加1,同時進(jìn)行十進(jìn)制修正,存于 P2,達(dá)到99,則進(jìn)位對千百 位進(jìn)行加1。=1時,進(jìn)行減一操作,取出R1中的數(shù)存于A,對A減1,同時進(jìn)行十進(jìn)制修正,存于 P1,達(dá)到0,則對P2,對R2進(jìn)行減一。計(jì)數(shù)循環(huán)前判斷的值,當(dāng)=1 時,開始計(jì)數(shù),=0時,原地循環(huán),停止計(jì)數(shù),直到=1,可以實(shí)現(xiàn)隨時停止與開始。三、資源分配1 .設(shè)有8bits符號數(shù)X存于外部RAW元,按以下方式計(jì)算后的結(jié)果 Y也存于外部RAM11元,請按要求編寫完整程序。X存于片外1000HY存于片外1001T 1002H其中,求平方時,低位存于1001H,高位存于1002H除二時,商

5、存于1001H,余數(shù)存于1002H2 . 利用 51 系列單片機(jī)設(shè)計(jì)一個24 小時制電子時鐘,電子時鐘的時、分、 秒數(shù)值分別通過P0、P1、P2端口輸出(以壓縮BC加的形式)。為低電平時開始計(jì)時,為高電平時停止計(jì)時。設(shè)計(jì) 1s 延時子程序(延時誤差小于 10us,晶振頻率12MHZ。P0輸出小時數(shù)P1 輸出分鐘數(shù)P2輸出秒數(shù)R0小時循環(huán)計(jì)數(shù)R1 分鐘循環(huán)計(jì)數(shù)R2秒循環(huán)計(jì)數(shù)R3保存分鐘數(shù)R4保存小時數(shù)提高部分(選做):1)實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1 口輸出;十位、個位由P2 口輸出。利用狀態(tài)選擇加、減計(jì)數(shù)方式。2)利用P3口低四位狀態(tài)控制開始和停止計(jì)數(shù),控制方式自定。P1 輸出

6、千百位P2輸出個十位計(jì)數(shù)開始與停止控制加 1 減 1 計(jì)數(shù)切換R1 存千百位R2存?zhèn)€十位四、流程圖1 .設(shè)有8bits符號數(shù)X存于外部RAW元,按以下方式計(jì)算后的結(jié)果 Y也存于外部RAMtl元,請按要求編寫完整程序。2 . 利用 51 系列單片機(jī)設(shè)計(jì)一個24 小時制電子時鐘,電子時鐘的時、分、 秒數(shù)值分別通過P0、P1、P2端口輸出(以壓縮BC加的形式)。為低電平時開始計(jì)時,為高電平時停止計(jì)時。設(shè)計(jì) 1s 延時子程序(延時誤差小于 10us,晶振頻率12MHZ。提高部分(選做):1)實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1 口輸出;十位、個位由P2 口輸出。利用狀態(tài)選擇加、減計(jì)數(shù)方式。3

7、)利用P3口低四位狀態(tài)控制開始和停止計(jì)數(shù),控制方式自定。五、源代碼(含文件頭說明、語句行注釋)1.設(shè)有8bits符號數(shù)X存于外部RAW元,按以下方式計(jì)算后的結(jié)果 Y也存于外部RAMtl元,請按要求編寫完整程序。File name:Description:對8bits符號數(shù)X,對于不同的X進(jìn)行不同的運(yùn)算操作Designed by:Source used: 1000H: 存 X 的值1001H、1002H:存 Y的值1001H:平方運(yùn)算所得低位;除法運(yùn)算所得商1002H:平方運(yùn)算所得高位;除法運(yùn)算所得余數(shù)ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR,#1000

8、H ;X 存于 1000HMOV A,#-1;給 X賦值MOV B,#0MOVX DPTR,A; 正負(fù)判斷JB ,L3;X<0,L3;X>0CJNE A,#64,L2;A!=64,L2SJMP L1L1: MOV B,AMUL ABSJMP STOREL2: JNC L1CJNE A,#10,L4;X>=64;低位存于1001H,高位存于1002H;X>64,L1;A!=10,L4SJMP L3L4: JC L3MOV B,#2DIV ABSJMP STOREL3: CPL ASTORE: INC DPTRMOVX DPTR,AINC DPTR;X=10,L3;X<

9、;10,L3;X>10商存于1001H,余數(shù)存于1002H;X<=10; 結(jié)果存于1001HMOV A,BMOVX DPTR,ASJMP $END2. 利用 51 系列單片機(jī)設(shè)計(jì)一個24 小時制電子時鐘,電子時鐘的時、分、 秒數(shù)值分別通過P0、P1、P2端口輸出(以壓縮BCDK的形式)。為低電平時開始計(jì)時,為高電平時停止計(jì)時。設(shè)計(jì) 1s 延時子程序(延時誤差小于 10us,晶振頻率12MHZ。 File name:Description: 24 小時制電子時鐘Designed by: DYHSource used:P0:輸出小時數(shù)P1:輸出分鐘數(shù)P2: RG R1: R2: R3:

10、R4:ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#40HMOV P0,#0MOV P1,#0MOV P2,#0MOV R3,#0MOV R4,#0; 設(shè)定循環(huán)MOV R0,#24MOV R1,#59 ;MOV R2,#59 ; CLR A輸出秒數(shù) 小時循環(huán)計(jì)數(shù) 分鐘循環(huán)計(jì)數(shù) 秒循環(huán)計(jì)數(shù) 保存分鐘數(shù) 保存小時數(shù); 保存小時 保存分鐘;小時外循環(huán) 24分鐘中循環(huán) 60秒內(nèi)循環(huán) 60LOOP: JNB ,$LCALL DELAY;=0, 結(jié)束計(jì)數(shù); 延時 1sADD A,#1DA AMOV P2,ADJNZ R2,LOOPMOV A,R3ADD A,#1DA A

11、MOV R3,AMOV P1,ACLR A; 分鐘開始計(jì)數(shù)將分鐘賦給A分鐘 +1MOV R2,#59DJNZ R1,LOOPMOV R3,#0MOV A,R4ADD A,#1秒清零重置內(nèi)循環(huán)R1!=0, 中循環(huán)分鐘清零,小時計(jì)數(shù)DA A MOV MOV MOV MOVR4,AP0,AR2,#59R1,#59; 重置中循環(huán); 重置外循環(huán)DJNZ R0,LOOP DONE: SJMP $DELAY:MOV R7,#11 ;n=(201*5+5)*90+9)*11+2=1000001DELAY3: MOV R6,#90 ;t=DELAY2: MOV R5,#201DELAY1: NOPNOPNOPD

12、JNZ R5,DELAY1NOPNOPDJNZ R6,DELAY2NOPNOPNOPNOPNOPNOPDJNZ R7,DELAY3RETEND提高部分(選做):1)實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1 口輸出;十位、個位由P2 口輸出。利用 狀態(tài)選擇加、減計(jì)數(shù)方式。2)利用P3口低四位狀態(tài)控制開始和停止計(jì)數(shù),控制方式自定。Description: 實(shí)現(xiàn)4位十進(jìn)制加、減1 計(jì)數(shù)Designed by: DYHSource used:P1 輸出千百位P2輸出個十位 計(jì)數(shù)開始與停止控制加 1 減 1 計(jì)數(shù)切換R1 存千百位R2存?zhèn)€十位ORG 0000H輸出千百位 輸出個十位 存千百位 存?zhèn)€十

13、位; 計(jì)數(shù)開始與停止控制; 加 1 減 1,模式選擇MOV P1,#0MOV P2,#0MOV R1,#0MOV R2,#0 LJMP MAIN ORG 0100HMAIN: JB ,$JNB ,ADD1SUB1: MOV P1,#99MOV P2,#99MOV R1,#99LOOP2: MOV R2,#99LOOP1: JB ,$JNB ,LOOP3MOV A,R2 LCALL DELAYDEC AMOV R2,AMOV P2,R2CJNE R2,#0H,LOOP1MOV A,R1DEC AMOV R1,AMOV P1,R1CJNE R1,#0H,LOOP2SJMP $ADD1: MOV P

14、1,#0MOV P2,#0MOV R1,#0LOOP4: MOV R2,#0LOOP3: JB ,$JB ,LOOP1MOV A,R2LCALL DELAYINC AMOV R2,AMOV P2,R2CJNE R2,#99H,LOOP3MOV A,R1INC AMOV R1,AMOV P1,R1CJNE R1,#99H,LOOP4MOV R1,#0SJMP $DELAY:MOV R7,#11 ;n=(201*5+5)*90+9)*11+2=1000001DELAY3: MOV R6,#90 ;t=DELAY2: MOV R5,#201DELAY1: NOPNOPNOPDJNZ R5,DELAY

15、1NOPNOPDJNZ R6,DELAY2NOPNOPNOPNOPNOPNOPDJNZ R7,DELAY3RETEND六、程序測試方法與結(jié)果1 .設(shè)有8bits符號數(shù)X存于外部RAW元,按以下方式計(jì)算后的結(jié)果 Y也存于外部RAM11元, 請按要求編寫完整程序。(1)X=-30=E2H Y=1DH (2).X=5=05H,Y=FAH (3).X=10=0AH,Y=F5H (4)X=25=19h Y=0CH (商)01H (余數(shù)) (5).X=64=40H Y=1000H2 .利用51系列單片機(jī)設(shè)計(jì)一個24小時制電子時鐘,電子時鐘的時、分、秒數(shù)值分別通過PR P1、P2端口輸出(以壓縮BCDK的形式)。為低電平時開始計(jì)時,為高電平時停止計(jì)時。設(shè)計(jì) 1s 延時子程序(延時誤差小于 10us,晶振頻率12MHZ 。(1) =0,停止計(jì)數(shù)(2)分鐘進(jìn)位前(3)分鐘進(jìn)位后(4)小時進(jìn)位前(5)小時進(jìn)位后提高部分(選做):1)實(shí)現(xiàn)4位十進(jìn)制加、減1計(jì)數(shù),千位、百位由P1 口輸出;十位、個位由P2 口輸出。利用 狀態(tài)選擇加、減計(jì)數(shù)方式。2)利用P3口低四位狀態(tài)控制開始和停止計(jì)數(shù),控制方式自定。(1) =1,停止計(jì)數(shù)(2) =1,中途停止計(jì)數(shù)(3) =0,從暫停點(diǎn)繼續(xù)計(jì)數(shù)(4) =0,加1計(jì)數(shù)前后(5) =1,減1計(jì)數(shù)前后思考題1 .實(shí)現(xiàn)多分支結(jié)構(gòu)程序的主要方法有哪些舉例說明。2 .在編程

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論