單片機第二次作業_第1頁
單片機第二次作業_第2頁
單片機第二次作業_第3頁
單片機第二次作業_第4頁
單片機第二次作業_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

./附錄1實驗報告格式要求《微機實驗》報告實驗名稱分支程序設計實驗專業班級任務要求1.設有8bits符號數X存于外部RAM單元,按以下方式計算后的結果Y也存于外部RAM單元,請按要求編寫程序。2.利用51系列單片機設計一個24小時制電子時鐘,電子時鐘的時、分、秒數值分別通過P0、P1、P2端口輸出〔以壓縮BCD碼的形式。P3.0為低電平時開始計時,為高電平時停止計時。設計思路1.可知此實驗要求根據不同的值進行不同的運算,因此需要使用分支程序。X處于不同的范圍,有不同的運算,可知應該先判斷其與20的大小,再判斷其與40的大小。于是需要用到CJNE指令以及JNC判斷C指令。并由此進行不同的運算,即可完成程序目的。2.制作一個1s的延時,并將其循環60次,并將其存入P0,作為秒的計時。再來一個外層循環,將其循環60次,并存入P1,作為分計時,最后再加一個外循環,使其循環24次,并存入P2,作為時的計時。開始計時的控制可由JB語句來實現資源分配1.將30H作為外部RAM的地址,并將A的結果存入該RAM中。2.將R3,R4,R5,R6,R7作為臨時放置數據的中間量,將秒,分,時的結果存入P0,P1,P2.流程圖五、源代碼〔含文件頭說明、資源使用說明、語句行注釋1.Filename:task2-1.asmDescription:Date:10/15/2011Designedby:劉珍Sourceused:R0,30HORG1000H MOVR0,30HMOVXA,@R0CJNEA,#20,STEP1;X≠20,轉STEP1L1:CPLA;X=20,計算/XSJMPDONESTEP1:JNCSTEP2;C=0,X>20,轉STEP2SJMPL1;C=1,X<20,轉L1STEP2:CJNEA,#40,STEP3;X≠40,轉STEP3L2:CLRC;X=40,計算X*XADDCA,@R0SJMPDONESTEP3:JNCL2;C=0,X>40,轉L2CLRC;C=1,20<X<40,計算X/2MOVB,#2HDIVABDONE:MOVX@R0,ASJMP$ENDFilename:task2-2.asmDescription:計時器,通過P0/P1/P2輸出,通過P3.0控制。Date:10/15/2011Designedby:劉珍Sourceused:R3,R4,R5,R6,R7臨時放置數據的中間量P0,P1,P2存放秒,分,時 ORG0000H MOVP0,#0H MOVP1,#0H MOVP2,#0H MOVR3,#60 MOVR4,#60 MOVR5,#24H MOVR6,#0H MOVR7,#0H CLRC MOVP3.0,C JBP3.0,DONEDELAY:MOVR2,#50 ;置循環次數DELAY3:MOVR0,#20DELAY2:MOVR1,#250DELAY1:NOPNOP DJNZR1,DELAY1 ;構架三重循環 DJNZR0,DELAY2 DJNZR2,DELAY3 INCA ;記錄"秒"的次數AJMPBCD;轉化為BCD CLRC DAA MOVP0,A ;通過P0輸出秒 DJNZR3,DELAY ;置秒循環60次 MOVR3,#60 ;恢復秒的循環次數 MOVA,R7 INCA ;記錄分的循環次數AJMPBCD;轉化為BCD CLRC DAA MOVR7,A ;保存分的循環次數 MOVP1,#0FFH ;讀數的預操作 MOVP1,A ;輸出分 MOVP0,#0H ;清零,保證下一輪循環 CLRA DJNZR4,DELAY ;置分循環60次 MOVR4,#60 MOVR7,#0H MOVA,R6AJMPBCD;轉化為BCD INCA ;記錄分的循環次數 CLRC DAA AJMPBCD;轉化為BCD MOVR6,A ;保存分的循環次數 MOVP2,#0FFH MOVP2,A MOVP0,#0H MOVP1,#0FFH MOVP1,#0H CLRA ;清零,保證下一輪循環 DJNZR5,DELAY ;置時循環24次DONE:SJMP$ END 程序測試方法與結果、軟件性能分析實驗一:賦值1,所得到的結果實驗二:思考題1.實現多分支結構程序的主要方法有哪些?舉例說明。答:主要方法有:分支地址表如:BRATAB:DWSUBRODWSUBR1DWSUBR2轉移地址表如:JMPTAB:AJMPSUBR0AJMPSUBR1AJMPSUBR2地址偏移量表如:DISTAB:DBSUBRO-DISTABDBSUBR1-DISTABDBSUBR3-DISTAB2.在編程上,十進制加1計數器與十六進制加1計數器的區別是什么?怎樣用十進制加法指令實現減1計數?答:十六進制加一直接用INC加一,十進制加一時需先判斷該位上是否是9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論