實驗二 定時器實驗_第1頁
實驗二 定時器實驗_第2頁
實驗二 定時器實驗_第3頁
實驗二 定時器實驗_第4頁
實驗二 定時器實驗_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗1學號:姓名:實驗二定時器實驗一、實驗要求用CPU內(nèi)部定時器中斷方式計時,實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn).二、實驗目的1、學習8031內(nèi)部計數(shù)器的使用和編程方法。2、進一步掌握中斷處理程序的編程方法。三、實驗電路及連線四、實驗說明1、關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本實驗使用的是定時器。2、定時器有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時器/計數(shù)器的工作方式0-3,并確定用于定時還是用于計數(shù)。TCON主要功能是為定時器在溢出時設(shè)定標志位,并控制定時器的運行或停止等。3、內(nèi)部計數(shù)器用作定時器時,是對機器周期計數(shù)。每個機器周期的長度是12個振蕩器周期。因為實驗系統(tǒng)的晶振是6MHZ,本程序工作于方式2,即8位自動重裝方式定時器,定時器100us中斷一次,所以定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12÷6MHZ=2uS(256-定時常數(shù))×2uS=100us定時常數(shù)=206.然后對100us中斷次數(shù)計數(shù)10000次,就是1秒鐘.4、在例程的中斷服務程序中,因為中斷定時常數(shù)的設(shè)置對中斷程序的運行起到關(guān)鍵作用,所以在置數(shù)前要先關(guān)對應的中斷,置數(shù)完之后再打開相應的中斷。5、對于80C196,與定時器有關(guān)的寄存器為IOC1.2和INT-MASK。IOC1.2為定時器1溢出中斷允許/禁止位。INT-MASK的第0位為定時器溢出屏蔽位。6、對于80C196,在設(shè)置中斷定時常數(shù)時,要注意先設(shè)置窗口寄存器WSR,設(shè)置完常數(shù)后,再恢復原WSR值。五、實驗框圖六、實驗代碼:ORG0000HRESET:LJMPMAINORG000BH定時器T0入口地址LJMPIT0P跳轉(zhuǎn)到IT0P中斷子程序ORG1000H主程序地址MAIN:MOVSP,#60H設(shè)置堆棧指針MOVR1,#64H將100賦給R1MOVR2,#64H將100賦給R2MOVTMOD,#02H設(shè)置T0的工作方式為方式2MOVTH0,#0CEH高八位賦初值為206MOVTL0,#0CEH低八位賦初值為206SETBTR0啟動定時器T0SETBET0允許定時器T0溢出中斷SETBEA總中斷允許HERE:SJMPHERE循環(huán)等待IT0P:DJNZR1,LOOP減1不為零跳轉(zhuǎn)到LOOPMOVR1,#64HR1賦值100DJNZR2,LOOP減1不為零跳轉(zhuǎn)LOOPMOVR2,#64HR2賦值100CLREA關(guān)中斷PUSHACC保護現(xiàn)場PUSHPSWSETBEA開中斷CPLP1.0P1.0取反CPLEA關(guān)中斷POPPSW恢復現(xiàn)場POPACCSETBEA開中斷LOOP:RETI中斷子程序返回七、實驗總結(jié)通過這次實驗我學會了用CPU內(nèi)部定時器中斷方式計時,實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn)的設(shè)計。內(nèi)部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本實驗使用的是定時器。我采用的是方式2。采用雙重循環(huán),其中R1為內(nèi)層循環(huán),R2為外層循環(huán)。因為實驗系統(tǒng)的晶振是6MHZ,本程序工作于方式2,即8位自動重裝方式定時器,定時器100us中斷一次,所以定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12÷6MHZ=2uS,(256-定時常數(shù))×2uS=100us。定時常數(shù)=206。然后對100us中斷次數(shù)計數(shù)10000次,就是1秒鐘。該實驗也可以用方式1實現(xiàn)。此時定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12÷6MHZ=2uS,(65536-定時常數(shù))×2uS=100us。定時常數(shù)=65486。然后對100us中斷次數(shù)計數(shù)10000次,就是1秒鐘。完成這次實驗我對定時器有了進一步的認識,也能更好的區(qū)分方式1和方式2的不同之處,收獲很多。實驗二定時器實驗一、實驗要求用CPU內(nèi)部定時器中斷方式計時,實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn).二、實驗目的1、學習8031內(nèi)部計數(shù)器的使用和編程方法。2、進一步掌握中斷處理程序的編程方法。三、實驗電路及連線四、實驗說明1、關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本實驗使用的是定時器。2、定時器有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時器/計數(shù)器的工作方式0-3,并確定用于定時還是用于計數(shù)。TCON主要功能是為定時器在溢出時設(shè)定標志位,并控制定時器的運行或停止等。3、內(nèi)部計數(shù)器用作定時器時,是對機器周期計數(shù)。每個機器周期的長度是12個振蕩器周期。因為實驗系統(tǒng)的晶振是6MHZ,本程序工作于方式2,即8位自動重裝方式定時器,定時器100us中斷一次,所以定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12÷6MHZ=2uS(256-定時常數(shù))×2uS=100us定時常數(shù)=206.然后對100us中斷次數(shù)計數(shù)10000次,就是1秒鐘.4、在例程的中斷服務程序中,因為中斷定時常數(shù)的設(shè)置對中斷程序的運行起到關(guān)鍵作用,所以在置數(shù)前要先關(guān)對應的中斷,置數(shù)完之后再打開相應的中斷。5、對于80C196,與定時器有關(guān)的寄存器為IOC1.2和INT-MASK。IOC1.2為定時器1溢出中斷允許/禁止位。INT-MASK的第0位為定時器溢出屏蔽位。6、對于80C196,在設(shè)置中斷定時常數(shù)時,要注意先設(shè)置窗口寄存器WSR,設(shè)置完常數(shù)后,再恢復原WSR值。五、實驗框圖六、實驗代碼:ORG0000HRESET:LJMPMAINORG000BH定時器T0入口地址LJMPIT0P跳轉(zhuǎn)到IT0P中斷子程序ORG1000H主程序地址MAIN:MOVSP,#60H設(shè)置堆棧指針MOVR1,#64H將100賦給R1MOVR2,#64H將100賦給R2MOVTMOD,#02H設(shè)置T0的工作方式為方式2MOVTH0,#0CEH高八位賦初值為206MOVTL0,#0CEH低八位賦初值為206SETBTR0啟動定時器T0SETBET0允許定時器T0溢出中斷SETBEA總中斷允許HERE:SJMPHERE循環(huán)等待IT0P:DJNZR1,LOOP減1不為零跳轉(zhuǎn)到LOOPMOVR1,#64HR1賦值100DJNZR2,LOOP減1不為零跳轉(zhuǎn)LOOPMOVR2,#64HR2賦值100CLREA關(guān)中斷PUSHACC保護現(xiàn)場PUSHPSWSETBEA開中斷CPLP1.0P1.0取反CPLEA關(guān)中斷POPPSW恢復現(xiàn)場POPACCSETBEA開中斷LOOP:RETI中斷子程序返回七、實驗總結(jié)通過這次實驗我學會了用CPU內(nèi)部定時器中斷方式計時,實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn)的設(shè)計。內(nèi)部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本實驗使用的是定時器。我采用的是方式2。采用雙重循環(huán),其中R1為內(nèi)層循環(huán),R2為外層循環(huán)。因為實驗系統(tǒng)的晶振是6MHZ,本程序工作于方式2,即8位自動重裝方式定時器,定時器100us中斷一次,所以定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12÷6MHZ=2uS,(256-定時常數(shù))×2uS=100us。定時常數(shù)=206。然后對100us中斷次數(shù)計數(shù)10000次,就是1秒鐘。該實驗也可以用方式1實現(xiàn)。此時定時常數(shù)的設(shè)置可按以下方法計算:機器周期=12÷6MHZ=2uS,(65536-定時常數(shù))×2uS=100us。定時常數(shù)=65486。然后對100us中斷次數(shù)計數(shù)10000次,就是1秒鐘。完成這次實驗我對定時器有了進一步的認識,也能更好的區(qū)分方式1和方式2的不同之處,收獲很多。一、實驗要求用單次脈沖申請中斷,在中斷處理程序中對輸出信號進行反轉(zhuǎn)。二、實驗目的1、學習外部中斷技術(shù)的基本使用方法。2、學習中斷處理程序的編程方法。實驗電路及連線四、實驗說明中斷服務程序的關(guān)鍵是:1.保護進入中斷時的狀態(tài),并在退出中斷之前恢復進入時的狀態(tài)。2.必須在中斷程序中設(shè)定是否允許中斷重入,即設(shè)置EXO位。3.對于80C196,要選擇相應的中斷源,并設(shè)置中斷屏蔽寄存器的相應位。本例中使用了INTO中斷(80C196為EXTINT中斷),一般中斷程序進入時應保護PSW,CC以及中斷程序使用但非其專用的寄存器。本例的中斷程序保護了PSW,ACC等三個寄存器并且在退出前恢復了這三個寄存器。另外中斷程序中涉及到關(guān)鍵數(shù)據(jù)的設(shè)置時應關(guān)中斷,即設(shè)置時不允許重入。本例中沒有涉及這種情況。INTO(P32)端(80C196為EINT端)接單次脈沖發(fā)生器。P1.0接LED燈,以查看信號反轉(zhuǎn).五、實驗框圖六、實驗代碼:ORG0000H 起始地址LJMPMAIN 跳轉(zhuǎn)到主程序 ORG0003H 外部0中斷入口地址LJMPINT 跳轉(zhuǎn)到中斷服務程序ORG0100H 主程序地址MAIN:SETBEX0 允許外部中斷0中斷SETBIT0外部中斷0為跳沿觸發(fā)SETBEA總中斷允許SJMP$ 循環(huán)等待INT:CPLP1.0 求反 RETI 循環(huán)中斷返回

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論