單片機定時器計數器試驗報告_第1頁
單片機定時器計數器試驗報告_第2頁
單片機定時器計數器試驗報告_第3頁
單片機定時器計數器試驗報告_第4頁
單片機定時器計數器試驗報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機定時器計數器實驗報告篇一:單片機計數器實驗報告計數器實驗報告實驗目的1.學習單片機內部定時/計數器的使用和編程方法;2. 進一步掌握中斷處理程序的編程方法.實驗器材1. 2. 3. 4. 5.G6W仿真器一臺MCS51實驗板 一臺PC機 一臺 電 源一臺信號發(fā)生器一臺實驗內容及要求8051內部定時計數器,按計數器模式和方式1工作,對 P3.4 (T0)引腳進行計數,使用8051的T1作定時器,50ms 中斷一次,看TO內每50ms來了多少脈沖,將計數值送顯(通 過LED發(fā)光二極管8421碼來表示),1秒后再次測試.實驗說明1.本實驗中內部計數器其計數器的作用,外部事件計 數器脈沖由P3.

2、4引入定時器TOo單片機在每個機器周期采樣一次輸入波形, 因此單片機至少需要兩個機器周期才能檢測到一次跳變,這 就要求被采樣電平至少維持一個完整的機器周期,以保證電 平在變化之前即被采樣,同時這就決定了輸入波形的頻率不 lword格式支持編輯,如有幫助歡送下載支持.文檔從互聯(lián)網中收集,已重新修正排版,word格式支持編輯,如有幫助歡送下載支持.能超過機器周期頻率.2.計數脈沖由信號發(fā)生器輸入從 TO端接入.3, 計數值通過發(fā)光二極管顯示,要求:顯示兩位,十 位用L4L1的8421碼表示,個位用L8L5的8421碼表示4. 將脈搏檢查模塊接入電路中,對脈搏進行計數,計 算出每分鐘脈搏跳動次數并顯

3、示實驗框圖見下頁程序源代碼 ORG 00000H LJMP MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD, #15H MOV 20H,#14H MOV TL1,#OBOH MOV TH1, #3CHMOV TLO,#00H;T0的中斷入口地址;設置T1做定時器,TO做計數 器,都于方式1工作;裝入中斷次數;裝入計數值低8位; 裝入計數值高8位MOV THO,#00HSETB TRI ;啟動定時器T1 SETB TRO ;啟動計數器TO SETB ET1 ;允許 T1 中斷 SETB EA ;允許 CPU 中斷 SJMP $; 等待中斷MAI

4、N1: PUSH PSW PUSH ACC CLR TROCLR TRI MOV TL1,#OBOH MOV TH1, #3CHDJNZ 20H,RETUNT MOV 20H , #14HSHOW: MOV RO, THO MOV R1,TLOMOV A,R1 MOV B, #OAH DIV ABMOV C, ACC. 3MOV Pl. 0, C MOV C, ACC. 2 MOV Pl. 1, C MOVC, ACC. 1 MOV Pl. 2, C MOV C, ACC. 0 MOV Pl. 3, CMOV A, B MOV C, ACC. 3MOV Pl. 4, C MOV C, ACC.

5、 2 MOVPl. 5, C MOV C, ACC. 1 MOV Pl. 6, C MOV C, ACC. 0MOV Pl. 7,C ;保護現(xiàn)場;裝入計數值低8位;裝入計數值高8位,50ms;允許T1中斷;未到Is,繼續(xù)計時口s到重新開始;顯示計數器T0的值;讀計數器當前值;將計數值轉為 十進制;顯示局部,將A中保存的十位賦給L0L3將B中保存 的各位轉移到A中;將個位的數字顯示在L4L7上. 9RETUNT:MOV TLO, #00H;將計數器 TO 清零 MOV THO, #00HSETB TROSETB TRIPOP ACCPOP PSWRET I ;中斷返回在頻率為1000HZ時,L0

