實驗二 中斷控制實驗實驗三 定時/計數器實驗_第1頁
實驗二 中斷控制實驗實驗三 定時/計數器實驗_第2頁
實驗二 中斷控制實驗實驗三 定時/計數器實驗_第3頁
實驗二 中斷控制實驗實驗三 定時/計數器實驗_第4頁
實驗二 中斷控制實驗實驗三 定時/計數器實驗_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理與接口技術第3章單片機集成功能模塊實驗實驗二中斷控制實驗實驗三定時計數器實驗班級: 學號: 姓名: 成績: 指導老師: 日期:2017年11月6日實驗二中斷控制實驗一、實驗目的學習中斷控制技術的基本原理,掌握中斷程序的設計方法。二、實驗原理1、 參照實驗電路連線圖接線,在8051的P1口上接8個發光二極管,在INT0(P3.2)接入觸發脈沖電路,利用下降沿觸發產生中斷。2、編制主程序,使P1口的8個發光二極管同時亮,延時一會兒在同時熄滅,延時時間自定。外來脈沖每觸發一次,主程序便中斷一次,在中斷服務子程序中,使P1口的8個發光二極管在某一時刻只有一個點亮,并向左循環移動。三、儀器設備

2、: 1、PC計算機一臺。2、Dais-386PRO+實驗系統一套。四、 實驗內容:1、定時器中斷單片機集成的定時器可以產生定時中斷,利用定時器T0,編寫程序,使P1.0控制的發光二極管L0每隔1秒交替點亮或熄滅。實驗步驟:1) 按圖3-2-1連接實驗電路,參考程序:A513_2_1.ASM;2) 編寫程序,經編譯、鏈接無語法錯誤后裝載到實驗系統;3) 運行程序,觀察發光二極管L0,應每隔1秒交替點亮或熄滅;4) 實驗完畢后,應使用暫停命令中止程序的運行。2、外部中斷P3.2(INT0)連接單脈沖發生器,編寫程序,每按一次脈沖產生一次中斷,使P1.0控制的發光二極管L0交替點亮或熄滅。; 定時器

3、中斷實驗; P1.0 - 發光二極管顯示 L0COUNT EQU 9217 ;11.0592MHz 延時10msLED EQU P1.0 ORG 0000H ;復位地址 AJMP MAIN ;開始時跳轉轉到主程序 ORG 000BH ;T0入口地址 AJMP INT_T0 ORG 0100HMAIN: SETB LED MOV TMOD,#00000001B ;設置定時器T0工作在方式1(16位) MOV TH0,#HIGH(65536-COUNT) ;設置初值 MOV TL0,#LOW(65536-COUNT) CLR TF0 ;先把溢出標志位清零 SETB TR0 ;開始計時 SETB E

4、A ;全局中斷打開 SETB ET0 ;定時器/計數器T0溢出中斷打開 MOV R7,#00H ;作為定時器累加器使用 SJMP $ ;循環,等待中斷;中斷服務子程序INT_T0: INC R7 ;計數增量 CLR TF0 ;重新置中斷標志位為0 MOV TH0,#(65536-COUNT)/256 ;重新符初值 MOV TL0,#255 CJNE R7,#100,RETURN ;讓燈明暗相間1s MOV R7,#00H CPL LED ;讓燈明暗交替變化RETURN: RETI END實驗步驟:1) 按圖3-2-2連接實驗電路,參考程序:A513-2-2.ASM;2) 編寫程序,經編譯、鏈接

5、無語法錯誤后裝載到實驗系統;3) 運行程序,每按動一次單脈沖按鈕令發光二極管L0交替點亮或熄滅;4) 實驗完畢后,應使用暫停命令中止程序的運行。; 外部中斷實驗; P1.0 - 發光二極管顯示 L0; P3.2 - 單脈沖單元 SPLED BIT P1.0 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SVR ORG 0100HMAIN: SETB LED MOV TCON,#01H ;外部中斷0下降沿觸發 MOV IE,#81H ;打開外部中斷允許位(EX0)及總中斷允許位(EA) SJMP $ ;等待中斷; 中斷服務子程序INT0SVR:CPL LED RE

