一、實(shí)驗(yàn)名稱(chēng) 定時(shí)、計(jì)數(shù)器實(shí)驗(yàn) 二、實(shí)驗(yàn)?zāi)康募耙?/strong> 1.掌握 51 單片機(jī)的定時(shí)/計(jì)數(shù)器工作原理。 2.編程實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能的控制。 三、實(shí)驗(yàn)主要儀器設(shè)備 PC機(jī) 單片機(jī)有 2 個(gè) 16 位的定時(shí)器/計(jì)數(shù)器,分別是 T0 和 T1。它們有兩種工作狀態(tài),可以工作在定時(shí)方式和計(jì)數(shù)方式;定時(shí)是對(duì)內(nèi)部的機(jī)器周期進(jìn)行加法計(jì)數(shù),計(jì)數(shù)是對(duì)外部輸入的計(jì)數(shù)脈沖進(jìn)行加法計(jì)數(shù),T0 的外部計(jì)數(shù)脈沖從 P3.4 引腳輸入,T1 的外部計(jì)數(shù)脈沖從 P3.5 引腳輸入;計(jì)數(shù)滿(mǎn)產(chǎn)生溢出,硬件使定時(shí)器/計(jì)數(shù)器 T0、T1 的中斷請(qǐng)求標(biāo)志 TF0、TF1 置位;如果定時(shí)器、計(jì)數(shù)器允許中斷,則可以采用中斷方式進(jìn)行溢出處理,而如果定時(shí)器/計(jì)數(shù)器不允許中斷,則可以采用查詢(xún)方式進(jìn)行溢出處理。 1.定時(shí)中斷方式 2.計(jì)數(shù)器的應(yīng)用 3.方波 4.蜂鳴器 六、實(shí)驗(yàn)步驟 - 在Keil uVision3中編譯鏈接生成點(diǎn)陣.hex文件
源代碼如下: #include<reg51.h> char i=100; void main(){ TMOD=0x01; TH0=0xee; TL0=0x00; P1=0x00; EA=1; ET0=1; TR0=1; while(1); { ;} } void time0() interrupt 1{ TH0=0xee; TL0=0x00; i--; if(i<=0){ P1=~P1; i=100; } } - 把點(diǎn)陣.hex文件導(dǎo)入仿真電路圖中,結(jié)果如下圖

- 在Keil uVision3中編譯鏈接生成點(diǎn)陣.hex文件
源代碼如下: #include<reg51.h> #define uchar unsigned char #define uint unsigned int void delay(uint i){ uint j; for(;i>0;i--) ; } void main(){ TMOD=0X50; TH1=0XFF; TL1=0XFC; EA=1; ET1=1; TR1=1; while(1) ; } void T1_int(void) interrupt 3{ for(;;){ P1=0XFF; delay(500); P1=0; delay(500); } } - 把點(diǎn)陣.hex文件導(dǎo)入仿真電路圖中,結(jié)果如下圖

|