單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告_第1頁(yè)
單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告_第2頁(yè)
單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告_第3頁(yè)
單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告_第4頁(yè)
單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

文檔從互聯(lián)網(wǎng)中收集,已重新修正排版,word格式支持編輯,如有幫助歡迎下載支持。單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告篇一:?jiǎn)纹瑱C(jī)計(jì)數(shù)器實(shí)驗(yàn)報(bào)告計(jì)數(shù)器實(shí)驗(yàn)報(bào)告㈠實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器的使用和編程方法;2進(jìn)一步掌握中斷處理程序的編程方法。㈡實(shí)驗(yàn)器材1.2.3.4.5.G6W仿真器一臺(tái)MCS—51實(shí)驗(yàn)板一臺(tái)PC機(jī)一臺(tái)電源一臺(tái)信號(hào)發(fā)生器一臺(tái)㈢實(shí)驗(yàn)內(nèi)容及要求8051內(nèi)部定時(shí)計(jì)數(shù)器,按計(jì)數(shù)器模式和方式1工作,對(duì)P3.4(T0)引腳進(jìn)行計(jì)數(shù),使用8051的T1作定時(shí)器,50ms中斷一次,看T0內(nèi)每50ms來(lái)了多少脈沖,將計(jì)數(shù)值送顯(通過(guò)LED發(fā)光二極管8421碼來(lái)表示),1秒后再次測(cè)試。㈣實(shí)驗(yàn)說(shuō)明1.本實(shí)驗(yàn)中內(nèi)部計(jì)數(shù)器其計(jì)數(shù)器的作用,外部事件計(jì)數(shù)器脈沖由P3.4引入定時(shí)器T0o單片機(jī)在每個(gè)機(jī)器周期采樣一次輸入波形,因此單片機(jī)至少需要兩個(gè)機(jī)器周期才能檢測(cè)到一次跳變,這就要求被采樣電平至少維持一個(gè)完整的機(jī)器周期,以保證電平在變化之前即被采樣,同時(shí)這就決定了輸入波形的頻率不能超過(guò)機(jī)器周期頻率。2.計(jì)數(shù)脈沖由信號(hào)發(fā)生器輸入(從T0端接入)。3.計(jì)數(shù)值通過(guò)發(fā)光二極管顯示,要求:顯示兩位,十位用L4?L1的8421碼表示,個(gè)位用L8?L5的8421碼表示4.將脈搏檢查模塊接入電路中,對(duì)脈搏進(jìn)行計(jì)數(shù),計(jì)算出每分鐘脈搏跳動(dòng)次數(shù)并顯示㈤實(shí)驗(yàn)框圖(見下頁(yè))程序源代碼ORG00000HLJMPMAINORG001BHAJMPMAIN1MAIN:MOVSP,#60HMOVTMOD,#15HMOV20H,#14HMOVTL1,#0B0HMOVTH1,#3CHMOVTL0,#00H;T0的中斷入口地址;設(shè)置T1做定時(shí)器,T0做計(jì)數(shù)器,都于方式1工作;裝入中斷次數(shù);裝入計(jì)數(shù)值低8位;裝入計(jì)數(shù)值高8位MOVTH0,#00HSETBTR1;啟動(dòng)定時(shí)器T1SETBTR0;啟動(dòng)計(jì)數(shù)器T0SETBET1;允許T1中斷SETBEA;允許CPU中斷SJMP$;等待中斷MAIN1:PUSHPSWPUSHACCCLRTR0CLRTR1MOVTL1,#0B0HMOVTH1,#3CHDJNZ20H,RETUNTMOV20H,#14HSHOW:MOVR0,TH0MOVR1,TL0MOVA,R1MOVB,#0AHDIVABMOVC,ACC.3MOVP1.0,CMOVC,ACC.2MOVP1.1,CMOVC,ACC.1MOVP1.2,CMOVC,ACC.0MOVP1.3,CMOVA,BMOVC,ACC.3MOVP1.4,CMOVC,ACC.2MOVP1.5,CMOVC,ACC.1MOVP1.6,CMOVC,ACC.0MOVP1.7,C;保護(hù)現(xiàn)場(chǎng);裝入計(jì)數(shù)值低8位;裝入計(jì)數(shù)值高8位,50ms;允許T1中斷;未到Is,繼續(xù)計(jì)時(shí);ls到重新開始;顯示計(jì)數(shù)器T0的值;讀計(jì)數(shù)器當(dāng)前值;將計(jì)數(shù)值轉(zhuǎn)為十進(jìn)制;顯示部分,將A中保存的十位賦給L0~L3將B中保存的各位轉(zhuǎn)移到A中;將個(gè)位的數(shù)字顯示在L4~L7上RETUNT:MOVTL0,#00H;將計(jì)數(shù)器T0清零MOVTH0,#00HSETBTR0SETBTR1POPACCPOPPSWRETI;中斷返回在頻率為1000HZ時(shí),L0~L7顯示為50;頻率為300HZ時(shí),L0~L7顯示為15,結(jié)果正確,程序可以正確運(yùn)行。思考與小結(jié):有了前面的定時(shí)器實(shí)驗(yàn)做基礎(chǔ),定時(shí)器計(jì)數(shù)器的選擇以及初始化已經(jīng)不再是難點(diǎn),本次試驗(yàn)的重點(diǎn)是寫入兩個(gè)中斷判斷程序和十六進(jìn)制到十進(jìn)制的轉(zhuǎn)化和顯示。MOVTL1,#0B0H;裝入計(jì)數(shù)值低8位MOVTH1,#3CH;裝入計(jì)數(shù)值高8位,50msMOV20H,#14H未到1s,繼續(xù)計(jì)時(shí)DJNZ20H,RETUNT;1s到重新開始RETUNT:MOVTL0,#00H;將計(jì)數(shù)器T0清零MOVTH0,#00H由于書上詳細(xì)解釋了設(shè)置中斷時(shí)間的問(wèn)題,所以中斷程序并沒(méi)有什么太大的難點(diǎn),主要是要思考一下程序的執(zhí)行順序問(wèn)題。十六進(jìn)制到十進(jìn)制的轉(zhuǎn)化和顯示使我們這次實(shí)驗(yàn)遇到的比較大的困難,剛開始采用的是DA指令,由于沒(méi)有搞清楚它的實(shí)質(zhì)錯(cuò)誤的使用了DA。DA用于十六進(jìn)制到BCD的轉(zhuǎn)換,不能用于十六進(jìn)制到8421的轉(zhuǎn)換,于是我們思考了很久。后來(lái)終于找到了比較簡(jiǎn)單的方法用除數(shù),十位放在A中,個(gè)位也就是余數(shù)放在B中。MOVR0,TH0;讀計(jì)數(shù)器當(dāng)前值MOVR1,TL0MOVA,R1MOVB,#0AHDIVAB;將計(jì)數(shù)值轉(zhuǎn)為十進(jìn)制由于這次的數(shù)字比較小而且要顯示在L0~L7上,所以可以用這種方法,如果是數(shù)字比較大的話這種方法也不奏效,需要寫一段通用代碼來(lái)實(shí)現(xiàn)。后面的問(wèn)題可謂是一只強(qiáng)大的攔路虎,可能是基礎(chǔ)只是不過(guò)關(guān)的緣故,我們一直在數(shù)字的顯示順序上糾結(jié)萬(wàn)分,用了左循環(huán)但是沒(méi)有達(dá)到預(yù)期目的,在老師的指導(dǎo)之下才知道原來(lái)可以直接位賦值。以后一些使用的知識(shí)和技巧一定要掌握。MOVC,ACC.3 ;顯示部分,將A中保存的十位賦給L0~L3MOVP1.0,CMOVC,ACC.2MOVP1.1,CMOVC,ACC.1MOVP1.2,CMOVC,ACC.0MOVP1.3,CMOVA,B;將B中保存的各位轉(zhuǎn)移到A中MOVC,ACC.3 ;將個(gè)位的數(shù)字顯示在L4~L7上MOVP1.4,CMOVC,ACC.2MOVP1.5,CMOVC,ACC.1MOVP1.6,CMOVC,ACC.0MOVP1.7,C篇二:51單片機(jī)定時(shí)器實(shí)驗(yàn)電子信息工程學(xué)系實(shí)驗(yàn)報(bào)告課程名稱:?jiǎn)纹瑱C(jī)原理實(shí)驗(yàn)項(xiàng)目名稱:51定時(shí)器實(shí)驗(yàn)實(shí)驗(yàn)時(shí)間:XX-11-27班級(jí):測(cè)控081姓名:學(xué)號(hào):2實(shí)驗(yàn)?zāi)康?熟悉keil仿真軟件、偉福仿真器的使用和C51定時(shí)程序的編寫。了解51單片機(jī)中定時(shí)、計(jì)數(shù)的概念,熟悉51單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理。掌握中斷方式處理定時(shí)/計(jì)數(shù)的工作過(guò)程,掌握定時(shí)/計(jì)數(shù)器在C51中的設(shè)置與程序的書寫格式以及使用方法。實(shí)驗(yàn)原理:定時(shí)分類及原理軟件定時(shí):即讓機(jī)器執(zhí)行一個(gè)程序段,這段程序本身沒(méi)有具體的執(zhí)行目的,只是為了磨時(shí)間。執(zhí)行這段程序所需要的時(shí)間就是延時(shí)時(shí)間。這種程序前面已設(shè)計(jì)過(guò)。這種方法定時(shí)占用CPU執(zhí)行時(shí)間,降低了CPU利用率。此次實(shí)驗(yàn)使用的是MCS-51系列單片機(jī)。數(shù)字電路硬件定時(shí):采用小規(guī)模集成電路器件如555,外接定時(shí)部件(電阻和電容)構(gòu)成。這樣的定時(shí)電路簡(jiǎn)單,但要改變定時(shí)范圍,必須改變電阻和電容,這種定時(shí)電路在硬件連接好以后,修改不方便??删幊潭〞r(shí)/計(jì)數(shù)器:是為方便微型計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)和應(yīng)用而研制的,它是硬件定時(shí),又很容易地通過(guò)軟件來(lái)確定和改變它的定時(shí)值,通過(guò)初始化編程,能夠滿足各種不同的定時(shí)和計(jì)數(shù)要求,因而在嵌入式系統(tǒng)的設(shè)計(jì)和應(yīng)用中得到廣泛的應(yīng)用。8051型單片機(jī)有兩個(gè)十六位定時(shí)/計(jì)數(shù)器T0、T1,有四種工作方式,跟定時(shí)/計(jì)數(shù)器相關(guān)的特殊功能寄存器有這樣幾個(gè):方式控制寄存器TMODM1、M0的狀態(tài)決定定時(shí)器的工作方式,定時(shí)和外部事件計(jì)數(shù)方式選擇位C/T,GATE與TR0、TR1配合決定定時(shí)/計(jì)數(shù)器的啟停。加法計(jì)數(shù)寄存器TH0、TH1(高八位)TL0、TL1(低八位);定時(shí)/計(jì)數(shù)到標(biāo)志TF0、TF1(中斷控制寄存器TCON);定時(shí)/計(jì)數(shù)器啟??刂莆籘R0、TR1(TCON);定時(shí)/計(jì)數(shù)器中斷允許位ET0、ET1(中斷允許寄存IE);定時(shí)/計(jì)數(shù)器中斷優(yōu)先級(jí)控制位PT0、PT1(中斷優(yōu)IP)。定時(shí)/計(jì)數(shù)器的工作方式MCS—51的定時(shí)器有方式0、方式1、方式2和方式2這3種工作方式。1.方式0當(dāng)M1M0=00時(shí),定時(shí)器工作于方式0。方式0為13位的計(jì)數(shù)器,由TL0的低5位和TH0的8位組成,TL0低5位計(jì)數(shù)溢出時(shí)向TH0進(jìn)位,TH0計(jì)數(shù)溢出時(shí)置位溢出標(biāo)志TF0o若T0工作于定時(shí)方式,設(shè)計(jì)數(shù)初值為a,晶振頻率為12MHz,則T0從初值開始計(jì)數(shù)到溢出的定時(shí)時(shí)間為t=(213—a)X1^So2.方式1當(dāng)M1M0=01時(shí),定時(shí)器工作于方式1oT1工作于方式1時(shí),由TH1作為高8位,TL1作為低8位,構(gòu)成一個(gè)十六位的計(jì)數(shù)器。若T1工作于定時(shí)方式1,計(jì)數(shù)初值為a,晶振頻率為12MHz,則T1從計(jì)數(shù)初值計(jì)數(shù)到溢出的定時(shí)時(shí)間為t二(216—a)uS。3.方式2M1M0=10時(shí),定時(shí)器/計(jì)數(shù)器工作于方式2,方式2為自動(dòng)恢復(fù)初值的8位計(jì)數(shù)器。TL1作為8位計(jì)數(shù)器,TH1作為計(jì)數(shù)初值寄存器。t二(28—a)uS。單片機(jī)內(nèi)部的定時(shí)計(jì)數(shù)模塊,在定時(shí)時(shí),對(duì)工作頻率的12分頻進(jìn)行計(jì)數(shù),先記入TL后記入TH,直到溢出為止,根據(jù)TL、TH內(nèi)的初值不同可以定出不同的時(shí)間;在計(jì)數(shù)工作方式時(shí),對(duì)T0(T1)引腳的輸入脈沖進(jìn)行計(jì)數(shù),將計(jì)數(shù)值記入TL、TH。當(dāng)定時(shí)/計(jì)數(shù)溢出時(shí),會(huì)引起中斷。設(shè)置合適的計(jì)數(shù)初值,以產(chǎn)生期望的定時(shí)間隔。由于定時(shí)/計(jì)數(shù)器在方式0、方式1和方式2時(shí)的最大計(jì)數(shù)間隔取決于使用的晶振頻率fosc,如下表所示,當(dāng)需要的定時(shí)間隔較大時(shí),要采用適當(dāng)?shù)姆椒?,即將定時(shí)間隔分段處理。計(jì)數(shù)初值與定時(shí)時(shí)間的關(guān)系為:T=12X(T_all-a)/fosc定時(shí)間隔為T,計(jì)數(shù)初值為a。所以有計(jì)數(shù)初值a二-TXfosc/12,THx=a/256,TLx=a%256。定時(shí)器均有一個(gè)最大定時(shí)時(shí)間,對(duì)于長(zhǎng)時(shí)間的定時(shí)需要,可以將定時(shí)間隔為固定的較小時(shí)間,通過(guò)另設(shè)一全局變量ahi用于計(jì)數(shù),累加固定的較小定時(shí)時(shí)間來(lái)進(jìn)行。確定定時(shí)/計(jì)數(shù)器工作于查詢方式還是中斷方式,若工作于中斷方式,則在初始化時(shí)開放定時(shí)/計(jì)數(shù)器的中斷及總中斷:ET0=1;EA=1;還需要編寫中斷服務(wù)函數(shù):voidT0_srv(void)interrupt1using1{TL0=a%256;TH0=a/256;中斷服務(wù)程序段}4?啟動(dòng)定時(shí)器:TR0(TR1)=1。實(shí)驗(yàn)設(shè)備與器件硬件:微機(jī)、WAVE單片機(jī)仿真器、單片機(jī)實(shí)驗(yàn)板、跳帽若干軟件:KEILC51單片機(jī)仿真調(diào)試軟件,偉福V系列仿真調(diào)試軟件實(shí)驗(yàn)內(nèi)容:利用實(shí)驗(yàn)板上的一位LED數(shù)碼管做顯示,利用中斷法編寫定時(shí)程序,控制單片機(jī)定時(shí)器進(jìn)行定時(shí),所定時(shí)間為1S。剛開始LED數(shù)碼管顯示0,每過(guò)1S數(shù)碼管的顯示值增加1,當(dāng)顯示到59時(shí)返回0,依此反復(fù)。實(shí)驗(yàn)的程序代碼如下:#includevoidmDelay(unsignedintDelay){unsignedintb;for(;Delay>0;Delay--){for(b=0;binti,j,k,a;i=-1;j=0;k=0;unsigned charcodetab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidmain(){TMOD=0x01;a=-0.1*6*1000000/12;TH0=a/256;TL0=a%256;EA=1;ET0=1;TR0=1;while(1);}voidt0()interrupt1{TH0=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=tab[i];mDelay(6000);P2=(P2實(shí)驗(yàn)結(jié)果及分析:本題實(shí)驗(yàn)的記數(shù)結(jié)果如下:實(shí)驗(yàn)分析如下:本實(shí)驗(yàn)是通過(guò)定時(shí)器來(lái)達(dá)成在LED數(shù)碼管從00秒到59秒的顯示過(guò)程的。首先,利用定時(shí)器先實(shí)現(xiàn)定時(shí)100ms,在累計(jì)記數(shù)到10次后就得到了1秒的效果,接著在LED數(shù)碼管上相應(yīng)的顯示01,當(dāng)?shù)?9時(shí)把十位記上1,以此類推得到在LED數(shù)碼管上從00顯示到59,最后,再置00。這樣就達(dá)到了實(shí)驗(yàn)效果。實(shí)驗(yàn)心得:通過(guò)本次LED數(shù)碼管進(jìn)行51定時(shí)器實(shí)驗(yàn),讓我知道了對(duì)教材應(yīng)該熟悉,因?yàn)榻滩氖腔A(chǔ)的,只有把基礎(chǔ)的搞好了才能夠進(jìn)行其它層次的學(xué)習(xí)。其次此次試驗(yàn)我還懂得了有時(shí)候可以通過(guò)軟件的仿真來(lái)驗(yàn)證書上的一些理論行的東西。通過(guò)C語(yǔ)言的編程,對(duì)LED燈的控制及51定時(shí)器的應(yīng)用讓我對(duì)單片機(jī)理解更加明了。附錄:延時(shí)函數(shù):voidmDelay(unsignedintDelay){unsignedinti;for(;Delay>0;Delay--){for(i=0;i篇三:?jiǎn)纹瑱C(jī)定時(shí)器實(shí)驗(yàn)報(bào)告定時(shí)器實(shí)驗(yàn)報(bào)告㈠實(shí)驗(yàn)?zāi)康?.掌握單片機(jī)內(nèi)部計(jì)數(shù)器的使用和編程方法;2.掌握中斷處理程序的編程方法。㈡實(shí)驗(yàn)器材1.2.3.4.5.G6W仿真器一臺(tái)MCS—51實(shí)驗(yàn)板一臺(tái)PC機(jī)一臺(tái)電源一臺(tái)示波器一臺(tái)㈢實(shí)驗(yàn)內(nèi)容及要求1?在使用12MHz晶振的條件下,由8051內(nèi)部定時(shí)器1按方式1工作,即作為16位定時(shí)器使用,每0.05秒鐘T1溢出中斷一次。P1口的P1?0?P1?7分別接發(fā)光二極管的L1?L8。(用連線連接J2、J3)。要求:編寫程序模擬一循環(huán)彩燈。彩燈變化花樣為:①L1、L2、???L8依次點(diǎn)亮;②L1、L2、???L8依次熄滅;③L1、L2、???L8全亮、全滅。各時(shí)序間隔為0.5秒。讓發(fā)光二極管按以上規(guī)律循環(huán)顯示下去。2.編寫一個(gè)救護(hù)車警笛聲程序,要求:高低兩種音調(diào)交替出現(xiàn),交替周期1?1.5S。㈣實(shí)驗(yàn)框圖循環(huán)彩燈代碼ORG0000HLJMPMAINORG000BH;T0的中斷入口地址MAIN:MOVSP,#60HMOVTMOD,#01H;設(shè)置T1工作于方式一MOV20H,#0AH;裝入中斷次數(shù)MOVTL0,#0B0H;裝入計(jì)數(shù)值低8位MOVTH0,#3CH;裝入計(jì)數(shù)值高8位SETBTR1;啟動(dòng)定時(shí)器T1SETBET1SETBEASJMP$CAIDENG:PUSHPSWPUSHACCMOVTL0,#0B0HMOVTH0,#3CHJUDGE:DJNZ20H,RETUNTMOV20H,#0AHHUAYANG1:MOVR0,#08HMOVP1,#00HMOVA,#01HLOOP:MOVP1,ALCALLDELAYLCALLDELAYLCALLDELAYRLADJNZR0,LOOPNEXT1:MOVTL0,#0B0HMOVTH0,#3CHJUDGE1:DJNZ20H,NEXT1MOV20H,0AH;允許T1中斷;允許CPU中斷;等待中斷;保護(hù)現(xiàn)場(chǎng);裝入計(jì)數(shù)值低8位;裝入計(jì)數(shù)值高8位;0.5秒未到,返回;重置中斷次數(shù);花樣一;設(shè)置花樣一循環(huán)次數(shù);裝入(本文來(lái)自:小草范文網(wǎng):單片機(jī)定時(shí)器計(jì)數(shù)器實(shí)驗(yàn)報(bào)告)計(jì)數(shù)值低8位;裝入計(jì)數(shù)值高8位;0.5秒未到,返回HUAYANG2:;花樣二MOVR0,#08H;設(shè)置花樣二循環(huán)次數(shù)MOVP1,#0FFHMOVA,#0FEHLOOP1:MOVP1,ALCALLDELAYLCALLDELAYLCALLDELAYRLADJNZR0,LOOP1NEXT2:MOVTL0,#0B0HMOVTH0,#3CHJUDGE2:DJNZ20

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論