6、TI END五、實驗結果討論:定時器中斷:由于實際晶振為11.0592MHz,所以延時10ms時設置的初值為DBFFH,本程序運用了兩種方法設置初值,一種是用HIGH(65536-COUNT)取高8位,一種是(65536-COUNT)/256右移8位來取高八位,然后用中斷服務子程序來進行100次循環來延時1s并且CPL指令取反來實現燈的明暗交替變換。外部中斷:設定外部中斷0的下降沿觸發,通過P3.2INT0的單脈沖來控制發光二極管L0交替點亮或熄滅。實驗三定時計數器實驗一、實驗目的學習定時計數器的工作方式,掌握程序設計方法。二、實驗原理8051單片機內部有兩個16位可編程定時器/計數器:T0和

7、T1。16位是指它們都是有16個觸發器構成,故最大計數模值為216-1。可編程是指它們的工作方式由指令來設定,或者當計數器用,或者當定時器用,并且計數(定時)的范圍也可以由指令來設置。這種控制功能是通過定時器方式控制寄存器TMOD來完成的。工作在定時方式時,時鐘由單片機內部提供,即系統時鐘經過12分頻后作為定時器的時鐘;工作在計數方式時,時鐘脈沖(計數脈沖)由T0和T1(即P3.4和P3.5)輸入。定時器/計數器在計到規定的計數值時可以向CPU發出中斷申請,從而完成某種控制功能。定時器/計數器控制寄存器TCON用來負責定時器/計數器的啟動、停止以及中斷管理。三、儀器設備: 1、PC計算機一臺。

8、2、Dais-386PRO+實驗系統一套。五、 實驗內容:1、定時器實驗使用T0進行定時,編寫程序,使P1.0控制的發光二極管L0每隔2秒交替點亮或熄滅。實驗步驟:1) 按圖3-3-1連接實驗電路,參考程序:A513_3_1.ASM;2) 編寫程序,經編譯、鏈接無語法錯誤后裝載到實驗系統;3) 運行程序,觀察發光二極管L0,應每隔2秒交替點亮或熄滅;4) 實驗完畢后,應使用暫停命令中止程序的運行。2、計數器實驗T0工作在方式2,即8位自動重裝載,當溢出時自動將TH0裝入TL0。編寫程序,每按動5次單脈沖按鈕,使發光二極管L0交替點亮或熄滅1次。實驗步驟:1) 按圖3-3-2連接實驗電路,參考程

9、序:A513_3_2.ASM;2) 編寫程序,經編譯、鏈接無語法錯誤后裝載到實驗系統;3) 運行程序,每當按滿5次單脈沖按鈕,發光二極管L0發生1次跳變;; 定時器實驗; P1.0 - 發光二極管顯示 L0COUNT EQU 8192-8000LED EQU P1.0 ORG 0000H AJMP MAIN ORG 0100HMAIN: SETB TR0 ;啟動T0 MOV R7,#200 ;定時計數初值LOOP: MOV TMOD,#00H MOV TH0,#(COUNT / 32) ;定時8ms MOV TL0,#(COUNT MOD 32) JNB TF0,$ ;等待8ms CLR TF0 DJNZ R7,LOOP CPL LED SJMP MAIN END4) 實驗完畢后,應使用暫停命令中止程序的運行。; 計數器實驗; P1.0 - 發光二極管顯示 L0; P3.4 - 單脈沖單元 SPLED EQU P1.0 ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV TMOD,#06H ;T0計數方式2,自動重裝 MOV TH0,#256-5 MOV TL0,#256-5 SETB TR0 ;啟動T0LOOP: JNB TF0,$ ;判T0溢出標志 CPL LED CLR TF0 SJMP LOOP END五、實驗結果討論:

溫馨提示

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

評論

0/150

提交評論