分支與循環(huán)程序設(shè)計實驗-報告_第1頁
分支與循環(huán)程序設(shè)計實驗-報告_第2頁
分支與循環(huán)程序設(shè)計實驗-報告_第3頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗名稱分支與循環(huán)程序設(shè)計實指導(dǎo)教師 羅志祥專業(yè)班級 光電1406 姓名 段昳暉 學(xué)號 聯(lián)系電話137********一、任務(wù)要求8bitsX存于外部RAMY也存于外部RAM單元,請按要求編寫完整程序。X2YX/2XX

當X64當10X64當X105124P0、P1、P2(BCDP3.01s延時子程序(延時誤差小于10u,晶振頻率12MH。二、設(shè)計思路8bitsX存于外部RAMY也存于外部RAM單元,請按要求編寫完整程序。X2YX/2XX

當X64當10X64當X10將外部單元1000H中的XL1、L2、L3X64X10CJNE,以及執(zhí)行CJNE指令后的進位位CY1001H1002H。文檔利用5124P0、P1、P2(BCDP3.01s延時子程序(延時誤差小于10u,晶振頻率12MH。主程序設(shè)計三層循環(huán),分別對應(yīng)時、分、秒,最內(nèi)層安放一秒延時程序。利用R0、R1、R2R3R460160秒,外循環(huán)循環(huán)1次,外循環(huán)循環(huán)24進行二進制修正。利用循環(huán)來設(shè)計延時程序,合理計算語句長度,以及循環(huán)次數(shù)。程序運行時修正P3.0的值,可以實現(xiàn)暫停計數(shù)和繼續(xù)的功能。提高部分(選做:41P1P2利用P3.7狀態(tài)選擇加、減計數(shù)方式。利用P3口低四位狀態(tài)控制開始和停止計數(shù),控制方式自定。初始化P1P2R1R21計數(shù),取出R2中的數(shù)存于AA1,同時進行十進制修正,存于P2,到99,則進位對千百位進行加P3.7=1時,進行減一操作,取出R1中的數(shù)存于A,對A1,同時進行十進制修正,存于P10,則對P2,對R2進行減一。計數(shù)循環(huán)前判斷P3.0P3.0=1直到P3.0=1,可以實現(xiàn)隨時停止與開始。三、資源分配8bitsXRAM單元,按以下方式計算后的結(jié)果Y也存于外部RAM單元,請按要求編寫完整程序。X2YX/2XX

當X64當10X64當X10X存于片外1000HY存于片外1001H、1002H其中,求平方時,低位存于1001H,,高位存于1002H除二時,商存于1001H,,余數(shù)存于1002H5124過P0P1P2端口輸出(以壓縮BCD碼的形式P3.0停止計時。設(shè)計1s延時子程序(延時誤差小于10u,晶振頻率12MH。文檔P0P1P2R0小時循環(huán)計數(shù)R1分鐘循環(huán)計數(shù)R2秒循環(huán)計數(shù)R3保存分鐘數(shù)R4保存小時數(shù)提高部分(選做:實現(xiàn)4位十進制加、減1計數(shù),千位、百位由P1口輸出;十位、個位由P2利用P3.7狀態(tài)選擇加、減計數(shù)方式。利用P3口低四位狀態(tài)控制開始和停止計數(shù),控制方式自定。P1輸出千百位P2輸出個十位P3.0P3.711計數(shù)切換R1存千百位R2存?zhèn)€十位四、流程圖8bitsXRAM單元,按以下方式計算后的結(jié)果Y也存于外部RAM單元,請按要求編寫完整程序。X2YX/2XX

當X64當10X64當X10文檔文檔5124過P0P1P2端口輸出(以壓縮BCD碼的形式P3.0停止計時。設(shè)計1s延時子程序(延時誤差小于10u,晶振頻率12MH。文檔文檔提高部分(選做:實現(xiàn)4位十進制加、減1計數(shù),千位、百位由P1口輸出;十位、個位由P2利用P3.7狀態(tài)選擇加、減計數(shù)方式。利用P3口低四位狀態(tài)控制開始和停止計數(shù),控制方式自定。文檔文檔五、源代碼(含文件頭說明、語句行注釋)8bitsXRAM單元,按以下方式計算后的結(jié)果Y也存于外部RAM單元,請按要求編寫完整程序。YFilename: task1.asm

X2X/2XX

當X64當10X64當X10Description:對8bits符號數(shù)X,對于不同的X進行不同的運算操作Date:2016.10.13Designedby:Sourceused: 1000H:X1001H、1002H:存Y的值1001H:平方運算所得低位;除法運算所得商1002H:平方運算所得高位;除法運算所得余數(shù)ORG0000HLJMPMAINORG MAIN:MOVDPTR,#1000HMOV A,#-1MOVB,#0MOVX;X存于1000H給X賦值;正負判斷JB;X<0,L3L1:;X>0CJNEA,#64,L2SJMPL1MOVB,A;A!=64,L2;X>=64MULABSJMPSTORE1001H,?1002HL2:L4:JNCL1CJNEA,#10,L4SJMPL3JCL3MOVDIV ABSJMPSTORE;X>64,L1;A!=10,L4;X=10,L3;X<10,L3;X>10;商存于1001H,余數(shù)存于1002H文檔L3: CPLA ;X<=10STORE:INC DPTR ;MOVX@DPTR,AINCDPTRMOV MOVX SJMP$END5124過P0P1P2端口輸出(以壓縮BCD碼的形式P3.0停止計時。設(shè)計1s延時子程序(延時誤差小于10u,晶振頻率12MH。3.Filename: task2.asmDescription:24Date:2016.10.13Designedby:DYHSourceused:P0:輸出小時數(shù)P1:輸出分鐘數(shù)P2:輸出秒數(shù)R0:小時循環(huán)計數(shù)R1:分鐘循環(huán)計數(shù)R2:秒循環(huán)計數(shù)R3:保存分鐘數(shù)R4:保存小時數(shù)ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40HMOVP0,#0MOVP1,#0MOVP2,#0MOVR3,#0;保存小時MOVR4,#0;保存分鐘文檔;設(shè)定循環(huán)MOVR0,#24 ;小時外循環(huán)MOVR1,#59 ;分鐘中循環(huán)MOVR2,#59 ;秒內(nèi)循環(huán)CLRALOOP:JNBP3.0,$ ;p3.0=0,結(jié)束計LCALLDELAY ;延時1sADDA,#1DAAMOVP2,ADJNZR2,LOOPMOVA,R3 ;分鐘開始計數(shù)將分鐘賦給ADDA,#1 ;分+1DA AMOVMOVP1,ACLRA 秒清零MOVR2,#59 ;重置內(nèi)循環(huán)DJNZR1,LOOP ;R1!=0,中循MOV R3,#0 分鐘清零,小時計MOV A,R4ADD DA AMOVR4,AMOVP0,AMOVR2,#59;重置中循環(huán)MOVR1,#59;重置外循環(huán)DJNZR0,LOOPDONE:SJMP$DELAY: MOVR7,#11 DELAY3:MOVR6,#90 ;t=1.000001sDELAY2:MOVR5,#201DELAY1:NOPNOPNOPDJNZR5,DELAY1NOPNOPDJNZR6,DELAY2NOPNOPNOP文檔NOPNOPNOPDJNZR7,DELAY3RETEND提高部分(選做:實現(xiàn)4位十進制加、減1計數(shù),千位、百位由P1口輸出;十位、個位由P2利用P3.7狀態(tài)選擇加、減計數(shù)方式。利用P3Description:41計數(shù)Date:2016.10.13Designedby:DYHSourceused:P1輸出千百位P2輸出個十位P3.0P3.711計數(shù)切換R1存千百位R2存?zhèn)€十位ORG0000HMOVP1,#0 輸出千百位MOVP2,#0 輸出個十位MOVR1,#0 ;存千百位MOVR2,#0 ;LJMPMAINORG0100HMAIN: JBP3.0,$ ;計數(shù)開始與停止控JNBP3.7,ADD1 加1減1,模式選擇SUB1: MOVP1,#99MOVP2,#99MOVR1,#99LOOP2:MOVR2,#99LOOP1:JBP3.0,$JNBP3.7,LOOP3MOVA,R2LCALLDELAYDECAMOVR2,A文檔MOVP2,R2CJNEMOVA,R1DECAMOVMOVP1,R1CJNER1,#0H,LOOP2SJMP$ADD1: MOVMOVP2,#0MOVR1,#0LOOP4:MOVLOOP3:JBJBP3.7,LOOP1MOVA,R2LCALLDELAYINCAMOVR2,AMOVCJNEMOVA,R1INCAMOVMOVP1,R1CJNEMOVR1,#0SJMP$DELAY:MOVR7,#11;n==((201*5+5)*90+9)*11+2=1000001DELAY3:MOVR6,#90;t=1.000001sDELAY2:MOVR5,#201DELAY1:NOPNOPNOPDJNZR5,DELAY1NOPNOPDJNZR6,DELAY2NOPNOPNOPNOPNOP文檔NOPDJNZR7,DELAY3RETEND六、程序測試方法與結(jié)果8bitsXRAM單元,按以下方式計算后的結(jié)果Y也存于外部RAM單元,請按要求編寫完整程序。X2YX/2XX

當X64當10X64當X10(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=1000H文檔5124過P0P1P2端口輸出(以壓縮BCD碼的形式P3.0停止計時。設(shè)計1s延時子程序(延時誤差小于10u,晶振頻率12MH。(1)P3.0=0,停止計數(shù)文檔分鐘進位前文檔分鐘進位后文檔小時進位前文檔小時進位后文檔提高部分(選做:實現(xiàn)4位十進制加、減1計數(shù),千位、百位由P1口輸出;十位、個位由P2利用P3.7狀態(tài)選擇加、減計數(shù)方式。利用P3口低四位狀態(tài)控制開始和停止計數(shù),控制方式自定。(1)P3.0=1,停止計數(shù)文檔P3.0=1,中途停止計數(shù)文檔P3.0=0,從暫停點繼續(xù)計數(shù)文檔

溫馨提示

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

評論

0/150

提交評論