6、L7顯示為50;頻率為300HZ時,L(fL7顯示為15,結果正確,程序可以正確運行.思 考與小結:有了前面的定時器實驗做根底,定時器計數器的選擇以 及初始化已經不再是難點,本次試驗的重點是寫入兩個中斷 判斷程序和十六進制到十進制的轉化和顯示.MOV TL1, #0B0H ;裝入計數值低8位MOV TH1,#3CH;裝入計數值高8位,50msMOV 20H, #14H ;未到 Is,繼續(xù)計時 DJNZ 20H, RETUNT; Is 到重新開始RETUNT:MOV TLO,#OOH;將計數器 TO 清零 MOV THO, #00H由于書上詳細解釋了設置中斷時間的問題,所以中斷程 序并沒有什么太

7、大的難點,主要是要思考一下程序的執(zhí)行順 序問題.十六進制到十進制的轉化和顯示使我們這次實驗遇到 的比擬大的困難,剛開始采用的是DA指令,由于沒有搞清 楚它的實質錯誤的使用了 DAo DA用于十六進制到BCD的轉 換,不能用于十六進制到8421的轉換,于是我們思考了很 久.后來終于找到了比擬簡單的方法用除數,十位放在A中, 個位也就是余數放在B中.MOV RO, TH0 ;讀計數器當前值MOV Rl, TLOMOV A,R1 MOV B, #0AHDIV AB;將計數值轉為十進制由于這次的數字比擬小而且要顯示在L0L7上,所以可 以用這種方法,如果是數字比擬大的話這種方法也不奏效, 需要寫一段通

8、用代碼來實現(xiàn).后面的問題可謂是一只強大的攔路虎,可能是根底只是 不過關的緣故,我們一直在數字的顯示順序上糾結萬分,用 了左循環(huán)但是沒有到達預期目的,在老師的指導之下才知道 原來可以直接位賦值.以后一些使用的知識和技巧一定要掌 握.MOV C, ACC. 3 ;顯示局部,將A中保存的十位賦給L0L3 MOV Pl. 0, C MOV C, ACC. 2 MOV Pl. 1, CMOV C, ACC. 1 MOV Pl. 2, C MOV C, ACC. 0 MOV Pl. 3, CMOV A, B;將B中保存的各位轉移到A中MOV C, ACC. 3 ; 將個位的數字顯示在L4L7上MOV Pl

9、. 4, C MOV C, ACC. 2 MOV Pl. 5, C MOV C, ACC. 1 MOV Pl. 6, C MOV C, ACC. 0MOV Pl. 7,C篇二:51單片機定時器實驗電子信息工程學系實驗報告課程名稱:單片機原理實驗工程名稱:51定時器實驗 實驗時間:XX-U-27班級:測控081姓名:學號:2實驗目的:熟悉keil仿真軟件、偉福仿真器的使用和C51定時程 序的編寫.了解51單片機中定時、計數的概念,熟悉51單 片機內部定時/計數器的結構與工作原理.掌握中斷方式處 理定時/計數的工作過程,掌握定時/計數器在C51中的設置 與程序的書寫格式以及使用方法.實驗原理:定時

10、分類及原理1 .軟件定時:即讓機器執(zhí)行一個程序段,這段程序本身 沒有具體的執(zhí)行目的,只是為了磨時間.執(zhí)行這段程序所需 要的時間就是延時時間.這種程序前面已設計過.這種方法 定時占用CPU執(zhí)行時間,降低了 CPU利用率.此次實驗使用 的是MCS-51系列單片機.2, 數字電路硬件定時:采用小規(guī)模集成電路器件如555, 外接定時部件電阻和電容構成.這樣的定時電路簡單,但 要改變定時范圍,必須改變電阻和電容,這種定時電路在硬 件連接好以后,修改不方便.3. 可編程定時/計數器:是為方便微型計算機系統(tǒng)的設 計和應用而研制的,它是硬件定時,又很容易地通過軟件來 確定和改變它的定時值,通過初始化編程,能夠

11、滿足各種不 同的定時和計數要求,因而在嵌入式系統(tǒng)的設計和應用中得 到廣泛的應用.8051型單片機有兩個十六位定時/計數器TO、T1,有四 種工作方式,跟定時/計數器相關的特殊功能存放器有這樣 幾個:方式限制存放器TM0DMl、M0的狀態(tài)決定定時器的工作方式,定時和外部事件 計數方式選擇位C/T, GATE與TRO、TR1配合決定定時/計數 器的啟停.加法計數存放器THO、TH1 高八位TLO、TL1 低八 位;定時/計數到標志TFO、TF1 中斷限制存放器TCON; 定時/計數器啟停限制位TRO、TRI TCON;定時/計數器中斷允許位ETO、ET1 中斷允許存放IE; 定時/計數器中斷優(yōu)先級

12、限制位PTO、PT1 中斷優(yōu)IP.定 時/計數器的工作方式MCS-51的定時器有方式0、方式1、 方式2和方式2這3種工作方式.1.方式0當M1M0二00時,定時器工作于方式0.方式0為13位的計數器,由TLO的低5位和TH0的8 位組成,TLO低5位計數溢出時向THO進位,THO計數溢出 時 置位溢出標志TF0.假設T0工作于定時方式,設計數初值 為a,晶振頻率為12MHz,那么TO從初值開始計數到溢出的定 時時間為t= 213-a XlnSo 2.方式1當M1MO=O1時,定時器工作于方式loT1工作于方式1時,由TH1作為高8位,TL1作為低8 位,構成一個十六位的計數器.假設T1工作于

13、定時方式1,計 數初值為a,晶振頻率為12MHz,那么T1從計數初值計數到溢 出的定時時間為t=216-a uSo3.方式2M1MO=1O時,定時器/計數器工作于方式2,方式2為 自動恢復初值的8位計數器.TL1作為8位計數器,TH1作為計數初值存放器.t = (28a) uSo單片機內部的定時計數模塊,在定時時,對工作頻率的 12分頻進行計數,先記入TL后記入TH,直到溢出為止,根 據TL、TH內的初值不同可以定出不同的時間;在計數工作 方式時,對TO (T1)引腳的輸入脈沖進行計數,將計數值記 入TL、THo當定時/計數溢出時,會引起中斷.設置適宜的計數初值,以產生期望的定時間隔.由于定

14、時/計數器在方式0、方式1和方式2時的最大計數間隔取決 于使用的晶振頻率fosc,如下表所示,當需要的定時間隔較 大時,要采用適當的方法,即將定時間隔分段處理.計數初值與定時時間的關系為:T=12 X (T_all - a) /fosc定時間隔為T,計數初值為私所以有計數初值a =- TXfosc/12, THx = a / 256, TLx = a % 256.定時器均有 一個最大定時時間,對于長時間的定時需要,可以將定時間 隔為固定的較小時間,通過另設一全局變量ahi用于計數, 累加固定的較小定時時間來進行.確定定時/計數器工作于查詢方式還是中斷方式,假設工 作于中斷方式,那么在初始化時開

15、放定時/計數器的中斷及總 中斷:ET0 = 1; EA = 1;還需要編寫中斷效勞函數:void T0_srv (void) interrupt 1 using 1TLO = a % 256; THO=a / 256;中斷效勞程序段)4. 啟動定時器:TRO (TR1)二lo實驗設備與器件硬件:微機、WAVE單片機仿真器、單片機實驗板、跳帽 假設干軟件:KEIL C51單片機仿真調試軟件,偉福V系列仿 真調試軟件實驗內容:利用實驗板上的一位LED數碼管做顯示,利用中斷法編 寫定時程序,限制單片機定時器進行定時,所定時間為1S. 剛開始LED數碼管顯示0,每過1S數碼管的顯示值增加1, 當顯示到

