




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機P1口輸入輸出及外部中斷實驗實驗目的1、學習P1口的使用方法。2、學習延時子程序的編寫和使用。3、熟練在匯編軟件環境下編寫、修改、調試、和運行硬件程序4、熟悉匯編語言5、學習外部中斷技術的基本使用方法。6、學習中斷處理程序的編程方法。實驗說明1、P1口做輸出口,接八只發光二極管,編寫程序,使發光二極管循環點亮。2、P1.0,P1.1作輸入口接兩個撥動開關,P1.2,P1.3作輸出口,接兩個發光二極管,編寫程序讀取開關狀態,將此狀態,在發光二極管上顯示出來。編程時應注意P1.0,P1.1作為輸入口時應先置1,才能正確讀入值。3、用單次脈沖申請中斷,在中斷處理程序中使P1.0的輸出狀態發生反轉,并通過發光二極管觀察P1.0的電平。實驗儀器計算機偉福軟件(lab2000P)實驗內容 1、P1口是準雙向口。它作為輸出口時與一般的雙向口使用方法相同。由準雙向口結構可知當P1口用為輸入口時,必須先對它置“1”。若不先對它置“1”,讀入的數據是不正確的。 2、8051延時子程序的延時計算問題,計算和估算延時子程序的時間。3、保護進入中斷時的狀態,并在退出中斷之前恢復進入時的狀態。4、必須在中斷程序中設定是否允許中斷重入,即設置EXO位。5、本例中使用了INTO中斷,一般中斷程序進入時應保護PSW,ACC以及中斷程序使用但非其專用的寄存器。本例的中斷程序保護了PSW,ACC等三個寄存器并且在退出前恢復了這三個寄存器。另外中斷程序中涉及到關鍵數據的設置時應關中斷,即設置時不允許重入。思考題 1、改變延時時間,變快或者變慢,觀察效果; 2、第2個實驗在每個端口增加軟件延時,延時時間變快或者變慢,觀察撥動開關響應效果; 3、改變流水燈的運行方向; 4、改變流水燈的運行模式,雙燈對跑,雙燈一起跑。 5、如果LED燈為低電平點亮,如何改動。 6、把實驗改為int1中斷,需要改動幾處,如何改動。 7、把實驗改為同時int0和int1中斷驅動2個燈,需要改動幾處,如何改動。源程序修改原理及其仿真結果流水燈實驗1:Loop: mova,#01h movr2,#8Output: movP1,a rla callDelay djnzr2,Output LjmpLoopDelay: movr6,#0 movr7,#0DelayLoop: djnzr6,DelayLoop djnzr7,DelayLoop ret end思考題一:修改延時子程序查指令表可知MOV和DJNZ指令均需用兩個機器周期,在6MHz晶振時,一個機器周期時間長度為12/6MHZ,所以上面延時子程序該的執行時間為:(256×255+2)×2×12÷6≈261ms=0.261s用軟件仿真將晶振頻率設為6MHz時仿真結果為與計算結果基本一致。在ms級別上人眼是無法區別快慢的,所以設計增加延時到s級別以區別于ms,即此延時級別上增加十倍,修改程序如下Delay:movr6,#0movr7,#0movr5,#0Ah ;若效果不明顯可以增大倍數DelayLoop:djnzr6,DelayLoopdjnzr7,DelayLoopdjnzr5,DelayLoopretend修改后的仿真結果為實現了秒級別的延時。思考題三:改變流水燈的運行方向修改程序如下:Loop: mova,#01h movr2,#8Output: movP1,a rra ;rl表示左移,rr表示右移,可實現流水燈方向的變換 callDelay djnzr2,Output LjmpLoop思考題四:改變流水燈的運行模式,雙燈對跑,雙燈一起跑修改為雙燈對跑:Loop:movr0,#01hmovr1,#80hmovr2,#4 ;若改為8可以實現相對點亮然后相反點亮的循環Output:mova,r0adda,r1movP1,a ;由于只有a可以實現移位功能,故用r0和r1將數據暫存,然 后分別實現移位后相加移入a再賦值,以實現雙燈對跑mova,r0rlamovr0,amova,r1rramovr1,acallDelaydjnzr2,OutputljmpLoopDelay:movr6,#0movr7,#0DelayLoop:djnzr6,DelayLoopdjnzr7,DelayLoopretend軟件仿真結果及實驗現象描述:;復位后P1口均為高電平;第一次實現r0和r1數據相加賦值 給P1,點亮邊沿的兩盞燈;實現r0和r1數據的移位以后再次相 加賦值給p1口,實現左右的四盞燈對跑;循環次數為4次,完成后回到點亮邊 沿的兩盞燈修改為雙燈一起跑:Loop: mova,#11h movr2,#8Output: movP1,a rla callDelay djnzr2,Output LjmpLoop軟件仿真結果及實驗現象描述:復位后P1口都為高電平賦入a的初值,此時0和4燈亮a值左移位再次賦值,此時1和5燈亮, 一下同理流水燈實驗2:思考題二:每個端口增加軟件延時,延時時間變快或者變慢,觀察撥動開關響應效果KeyLeftequP1.0KeyRightequP1.1LedLeftequP1.2LedRightequP1.3SETBKeyLeftSETBKeyRightLoop:MOVC,KeyLeftCall Delay;在讀入數據與傳送數據間增加延時,觀察控制效果MOVLedLeft,CMOVC,KeyRightCall DelayMOVLedright,CLJMPLoopDelay:movr6,#0movr7,#0movr5,#0Ah ;若效果不明顯可以增大倍數或者減小倍數DelayLoop:djnzr6,DelayLoopdjnzr7,DelayLoopdjnzr5,DelayLoopretend思考題五:如果LED燈為低電平點亮應如何改動若LED燈為低電平點亮則只需將賦值中的0和1對換,如源程序中的a賦值為01h,然后對它進行移位再賦值,此時就應該改為賦值feh,然后移位時候相當于移的是0信號,讓各個口循環出現低電平,以實現點亮LED燈。其他點亮方式同理。思考題六:把實驗改為int1中斷,需要改動幾處,如何改動LEDequP1.0LEDBufequ0ljmpStartorg13h ;13h為中斷1的入口地址Interrupt1: ;改為中斷1的中斷子程序pushPSW;保護現場cplLEDBuf;取反LEDmovc,LEDBufmovLED,cpopPSW;恢復現場retiorg100HStart:clrLEDBufclrLEDmovTCON,#00000100 ;外部中斷1下降沿觸發movIE,#10000100 ;打開外部中斷允許位(EX1)及總中斷允許位 (EA)ljmp$end ;硬件接口要改變,單脈沖要接P3.3思考題七:把實驗改為同時int0和int1中斷驅動2個燈,需要改動幾處,如何改動LEDequP1.0LED2equP1.1 LEDBufequ0LEDBuf2equ0 ;增加P1.1燈對應的參數ljmpStartorg3Interrupt0:pushPSW ;保護現場cplLEDBuf ;取反LEDmovc,LEDBufmovLED,cpopPSW ;恢復現場retiorg 13hInterrupt1:pushPSW cplLEDBuf2 movc,LEDBuf2movLED2,cpopPSW reti ;增加INT1中斷子程序,使兩個中斷互不干擾org100HStart:clrLEDBufclrLEDclrLEDBuf2clrLED2movTCON,#00000101 ;外部中斷1和中斷0下降沿觸發movIE,#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥廠質量管理試題及答案
- 系統架構設計師考試重要考情試題及答案
- 衛生管理行業現狀與未來展望分析試題及答案
- 激光制造技術發展試題及答案
- 心理咨詢師考試心理矯正試題及答案
- 知識產權的保護措施試題及答案
- 文化產業管理考試的成果試題及答案
- 藥物劑量調整討論題試題及答案
- 激光檢測與評估考題研究試題及答案
- 藥學倫理與法規研究試題及答案
- 2025時政試題及答案(100題)
- DB11-T 765.4-2010 檔案數字化規范 第4部分:照片檔案數字化加工
- 輸血常見不良反應及處理培訓
- 2024年建筑業10項新技術
- 第四章電功能高分子材料課件
- 《紀檢監察機關派駐機構工作規則》主要內容解讀課件PPT
- 清華大學多元微積分期中考題
- 可再生能源概論左然第四章 太陽電池
- 人因工程案例
- 消防工程報價清單
- 鋼結構焊接工藝卡與返修工藝卡(共5頁)
評論
0/150
提交評論