16、59時返回0,依此反復.實驗的程序代碼如下:#includevoid mDelay (unsigned int Delay) (unsigned int b; for(;Delay0;Delay-) for(b=0;b int i, j, k, a; i二T; j=0; k=0;unsignedcharcodetab10 = 0xc0, 0xf9, 0xa4, OxbO, 0x99, 0x92, 0x82, 0xf8, Ox 80, 0x90) ; void main() TMOD=0x01;a二-0.1*6*1000000/12; TH0=a/256; TL0=a%256;EA=1; ET0

17、二1; TRO=1: while(1); )void tO( )interrupt 1 THO二a/256; TL0=a%256; k+; if (k=10) (k=0; i+;if (i=10) i二0; j+; if(j=6) (i=0; j=0; (P2=0xfe; P0=tabi; mDelay(6000); P2二(P2 實驗結果及分 析:此題實驗的記數結果如下:實驗分析如下:本實驗是通過定時器來達成在LED數碼管從00秒到59 秒的顯示過程的.首先,利用定時器先實現(xiàn)定時100ms,在 累計記數到10次后就得到了 1秒的效果,接著在LED數碼 管上相應的顯示01,當到09時把十位記上

18、1,以此類推得 到在LED數碼管上從00顯示到59,最后,再置00.這樣就 到達了實驗效果.實驗心得:通過本次LED數碼管進行51定時器實驗,讓我知道了 對教材應該熟悉,由于教材是根底的,只有把根底的搞好了 才能夠進行其它層次的學習.其次此次試驗我還懂得了有時 候可以通過軟件的仿真來驗證書上的一些理論行的東西.通 過C語言的編程,對LED燈的限制及51定時器的應用讓我 對單片機理解更加明了.附錄:延時函數:void mDelay (unsigned int Delay) ( unsigned int i ; for (;Delay0:Delay-) ( for (i=0; i 篇三:單片機定時

19、器 實驗報告定時器實驗報告實驗目的1.掌握單片機內部計數器的使用和編程方法;2.掌 握中斷處理程序的編程方法.實驗器材1. 2. 3. 4. 5.G6W仿真器一臺MCS51實驗板 一臺PC機 一臺電 源一臺示波器一臺實驗內容及要求1.在使用12MHz晶振的條件下,由8051內部定時器1 按方式1工作,即作為16位定時器使用,每0. 05秒鐘T1 溢出中斷一次.P1 口的P1.0-P1.7分別接發(fā)光二極管的 LlL8o (用連線連接J2、J3)o要求:編寫程序模擬一循環(huán)彩燈.彩燈變化把戲為: LI、L2、L8依次點亮;LI、L2、L8依次熄滅;L1、 L2、L8全亮、全滅.各時序間隔為0.5秒.

20、讓發(fā)光二極管 按以上規(guī)律循環(huán)顯示下去.2.編寫一個救護車警笛聲程序, 要求:上下兩種音調交替出現(xiàn),交替周期11.5S.實驗框圖循環(huán)彩燈代碼ORG 0000H LJMP MAINORG 000BH ; TO的中斷入口地址MAIN:MOV SP, #60HMOV TMOD, #01H;設置T1工作于方式一 MOV20H, #0AH ;裝入中斷次數MOV TLO, #OBOH ;裝入計數值低 8位MOV THO, #3CH;裝入計數值高8位SETB TRI ;啟動定時 器 T1 SETB ET1 SETB EA SJMP $CAIDENG: PUSH PSWPUSH ACCMOV TLO, #OBO

21、H MOV THO, #3CH JUDGE:DJNZ 20H,RETUNT MOV 20H, #0AHHUAYANG1:MOV RO, S08HM0V Pl,ttOOHMOV A, #01H LOOP:MOV Pl, ALCALL DELAY LCALL DELAY LCALL DELAY RL ADJNZ RO,LOOPNEXT1:MOV TLO,#OBOH MOV THO,#3CH JUDGE1:DJNZ 20H, NEXT1MOV 20H,OAH;允許T1中斷;允許CPU中斷;等待中斷;保護現(xiàn)場;裝入計數值低8位;裝入計數值高8位;0.5秒未到, 返回;重置中斷次數;把戲一;設置把戲一循環(huán)次數;裝入本文來自:小草范文網: 單片機定時器計數器實驗報告計數值低8位;裝入計數值 高8位;0. 5秒未到,返回HUAYANG2:;把戲二MOV RO, #08H ;設置把戲二循環(huán)次數 MOV Pl, #0FFH MOV A, #OFEH LOOP 1:MOVP1, A LCALL DELAY LCALL DELAY LCALL DELAYRL ADJNZ RO,LOOP1NEXT2:MOV TLO, #OBOHMOV THO,#3CH JUDGE2:DJNZ 20H, NEXT2 MOV 20H,OAHHUAYANG3:MOV Pl,#00H

溫馨提示

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

評論

0/150

提交評論