《單片機(jī)通信》項(xiàng)目三修改_第1頁(yè)
《單片機(jī)通信》項(xiàng)目三修改_第2頁(yè)
《單片機(jī)通信》項(xiàng)目三修改_第3頁(yè)
《單片機(jī)通信》項(xiàng)目三修改_第4頁(yè)
《單片機(jī)通信》項(xiàng)目三修改_第5頁(yè)
已閱讀5頁(yè),還剩94頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)原理及應(yīng)用文樺項(xiàng)目三簡(jiǎn)易加減計(jì)數(shù)器和交通信號(hào)燈設(shè)計(jì)任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)1.技能要求單片機(jī)輸出口接3位數(shù)碼管和三個(gè)獨(dú)立按鍵,這3位數(shù)碼管分別顯示一個(gè)變量的個(gè)位、十位和百位,三個(gè)按鍵分別作為“加”、“減”和“清零”功能,當(dāng)按下“加”鍵時(shí),數(shù)碼管顯示的變量加1,當(dāng)按下“減”鍵時(shí),數(shù)碼管顯示的變量減1,當(dāng)按下“清零”鍵時(shí),數(shù)碼管顯示和變量為0。知識(shí)鏈接一鍵盤接口電路獨(dú)立聯(lián)接式無編碼鍵盤

獨(dú)立聯(lián)接式編碼鍵盤

1、鍵盤的分類與結(jié)構(gòu)◆獨(dú)立聯(lián)接式鍵盤◆矩陣聯(lián)接式鍵盤◆屏幕鍵盤(觸摸屏)◆無編碼鍵盤◆編碼鍵盤無編碼,簡(jiǎn)單有效,鍵數(shù)較少時(shí)采用編碼,節(jié)省I/O口線,鍵數(shù)較多時(shí)采用任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)1.鍵盤的工作原理及去抖動(dòng)

對(duì)應(yīng)任何按鍵來說,由于機(jī)械觸點(diǎn)的彈性作用,觸點(diǎn)在閉合和斷開瞬間的電接觸情況不穩(wěn)定,造成了電壓信號(hào)的抖動(dòng)現(xiàn)象,如圖所示。按鍵的抖動(dòng)時(shí)間一般為5ms~10ms。這種現(xiàn)象會(huì)引起單片機(jī)對(duì)于一次鍵操作進(jìn)行多次處理,因此必須設(shè)法消除鍵接通或斷開時(shí)的抖動(dòng)現(xiàn)象。常用的去抖動(dòng)方法有硬件和軟件兩種。閉合穩(wěn)定理想波形實(shí)際波形前沿抖動(dòng)后沿抖動(dòng)任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)a)硬件去抖硬件消抖可以采用R-S觸發(fā)器或單穩(wěn)電路構(gòu)成去抖電路,分別如圖所示。硬件消抖因?yàn)橐黾佑布_銷,造成電路復(fù)雜,除了在數(shù)字電路里使用外,在單片機(jī)系統(tǒng)中不太采用。任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)

b)軟件去抖在檢測(cè)到有鍵按下時(shí),執(zhí)行一個(gè)10ms的延時(shí)程序后,再確認(rèn)該鍵是否保持閉合狀態(tài)。另外一種方法是連續(xù)判斷按鍵所在線路的電平,如果連續(xù)100次(甚至更多)都出現(xiàn)低電平(一般按鍵都是低電平表示按下),就認(rèn)為按鍵已經(jīng)穩(wěn)定,可以進(jìn)行識(shí)別,這是企業(yè)實(shí)際開發(fā)產(chǎn)品中常用的方法。以P1.0所接按鍵為例,其編程流程圖如圖所示.

任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)sbitkey=P1^0;key=1; //P1.0置“1”,作輸入口if(key==0) //判斷按鍵是否按下{delay10ms();//延時(shí)10msif(key==0)//再次判斷按鍵是否按下{a++;//按鍵功能代碼(變量a加“1”操作)while(key==0);//等待按鍵釋放 }}任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)

以單片機(jī)為基礎(chǔ)的電子產(chǎn)品設(shè)計(jì)中,鍵盤是一種最為常見的人機(jī)交互設(shè)備。通常,鍵數(shù)較少、鍵盤的功能簡(jiǎn)單。1.簡(jiǎn)單鍵盤的掃描程序設(shè)計(jì)

★鍵盤掃描程序嵌入到主程序循環(huán)之中,與主程序一起構(gòu)成主循環(huán)套。

★鍵敲擊速度約幾次/S,設(shè)計(jì)鍵盤掃描程序時(shí),必須保證約100mS內(nèi)就要循環(huán)掃描1次。任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)任務(wù)1

簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)讀取值輸出值鍵碼鍵名P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.011101110EEH1#11011110DEH2#10111110BEH3#011111107EH4#11101101EDH5#11011101DDH6#10111101BDH7#011111017DH8#11101011EBH9#11011011DBH10#10111011BBH11#011110117BH12#11100111E7H13#11010111D7H14#10110111B7H15#0111011177H16#1111××××F×H無鍵

按鍵數(shù)量進(jìn)一步增加時(shí),采用矩陣聯(lián)接式鍵盤可節(jié)省更多的口線,接口電路也更簡(jiǎn)單。1.1.2矩陣連接鍵盤鍵盤掃掃描程程序的的編寫寫(1)判別有有無鍵鍵按下下。(2)延時(shí)。。(3)鍵盤掃掃描取取得閉閉合鍵鍵的行行、列列值--鍵值。(4)用計(jì)算算法或或查表表法得得到鍵號(hào)。*(5)判斷閉閉合鍵鍵是否否釋放放,如如沒釋釋放則則繼續(xù)續(xù)等待待。(6)將閉合合鍵鍵號(hào)保存,然后返返回。。鍵盤掃掃描程程序一一般流流程::任務(wù)1簡(jiǎn)易加減計(jì)計(jì)數(shù)器器的設(shè)計(jì)計(jì)矩陣式式鍵盤盤的工工作原原理當(dāng)鍵盤盤有鍵鍵按下下時(shí),,要逐逐行或或逐列列掃描描,以以判斷斷是哪哪一個(gè)個(gè)鍵按按下。。通常常掃描描方式式有兩兩種::掃描描法和和反轉(zhuǎn)轉(zhuǎn)法。。任務(wù)1簡(jiǎn)易加減計(jì)計(jì)數(shù)器器的設(shè)計(jì)計(jì)矩陣連連接鍵鍵盤掃掃描知識(shí)鏈鏈接二二:數(shù)數(shù)碼管管顯示示技術(shù)術(shù)任務(wù)1簡(jiǎn)易加減計(jì)計(jì)數(shù)器器的設(shè)計(jì)計(jì)1.2.1七段LED顯示器器通常的7段LED顯示塊中有有8個(gè)發(fā)光二極極管,故也也叫做8段顯示器。。其中7個(gè)發(fā)光二極極管構(gòu)成七七筆字形““8”,一個(gè)發(fā)發(fā)光二極管管構(gòu)成小數(shù)數(shù)點(diǎn)。1.LED顯示器的結(jié)結(jié)構(gòu)與原理理任務(wù)1簡(jiǎn)易加減計(jì)數(shù)器器的設(shè)計(jì)2.LED顯示器的顯顯示方式(1)LED靜態(tài)顯示方方式每一位顯顯示都占占用單獨(dú)獨(dú)的具有有鎖存功功能的I/O接口,com端連接在在一起。。(2)LED動(dòng)態(tài)顯示示方式是將所有有數(shù)碼管管的“a,b,c,d,e,f,g,dp”的同名端端連在一一起,每個(gè)數(shù)碼碼管的COM為各自獨(dú)獨(dú)立的位位選信號(hào)號(hào)。即在某一一時(shí)刻,,只讓某某一位的的位選線線處于選選通狀態(tài)態(tài),而其其他各位位的位選選線處于于關(guān)閉狀狀態(tài)。任務(wù)1簡(jiǎn)易加減計(jì)數(shù)數(shù)器的設(shè)計(jì)顯示器由由6個(gè)共陰極極LED數(shù)碼管構(gòu)構(gòu)成;P0口輸出顯顯示段碼碼,經(jīng)由由一片74LS245驅(qū)動(dòng)輸出出給LED管;P1口輸出位位碼(片片選),,經(jīng)由74LS05輸出給LED管。動(dòng)態(tài)掃描描過程任務(wù)1簡(jiǎn)易加減計(jì)數(shù)數(shù)器的設(shè)計(jì)首先從段段選線上上送出字字型編碼碼,再控控制位選選端,字字符就顯顯示在指指定數(shù)碼碼管上,,其他位位選端無無效的數(shù)數(shù)碼管都都處于熄熄滅狀態(tài)態(tài),持續(xù)續(xù)1.5ms時(shí)間,然然后關(guān)閉閉所有顯顯示;接下來又又送出新新的字型型編碼,,按照上上述過程程又顯示示在另外外一位數(shù)數(shù)碼管上上,直到到每一位位數(shù)碼管管都掃描描完為止止,這一過程程即為動(dòng)動(dòng)態(tài)掃描描顯示。數(shù)碼管其其實(shí)是輪輪流依次次點(diǎn)亮的的,但由由于人的視覺覺駐留效效應(yīng),因此當(dāng)每每個(gè)數(shù)碼碼管點(diǎn)亮亮的時(shí)間間小到一一定程度度時(shí),人人就感覺覺不出字字符的移移動(dòng)或閃閃爍,覺覺得每位位數(shù)碼管管都一直直在顯示示,達(dá)到到一種穩(wěn)穩(wěn)定的視視覺效果果。任務(wù)1簡(jiǎn)易加減計(jì)數(shù)數(shù)器的設(shè)計(jì)參考程序序如下::#include<reg51.h>unsignedcharcodeTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C};unsignedcharcodeCol[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};voidDelay(){unsignedchari;for(i=0;i<250;i++);}voidmain()//同時(shí)顯示示123456{unsignedcharj;while(1){for(j=1;j<7;j++){P0=Tab[j];P1=Col[j-1];//開第一個(gè)個(gè)(共陰陰)數(shù)碼碼管Delay();P1=0xff;//關(guān)數(shù)碼管管Delay();}}}任務(wù)1簡(jiǎn)易加減計(jì)數(shù)數(shù)器的設(shè)計(jì)1.3數(shù)碼管顯顯示4×4鍵盤編號(hào)號(hào)1.技能要求求單片機(jī)P2接1位數(shù)碼管管,P1口接由16個(gè)按鍵組組成的4×4行列鍵盤盤。當(dāng)按按下這16個(gè)按鍵的的其中之之一時(shí),,數(shù)碼管管顯示該該按鍵對(duì)對(duì)應(yīng)的鍵鍵盤編號(hào)號(hào)。任務(wù)1簡(jiǎn)易加減計(jì)數(shù)數(shù)器的設(shè)計(jì).仿真電路路圖數(shù)碼管顯顯示4×4鍵盤編號(hào)號(hào)的電路路圖如下圖所示,電電路中的的輕觸按按鍵使用用元件庫(kù)庫(kù)中的““button””元件,特特別注意16個(gè)按鍵的的連接關(guān)關(guān)系及其其和單片片機(jī)之間間的連接接關(guān)系。。任務(wù)務(wù)1簡(jiǎn)易易加減減計(jì)計(jì)數(shù)數(shù)器器的設(shè)設(shè)計(jì)計(jì).程序序設(shè)設(shè)計(jì)計(jì)與與調(diào)調(diào)試試程序序采采用用線線翻翻轉(zhuǎn)轉(zhuǎn)法法識(shí)識(shí)別別閉閉合合鍵鍵,,反轉(zhuǎn)轉(zhuǎn)法法原原理理::行作作低低電電平平輸輸出出,,列列作作輸輸入入,,讀讀列列線線;;列列作作低低電電平平輸輸出出,,行行作作輸輸入入,,讀讀行行線線。。數(shù)數(shù)碼碼管管靜靜態(tài)態(tài)顯顯示示方方式式。。任務(wù)務(wù)1簡(jiǎn)易易加減減計(jì)計(jì)數(shù)數(shù)器器的設(shè)設(shè)計(jì)計(jì)intmain(){while(1){keyScan();}}}}delay(unsignedinti){while(i--);}voidkeyScan(){unsignedchartemp,a;temp=0xff;P1=0xf0;if(P1!=0xf0)//判斷斷是是否否有有按按鍵鍵按按下下{delay(1000);//延時(shí)時(shí)去去抖抖if(P1!=0xf0)//再次次判判斷斷是是否否有有按按鍵鍵按按下下{P1=0xf0;//行作作輸輸出出,,列列作作輸輸入入temp=P1;//讀取取列列值值P1=0x0f;//列作作輸輸出出,,行行作作輸輸入入temp=temp|P1;//讀取取行行值值并并和和列列值值合合并并switch(temp){case0xee:a=0;break;case0xde:a=1;break;case0xbe:a=2;break;case0x7e:a=3;break;參考程序如下下:#include<reg51.h>unsignedcharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//09的段碼0x88,0x83,0xc6,0xa1,0x86,0x8e};//A~F的段碼case0xed:a=4;break;case0xdd:a=5;break;case0xbd:a=6;break;case0x7d:a=7;break;case0xeb:a=8;break;case0xdb:a=9;break;case0xbb:a=10;break;case0x7b:a=11;break;case0xe7:a=12;break;case0xd7:a=13;break;case0xb7:a=14;break;case0x77:a=15;break;}P2=seg[a];//將鍵值對(duì)對(duì)應(yīng)的段碼送送到P2口P1=0xf0;while(P1!=0xf0)delay(50);}}}任務(wù)1簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)(1)畫出硬件電電路圖簡(jiǎn)易加減計(jì)數(shù)器任務(wù)實(shí)施:任務(wù)1簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)(2).程序設(shè)計(jì)與調(diào)調(diào)試要獲取一個(gè)變變量的每一位位數(shù)字的值,,用到除法運(yùn)運(yùn)算符“/”和模運(yùn)算符“%”兩個(gè)算術(shù)運(yùn)算算符。當(dāng)兩個(gè)個(gè)整數(shù)作除法法運(yùn)算時(shí)結(jié)果果仍為整數(shù),,余數(shù)則會(huì)被被丟棄,因此此可作為取整整操作;模運(yùn)運(yùn)算“%”表示取余操作作。例如,求一個(gè)個(gè)變量temp的“百、十、個(gè)”位,分別賦給給變量a、b、c的操作如下::a=temp/100%10;//除以100,再對(duì)10取余余b=temp/10%10;//求得temp的十位c=temp%10;//求得temp的個(gè)位要在LED數(shù)碼管上顯示示變量temp的“百、十、個(gè)”位,可直接寫寫作:P2=seg[temp/100%10];P2=seg[temp/10%10];P2=seg[temp%10];其中seg[]是存放0~9段碼的數(shù)組。。任務(wù)1簡(jiǎn)易加減計(jì)數(shù)器的設(shè)計(jì)#include<reg51.h>#include<INTRINS.H>unsignedchara;unsignedcharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9十個(gè)數(shù)字的共共陽(yáng)型段碼sbitk1=P1^0;sbitk2=P1^2;sbitk3=P1^4;voiddelay(unsignedintj){while(j--);}display(){unsignedchari,wk=0x01;//wk變變量作作位控控,初初始選選通右右邊第第1位unsignedcharbuf[3];//聲聲明數(shù)數(shù)碼管管顯示示字形形緩沖沖數(shù)組組buf[0]=seg[a%10];//a的個(gè)個(gè)位buf[1]=seg[a/10%10];//a的的十位位buf[2]=seg[a/100];//a的的百位位,小小于999時(shí)可以以不對(duì)對(duì)10取余獨(dú)立按按鍵控控制數(shù)數(shù)碼管管加減減計(jì)數(shù)數(shù)的程程序如如下::任務(wù)1簡(jiǎn)易加減計(jì)計(jì)數(shù)器器的設(shè)計(jì)計(jì)for(i=0;i<3;i++){P3=wk;//輸出位位控P2=buf[i];//依次輸輸出段段碼delay(50);//延時(shí)wk=_crol_(wk,1);//位控左左移一一位P2=0xff;//熄滅所所有數(shù)數(shù)碼管管(消消隱))}}voidbutton(){k1=1;if(k1==0){delay(1000);if(k1==0){a++;while(k1==0)display();}}k2=1;if(!k2)//如果果k2為低電電平的的另一一種寫寫示{delay(1000);if(!k2){a--;while(!k2)display();}}k3=1;if(k3==0){delay(1000);if(k3==0){a=0;while(k3==0)display();}}}}intmain(){while(1){button();display();}}26任務(wù)3方波發(fā)發(fā)生器器的設(shè)設(shè)計(jì)1.技能要要求設(shè)晶振振頻率率6MHz。利用用單片片機(jī)定定時(shí)器器T0的方式式1,在P3.0端口上上輸出出周期期為1ms的方波波。2.仿真電電路圖圖本任務(wù)務(wù)仿真真電路路圖如如圖所所示。。P3.0端口的的示波波器用用于觀觀察波波形和和計(jì)算算信號(hào)號(hào)頻率率。圖圖中示示波器器的每每小格格為0.1ms,因此此信號(hào)號(hào)周期期為1ms,頻率率為1KHz。操作步步驟::圖中右右上角角的就就是模模擬示示波器器,4蹤。仿真時(shí)時(shí)可以以出現(xiàn)現(xiàn)示波波器界界面,,可以以對(duì)其其操作作。操作方方法與與一般般示波波器相相同。。圖中最最下部部的是是個(gè)頻頻率計(jì)計(jì),運(yùn)運(yùn)行仿仿真時(shí)時(shí)可以以顯示示測(cè)量量到的的方波波的頻頻率值值。添加這這2個(gè)虛擬擬儀器器的方方法是是,在軟件件左邊邊點(diǎn)擊擊虛擬擬儀器器圖標(biāo)標(biāo),選選擇第第一個(gè)個(gè)就是是虛擬擬示波波器,,第三三個(gè)就就是頻頻率計(jì)計(jì)。把虛擬擬示波波器的的輸入入端接接到P2口的任任意引引腳,,虛擬擬頻率率計(jì)也也可以以將輸輸入端端接入入P2口任意意引腳腳。在這幅幅圖里里,采采用網(wǎng)網(wǎng)絡(luò)標(biāo)標(biāo)號(hào)的的形式式接線線,看看起來來圖面面整潔潔一點(diǎn)點(diǎn)。任務(wù)3方波發(fā)發(fā)生器器的設(shè)設(shè)計(jì)采用查查詢方方式處處理的的程序序:#include<reg52.h>sbitP3_0=P3^0;voidmain(){TMOD=0x01;TL0=0x06;TH0=0xff;TR0=1;while(1){while(!TF0);TF0=0;P3_0=~P3_0;}}頻率為1KHz的方波波,其周周期為1/1KHz,,即1ms。要要在P3.0端端口上輸輸出周期期為1ms的方方波,需需要使P3.0端口每每隔0.5ms取反一一次。我我們可以以通過定定時(shí)器作作0.5ms定定時(shí),定定時(shí)時(shí)間間到,在在程序中中對(duì)P3.0取取反。(1)確確定工作作模式和和工作方方式定時(shí)器T0工作作方式1時(shí):M1M0=01,c/T=0,GATE=0,,高4位位未使用用,全部部賦0,,則TMOD=0x01。(2)計(jì)計(jì)算0.5ms定時(shí)T0的初初值。晶振頻率率6MHz,則則機(jī)器周周期為2μs,,設(shè)T0的初值值為X,,則:X=(216--500÷2))=65036=FF06H因此,TH0的的初值為為0xff,TL0的的初值為為0x06。3.程程序設(shè)計(jì)計(jì)與調(diào)試試任務(wù)3方波發(fā)生生器的設(shè)設(shè)計(jì)相關(guān)知識(shí):利用定時(shí)器實(shí)現(xiàn)延時(shí)

8051單片機(jī)內(nèi)內(nèi)部有兩兩個(gè)16位的可編編程定時(shí)時(shí)器/計(jì)數(shù)器,,稱為定定時(shí)器0(T0)和定時(shí)時(shí)器1(T1),可編編程選擇擇其作為為定時(shí)器器用或作作為計(jì)數(shù)數(shù)器用。。8051定時(shí)器/計(jì)數(shù)器由由定時(shí)器器T0、定時(shí)器器T1、定時(shí)器器方式寄寄存器TMOD和定時(shí)器器控制寄寄存器TCON組成。TMOD、TCON與T0、T1間通過內(nèi)內(nèi)部總線線及邏輯輯電路連連接,TMOD用于設(shè)置置定時(shí)器器的工作作方式,,TCON用于控制制定時(shí)器器的啟動(dòng)動(dòng)與停止止?;舅枷胂耄好扛?ms在程序中中對(duì)P3.0取反,如此循環(huán)不不止。任務(wù)3方波發(fā)生生器的設(shè)設(shè)計(jì)定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)如圖6-1所示,定定時(shí)器/計(jì)數(shù)器T0由特殊功功能寄存存器TH0、TL0構(gòu)成,定定時(shí)器/計(jì)數(shù)器T1由特殊功功能寄存存器TH1、TL1構(gòu)成。30圖6-1AT89S51單片機(jī)的的定時(shí)器器/計(jì)數(shù)器結(jié)結(jié)構(gòu)框圖圖定時(shí)器/計(jì)數(shù)器的的結(jié)構(gòu)1.計(jì)數(shù)功能能計(jì)數(shù)器用用于統(tǒng)計(jì)計(jì)從TO(P3.4)和Tl(P3.5)兩個(gè)引腳腳輸入脈脈沖的負(fù)負(fù)跳變數(shù)數(shù)量。負(fù)跳變是是指前一一個(gè)機(jī)器器周期采采樣為高高電平,,后一個(gè)個(gè)機(jī)器周周期為低低電平。。每輸入入一個(gè)脈脈沖負(fù)跳跳變,計(jì)計(jì)數(shù)器加加1。輸入脈沖沖的高電電平與低低電平至至少應(yīng)保保持一個(gè)個(gè)機(jī)器周周期時(shí)間間,以確確保正確確采樣,因此輸輸入脈沖沖的頻率率最高為為單片機(jī)機(jī)內(nèi)部脈脈沖頻率率的一半半。如果果內(nèi)部脈脈沖頻率率為1MHZ,則最高高計(jì)數(shù)頻頻率為0.5MHz。DATE:2022/12/8PAGE:31定時(shí)器/計(jì)數(shù)器的的功能2.定時(shí)功能能定時(shí)功能能是單片片機(jī)通過過對(duì)內(nèi)部部機(jī)器脈脈沖信號(hào)號(hào)計(jì)數(shù)實(shí)實(shí)現(xiàn)的,,計(jì)數(shù)值值乘以機(jī)機(jī)器周期期就是相相應(yīng)的時(shí)時(shí)間。例如,如如果單片片機(jī)采用用12MHz的晶振,,則機(jī)器器內(nèi)部脈脈沖頻率率為1MHz,則機(jī)器器周期為為1us,若共計(jì)計(jì)數(shù)1000,則用時(shí)時(shí)為1ms時(shí)間。DATE:2022/12/8PAGE:32定時(shí)器/計(jì)數(shù)器的的功能圖5-1TMOD格式8位分為兩兩組,高4位控制T1,低4位控制T0。TMOD各位的功功能。(1)GATE————門控位。0:僅由運(yùn)行行控制位位TRx(x=

0,1)來控制制定時(shí)器器/計(jì)數(shù)器運(yùn)運(yùn)行。1:用外中斷斷引腳((或))上的的電平與與運(yùn)行控控制位TRx共同來控控制定時(shí)時(shí)器/計(jì)數(shù)器運(yùn)運(yùn)行。33工作方式式控制寄寄存器TMOD(2)M1、M0——工作方式式選擇位位M1、M0共有4種編碼,對(duì)應(yīng)于于4種工作方方式的選擇,,如表所示。(3)C/—計(jì)數(shù)器模模式和定定時(shí)器模模式選擇擇位34工作方式式控制寄寄存器TMOD0:為定定時(shí)器工工作模式式;1::為計(jì)數(shù)數(shù)器工作作模式,,計(jì)數(shù)器器對(duì)外部部輸入引引腳T0(P3.4))或T1(P3.5))的外部部脈沖((負(fù)跳變變)計(jì)數(shù)數(shù)。35定時(shí)器/計(jì)數(shù)器的的4種工作方方式1方式0M1、M0=00時(shí),被設(shè)設(shè)置為工工作方式式0,等效邏邏輯結(jié)構(gòu)構(gòu)框圖如如圖6-4所示(以以定時(shí)器器/計(jì)數(shù)器T1為例,TMOD.5、MOD.4=

00)?!居?xùn)練1】T0方式式0定時(shí)時(shí)設(shè)fosc=6Mhz,定時(shí)時(shí)器/計(jì)計(jì)數(shù)器T0以工工作方式式0定時(shí)時(shí)2ms,編寫寫初始化化程序。。說明:fosc即為晶晶振頻率率。首先計(jì)算計(jì)計(jì)數(shù)初值。。根根據(jù)公式式4-2有有:定時(shí)時(shí)間=(8192-計(jì)數(shù)數(shù)初值)××12/fosc計(jì)數(shù)初值=8192-定時(shí)時(shí)時(shí)間×fosc/12=8192-2000×6Mhz/12=7192=1C18H=1110000011000B將此二進(jìn)制制數(shù)補(bǔ)足13位數(shù)((不夠13位前面加加0,這個(gè)個(gè)例子夠了了,不用補(bǔ)補(bǔ)),將高高8位送給給TH0,,將低5位位送TL0即可。定時(shí)器/計(jì)數(shù)器的4種工作方式式1方式0高8位是::11100000B=E0H,送給TH0低5位是::11000B=00011000B=18H送送給TL02方式1當(dāng)M1、M0=01時(shí),定時(shí)器器/計(jì)數(shù)器工作作于方式1,這時(shí)定時(shí)時(shí)器/計(jì)數(shù)器的等等效電路邏邏輯結(jié)構(gòu)如如圖5-3所示。方式1和方式0的差別僅僅在于計(jì)數(shù)器的位位數(shù)不同,方式式1為16位計(jì)數(shù)器,由THx高8位和TLx低8位構(gòu)成(x=

0,1),方式0則為13位計(jì)數(shù)器,,有關(guān)控制制狀態(tài)位的的含義(GATE、C/、TFx、TRx)與方式0相同。定時(shí)器/計(jì)數(shù)器的4種工作方式式38圖6-3定時(shí)器/計(jì)數(shù)器方式式1邏輯結(jié)構(gòu)框框圖定時(shí)器/計(jì)數(shù)器的4種工作方式式實(shí)例6-2欲采用8051單片機(jī)控制制8個(gè)LED同時(shí)以1s為周期閃爍爍,設(shè)計(jì)電電路原理圖圖并編寫程程序。DATE:2022/12/8PAGE:39設(shè)置置定定時(shí)時(shí)/計(jì)數(shù)器的的過程::1)先初始始化工作作方式寄寄存器TMOD2)為定時(shí)/計(jì)數(shù)器賦賦初值3)通過控制制寄存器器TCON中的TRO或TRl實(shí)現(xiàn)啟動(dòng)動(dòng)或停止止。定時(shí)器/計(jì)數(shù)器的的4種工作方方式#include<reg51.h>//將8051單片機(jī)頭頭文件包包含到文文件中main(void){unsignedcharcounter;//設(shè)置無符符號(hào)字符符型變量量,存儲(chǔ)儲(chǔ)定時(shí)器器中斷次次數(shù)。TMOD=0x01;//設(shè)T0為定時(shí)模模式,由由TR0控制啟動(dòng)動(dòng)和停止止,且工工作于方方式1TH0=(65536-46083)/256;//初始化T0的高8位TL0=(65536-46083)%256;//初始化T0的低8位TF0=0;//初始化定定時(shí)器溢溢出標(biāo)志志P0=0xff;//關(guān)閉LEDcounter=0;//從0開始計(jì)數(shù)數(shù)TR0=1;//啟動(dòng)定時(shí)時(shí)器0while(1){while(TF0==1)//如果定時(shí)時(shí)器溢出出{counter++;//計(jì)時(shí)次數(shù)數(shù)加1if(counter==20)//計(jì)時(shí)時(shí)間間達(dá)到1s{P0=~P0;//P0所有位取取反,使使LED閃爍counter=0;//重新從0開始計(jì)數(shù)數(shù)}TH0=(65536-46083)/256;//重新初始始化T0的高8位TL0=(65536-46083)%256;//重新初始始化T0的低8位TF0=0;//重新初始始化定時(shí)時(shí)器溢出出標(biāo)志}}}DATE:2022/12/8PAGE:40定時(shí)器/計(jì)數(shù)器的的4種工作方方式3方式2方式0和方式1的最大特特點(diǎn)是計(jì)計(jì)數(shù)溢出出后,計(jì)計(jì)數(shù)器為為全0。因此在在循環(huán)定定時(shí)或循循環(huán)計(jì)數(shù)數(shù)應(yīng)用時(shí)時(shí)就存在用指指令反復(fù)復(fù)裝入計(jì)計(jì)數(shù)初值值的問題。這不僅影影響定時(shí)時(shí)精度,,也給程程序設(shè)計(jì)計(jì)帶來麻麻煩。方方式2就是針針對(duì)此此問題題而設(shè)設(shè)置的的。當(dāng)M1、M0為10時(shí),定定時(shí)器器/計(jì)數(shù)器器處于于工作作方式式2,這時(shí)時(shí)定時(shí)時(shí)器/計(jì)數(shù)器器的等等效邏邏輯結(jié)結(jié)構(gòu)如如圖6-6所示(以定定時(shí)器器T1為例,,x=1)。定時(shí)器器/計(jì)數(shù)器器的4種工作作方式式4方式3是為增加一一個(gè)8位定時(shí)時(shí)器/計(jì)數(shù)器器而設(shè),,使AT89S51單片機(jī)機(jī)具有有3個(gè)定時(shí)器器/計(jì)數(shù)器器。方式3只適用用于T0,T1不能工工作在在方式式3。T1處于方方式3時(shí)相當(dāng)當(dāng)于TR1=0,停止止計(jì)數(shù)數(shù)(此此時(shí)T1可用來來作為為串行行口波波特率率產(chǎn)生生器))。1.工作作方式式3下的T0TMOD的低2位為11時(shí),T0的工作作方式式被選選為方方式3,各引腳與與T0的邏輯關(guān)系系如圖5-8所示。定時(shí)器/計(jì)數(shù)器T0分為兩個(gè)獨(dú)獨(dú)立的8位計(jì)數(shù)器TL0和TH0,TL0使用T0的狀態(tài)控制制位C/、GATE、TR0、42定時(shí)器/計(jì)數(shù)器的4種工作方式式43圖6-6定時(shí)器/計(jì)數(shù)器方式式2邏輯結(jié)構(gòu)框框圖定時(shí)器/計(jì)數(shù)器的4種工作方式式TF0,而TH0被固定為一個(gè)個(gè)8位定時(shí)器(不能作為為外部計(jì)數(shù)數(shù)模式),,并使用定定時(shí)器T1的狀態(tài)控制制位TR1和TF1,同時(shí)占用用定時(shí)器T1的中斷請(qǐng)求求源TF1。2.T0工作在方式式3時(shí)T1的各種工作作方式一般情況下下,當(dāng)T1用作串行口口的波特率率發(fā)生器時(shí)時(shí),T0才工作在方方式3。T0處于工作方方式3時(shí),T1可定為方式式0、方式1和方式2,用來作為為串行口的的波特率發(fā)發(fā)生器,或或不需要中中斷的場(chǎng)合合。定時(shí)器/計(jì)數(shù)器的4種工作方式式45圖6-8定時(shí)器/計(jì)數(shù)器T0方式3的邏輯結(jié)構(gòu)構(gòu)框圖定時(shí)器/計(jì)數(shù)器的4種工作方式式M1、M0——工作方式選選擇位M1、M0共有4種編碼,對(duì)應(yīng)于4種工作方式式的選擇,如如表所示。464種工作方方式總結(jié)字節(jié)地址為為88H,可位尋址址,位地址址為88H~8FH。格式如圖5-3所示。定時(shí)器/計(jì)計(jì)數(shù)器控制制寄存器TCON(1)TF1、TF0——計(jì)數(shù)溢出標(biāo)標(biāo)志位。當(dāng)計(jì)數(shù)器計(jì)計(jì)數(shù)溢出時(shí)時(shí),該位置置“1”。使用中中斷方式時(shí)時(shí),此位作作為中斷請(qǐng)請(qǐng)求標(biāo)志位位,進(jìn)入中中斷服務(wù)程程序后由硬硬件自動(dòng)清清“0”。(2)TR1、TR0——計(jì)數(shù)運(yùn)行控控制位。TR1位(或TR0位)=

1,啟動(dòng)定時(shí)時(shí)器/計(jì)數(shù)器工工作的必必要條件件。TR1位((或TR0位))

=0,停停止定時(shí)時(shí)器/計(jì)計(jì)數(shù)器工工作。該該位可由由軟件置置“1””或清““0”。。例5-1:設(shè)定時(shí)時(shí)器1為定時(shí)工工作方式式,按方方式2工作,定定時(shí)器0為計(jì)數(shù)方方式,按按方式1工作,均均由程序序單獨(dú)控控制啟動(dòng)動(dòng)和停止止,請(qǐng)給給出TMOD控制字。。解:定時(shí)器1做定時(shí)器器使用則則D6=0;按方式2工作則D5=1,D4=0;由程序單單獨(dú)控制制啟停則則D7=0。定時(shí)器0做計(jì)數(shù)器器使用則則D2=1;按方式1工作則D0=0,D1=1;由程序單單獨(dú)控制制啟停則則D3=0。因此命令令字TMOD的值應(yīng)為為00100101B,即25H。DATE:2022/12/8PAGE:48定時(shí)器/計(jì)數(shù)器器控制定時(shí)/計(jì)數(shù)數(shù)器器的的控控制制實(shí)例例6-3圖6-4是產(chǎn)產(chǎn)品品包包裝裝生生產(chǎn)產(chǎn)線線的的計(jì)計(jì)數(shù)數(shù)系系統(tǒng)統(tǒng),,每每個(gè)個(gè)產(chǎn)產(chǎn)品品經(jīng)經(jīng)過過計(jì)計(jì)數(shù)數(shù)裝裝置置時(shí)時(shí)由由機(jī)機(jī)械械桿桿碰碰合合按按鍵鍵S1一次次。。當(dāng)當(dāng)?shù)诘谝灰淮未斡?jì)計(jì)滿滿一一包包(5個(gè))則D1亮,,計(jì)計(jì)滿滿第第二二包包則則D2亮…,計(jì)計(jì)滿滿第第八八包包則則D1~D8全亮亮,,八八包包包包裝裝成成一一箱箱,,此此后后重重復(fù)復(fù)以以上上過過程程。。編編寫寫程程序序?qū)崒?shí)現(xiàn)現(xiàn)此此功功能能。。DATE:2022/12/8PAGE:49解:程序如如下:#include<reg51.h>//包含51單片機(jī)寄存存器定義的的頭文件unsignedcharcounter;//計(jì)數(shù)初值main(void){TMOD=0x60;//使用T1的工作方式式2TH1=256-5;//T1的高8位賦初值TL1=256-5;//T1的低8位賦初值counter=0;TR1=1;//啟動(dòng)T1while(1){while(TF1==1)//如果計(jì)滿{TF1=0;//計(jì)數(shù)器溢出后后,將TF1清0counter++;//計(jì)數(shù)加1DATE:2022/12/8PAGE:505.3定時(shí)/計(jì)數(shù)器的控制制switch(counter)//檢查中斷計(jì)數(shù)數(shù)值{case1:P0=0xfe;break;//則第1個(gè)燈亮case2:P0=0xfd;break;//第2個(gè)燈亮case3:P0=0xfb;break;//第3個(gè)燈亮case4:P0=0xf7;break;//第4個(gè)燈燈亮亮case5:P0=0xef;break;//第5個(gè)燈燈亮亮case6:P0=0xdf;break;//第6個(gè)燈燈亮亮case7:P0=0xbf;break;//第7個(gè)燈燈亮亮case8:P0=0x00;counter=0;break;//8個(gè)燈燈全全亮亮}}}}DATE:2022/12/8PAGE:515.3定時(shí)時(shí)/計(jì)數(shù)數(shù)器器的的控控制制東西方向

信號(hào)

綠燈亮綠燈關(guān)閉黃燈閃亮

紅燈亮

時(shí)間

20S

2S5次共2S

22S南北方向

信號(hào)

紅燈亮

綠燈亮綠燈關(guān)閉黃燈閃亮

時(shí)間

22S

20S2S

5次共2S任務(wù)務(wù)4十字字路路口口交交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)系統(tǒng)統(tǒng)控控制制要要求求如如下下::(1)正正常常情情況況下下,,首首先先東東西西方方向向綠綠燈燈亮亮,,南南北北方方向向紅紅燈燈亮亮20s;經(jīng)經(jīng)過過后后南南北北方方向向綠綠燈燈亮亮,東西西方方向向紅紅燈燈亮亮20s。(2)黃燈5次閃爍爍綠燈滅滅2s,之之后后重重復(fù)復(fù)((1)((2)。。任務(wù)務(wù)4十字字路路口口交交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)任務(wù)務(wù)4十字字路路口口交交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)任務(wù)務(wù)4十字字路路口口交交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)1)對(duì)對(duì)TMOD賦值值,,確確定定工工作作方方式式。。TMOD為T1、T2的工工作作方方式式寄寄存存器器任務(wù)務(wù)4十字字路路口口交交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)T1控制制T0控制制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7TMOD(89H)

TMOD=0

0

01

0000

軟件啟動(dòng)定時(shí)方式1T0未使用∴TMOD賦值值為為10H1.采采用用定定時(shí)時(shí)器器設(shè)設(shè)計(jì)計(jì)一一個(gè)個(gè)0.5秒秒的的延延時(shí)時(shí)子子程程序序2)預(yù)預(yù)置置定定時(shí)時(shí)器器初初值值X,將將初初值值寫寫入入TH1、TL1中。。初值值X=最大大計(jì)計(jì)數(shù)數(shù)值值-計(jì)數(shù)數(shù)次次數(shù)數(shù)若fosc=12MHZ,在在方方式式1中,,定定時(shí)時(shí)器器T1的最最大大計(jì)計(jì)數(shù)數(shù)值值為為65536,而而定定時(shí)時(shí)50ms需要要完完成成50000次計(jì)計(jì)數(shù)數(shù)。。由由此此可可計(jì)計(jì)算算出出計(jì)計(jì)數(shù)數(shù)器器的的初初始始值值。。初值值X=65536-50000=15536D=3CB0H任務(wù)務(wù)4十字字路路口口交交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)3)啟動(dòng)定定時(shí)/計(jì)數(shù)器工工作,當(dāng)當(dāng)GATE=0時(shí),只要要用“SETBbit”指令將TCON寄存器中中的啟動(dòng)動(dòng)位TR0或TR1置“1”即可,使使用“CLRbit”指令可停停止定時(shí)時(shí)器工作作。任務(wù)4十字路口口交通信信號(hào)燈設(shè)設(shè)計(jì)0.5s延時(shí)子程程序如下下:DELAY:MOVR3,#0AH;循環(huán)次數(shù)數(shù)MOVTMOD,#10H;定時(shí)器T1,方式1MOVTH1,#3CH;定時(shí)50ms的初值MOVTL1,#0B0HSETBTR1;啟動(dòng)定時(shí)時(shí)器LP1:JBCTF1,LP2SJMPLP1LP2:MOVTH1,#3CH;重裝初值值MOVTL1,#0B0HDJNZR3,LP1RET單片機(jī)C語(yǔ)言程程序設(shè)計(jì)計(jì):LED模模擬交通通燈#include<reg51.h>#defineucharunsignedchar;sbitRED_B=P0^0;//北北向燈sbitYELLOW_B=P0^1;sbitGREEN_B=P0^2;sbitRED_X=P0^3;//西西向燈sbitYELLOW_X=P0^4;sbitGREEN_X=P0^5;sbitRED_N=P2^0;//南南向燈sbitYELLOW_N=P2^1;sbitGREEN_N=P2^2;sbitRED_D=P2^3;//東向燈燈sbitYELLOW_D=P2^4;sbitGREEN_D=P2^5;ucharFlash_Count=0,Operation_Type=1;voidDelayMS(unsignedintx){TMOD=0x01;TR0=1;while((x--)!=0){TH0=0X3C;TL0=0Xb0;while(!TF0);TF0=0;}}任務(wù)4十字路口口交通信信號(hào)燈設(shè)設(shè)計(jì)//交通通燈切換換voidTraffic_Light(){switch(Operation_Type){case1://東東西向向綠燈燈與南南北向向紅燈燈亮RED_X=1;YELLOW_X=1;GREEN_X=0;RED_N=0;YELLOW_N=1;GREEN_N=1;RED_D=1;YELLOW_D=1;GREEN_D=0;RED_B=0;YELLOW_B=1;GREEN_B=1;DelayMS(400);Operation_Type=2;break;case2://東西西向黃黃燈閃閃爍,,綠燈燈關(guān)閉閉DelayMS(40);YELLOW_D=~YELLOW_D;GREEN_D=1;YELLOW_X=~YELLOW_X;GREEN_X=1;if(++Flash_Count!=10)return;//閃閃爍Flash_Count=0;Operation_Type=3;break;case3://東東西向向紅燈燈,南南北向向綠燈燈亮RED_X=0;YELLOW_X=1;GREEN_X=1;RED_N=1;YELLOW_N=1;GREEN_N=0;RED_D=0;YELLOW_D=1;GREEN_D=1;RED_B=1;YELLOW_B=1;GREEN_B=0;DelayMS(400);Operation_Type=4;break;case4://南南北向向黃燈燈閃爍爍DelayMS(40);YELLOW_N=~YELLOW_N;GREEN_N=1;YELLOW_B=~YELLOW_B;GREEN_B=1;if(++Flash_Count!=10)return;Flash_Count=0;Operation_Type=1;}}//主主程序序voidmain(){while(1)Traffic_Light();}任務(wù)4十字路路口交交通信信號(hào)燈燈設(shè)計(jì)計(jì)采用查查詢方方式處處理的的程序序:#include<reg52.h>sbitP1_0=P1^0;voidmain(){TMOD=0x02;TL0=0x06;TH0=0x06;TR0=1;while(1){while(!TF0);TF0=0;P1_0=~P1_0;}}定時(shí)器編編程總結(jié)結(jié)一、定時(shí)時(shí)器的初初始化步步驟1、選擇工工作模式式和工作作方式。。設(shè)置TMOD。2、設(shè)置定定時(shí)器的的計(jì)數(shù)初初值。設(shè)置THx和TLx。3、啟動(dòng)定時(shí)時(shí)器。二、定時(shí)時(shí)器查詢?cè)兪綉?yīng)用用步驟1、選擇工工作模式式和工作作方式。。設(shè)置TMOD。2、設(shè)置定定時(shí)器的的計(jì)數(shù)初初值。設(shè)置THx和TLx。3、啟動(dòng)定定時(shí)器。4、查詢溢出出標(biāo)準(zhǔn)TFX5、清零溢溢出標(biāo)志志6、應(yīng)用處處理7、重裝初初始值1、設(shè)計(jì)方方案選用AT89C51單片機(jī)芯芯片、時(shí)時(shí)鐘電路路、復(fù)位位電路、、電源、、12個(gè)發(fā)光二二極管和和一個(gè)按按鍵構(gòu)成成最小系系統(tǒng),完完成對(duì)交交通信號(hào)號(hào)燈有急急救車通通過時(shí)的的智能控控制。任務(wù)要求圖3-17交通信號(hào)號(hào)燈模擬擬控制系系統(tǒng)設(shè)計(jì)計(jì)框圖任務(wù)4智能交通通信號(hào)燈燈設(shè)計(jì)并行接口AT89C51單片機(jī)電源時(shí)鐘電路復(fù)位電路紅黃綠燈發(fā)光二極管按鍵2、硬件電電路設(shè)計(jì)計(jì)任務(wù)實(shí)施圖2-24交通燈控控制電路路原理圖圖電路所用用仿真元元器件::AT89C51:?jiǎn)纹瑱C(jī)機(jī)RES:電阻CRYSTAL:晶振CAP:電容CAP-ELEC:電解電電容BUTTON:按鈕LED-GREEN:綠色發(fā)光光二極管管LED-YELLOW:黃色發(fā)光光二極管管LED-RED:紅色發(fā)光光二極管管任務(wù)4智能交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)表3-6交通燈控控制口線線分配及及控制狀狀態(tài)表任務(wù)4智能交通交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)P1.5P1.4P1.3P1.2P1.1P1.0P1端口數(shù)據(jù)狀態(tài)說明東西方向南北方向紅燈黃燈綠燈紅燈黃燈綠燈11100011011100,1交替111100011111111011100,1交替1F3HP1.3交替EBHDEHP1.0交替DDH東西向通行,南北向禁行東西向警告,南北向禁行東西向警告,南北向禁行南北向通行,東西向禁行南北向警告,東西向禁行南北向警告,東西向禁行100111100111EDHDBH緊急情況相關(guān)知識(shí):中斷的基本知識(shí)1、中斷的的基本概概念中斷是指指計(jì)算機(jī)機(jī)在執(zhí)行行某一程程序的過過程中,由于計(jì)算算機(jī)系統(tǒng)統(tǒng)內(nèi)、外外的某種種原因,而必須中中止原程程序的執(zhí)執(zhí)行,轉(zhuǎn)去執(zhí)行行相應(yīng)的的處理程程序,待處理結(jié)結(jié)束之后后,再回來繼繼續(xù)執(zhí)行行被中止止的原程程序的過過程。中斷需要要解決兩兩個(gè)主要要問題::如何從從主程序序轉(zhuǎn)到中中斷服務(wù)務(wù)程序和和如何從從中斷服服務(wù)程序序返回主主程序。。(1)概念圖3-1中斷的示示意圖任務(wù)4智能交通通交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)1)分時(shí)操作作:解決了快快速CPU與慢速外外設(shè)之間間的矛盾盾,可使CPU與外設(shè)并并行工作作。這樣樣,CPU可啟動(dòng)多多個(gè)外設(shè)設(shè)同時(shí)工工作,大大大提高高了工作作效率。。2)實(shí)時(shí)處理理:實(shí)時(shí)處理理控制系系統(tǒng)中許許多隨機(jī)機(jī)產(chǎn)生的的參數(shù)與與信息,即計(jì)算機(jī)機(jī)具有實(shí)實(shí)時(shí)處理理的能力力,從而提高高了控制制系統(tǒng)的的性能。。3)故障處理理:使系統(tǒng)具具備處理理故障的的能力,,如出現(xiàn)現(xiàn)掉電、、存儲(chǔ)出出錯(cuò)、運(yùn)運(yùn)算溢出出等故障障,從而提高高了系統(tǒng)統(tǒng)自身的的可靠性性。(2)特點(diǎn)(3)與中斷相相關(guān)的幾個(gè)個(gè)概念1)中斷服務(wù)務(wù)子程序:中斷之后處處理的程序序,也稱為為中斷處理理子程序。。2)主程序:原來正常執(zhí)執(zhí)行的程序序。3)中斷源:發(fā)出中斷申申請(qǐng)的信號(hào)號(hào)或引起中中斷的事件件。4)中斷請(qǐng)求求:CPU接收到中斷斷源發(fā)出的的申請(qǐng)信號(hào)號(hào)。5)中斷響應(yīng)應(yīng):接收中斷申申請(qǐng),轉(zhuǎn)到到相應(yīng)中斷斷服務(wù)子程程序處執(zhí)行行。6)斷點(diǎn):主程序被斷斷開的位置置(即地址址),轉(zhuǎn)入入中斷程序序的位置。。7)中斷入口口地址:中斷響應(yīng)后后,中斷程程序執(zhí)行的的首地址。。8)中斷返回回:從中斷服務(wù)務(wù)程序返回回到主程序序。任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級(jí)級(jí)矢量地址高級(jí)中斷請(qǐng)請(qǐng)求自然優(yōu)先級(jí)級(jí)矢量地址低級(jí)中斷請(qǐng)請(qǐng)求PX0PT0PX1PT1PSIEIP中斷標(biāo)志位位中斷源允許許總允許中斷優(yōu)先級(jí)級(jí)(P3.2)(P3.3)(P3.0)(P3.1)(P3.5)(P3.4)2、MCS-51單片機(jī)的中中斷系統(tǒng)及及其管理(1)MCS-51中斷系統(tǒng)的的結(jié)構(gòu)任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)(2)中斷源圖3-1中斷的示意意圖8051單單片機(jī)有5個(gè)中斷請(qǐng)求源源:?jiǎn)纹瑱C(jī)INT0或

外部輸入中斷源INT0(P3.2)INT1或

外部輸入中斷源INT1(P3.3)T0

片內(nèi)定時(shí)器T0的溢出(P3.4)T1

片內(nèi)定時(shí)器T1的溢出(P3.5)串行口

片內(nèi)串行口發(fā)送或接收中斷源任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)(3)特殊功能能寄存器TCON和SCON1)中斷控制寄寄存器TCONTF1

TF0

IE1IT1IE0IT0TCON7654321088H8F

8D

8B8A8988位地址T1溢出中斷標(biāo)標(biāo)志(TCON.7):T1啟動(dòng)計(jì)數(shù)后后,計(jì)滿溢溢出由硬件件置位TF1=1,向CPU請(qǐng)求中斷,,此標(biāo)志一一直保持到到CPU響應(yīng)中斷后后,才由硬件自自動(dòng)清0。也可用軟軟件查詢?cè)撛摌?biāo)志,并并由軟件清清0。任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)TF1

TF0

IE1IT1IE0IT0TCON88H外部中斷INT1中斷標(biāo)志位位(TCON.3):IE1=1,外部中斷1向CPU申請(qǐng)中斷外部中斷INT1((P3.3)觸發(fā)方式控控制位(TCON.2)::IT1=0,電平觸發(fā)方方式IT1=1,下降沿觸發(fā)發(fā)方式76543210注意:該寄寄存器可以以位尋址。。任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)2)串行口控制制寄存器SCON返回TI(SCON.1)———串行發(fā)發(fā)送中中斷標(biāo)標(biāo)志。。RI(SCON.0)———串行接接收中中斷標(biāo)標(biāo)志。。

TIRISCON98H76543210注意::該寄寄存器器可以以位尋尋址。。

9998位地址址任務(wù)4智能交交通交通信信號(hào)燈燈設(shè)計(jì)計(jì)(4)中斷斷的開開放與與禁止止MCS-51系列單單片機(jī)機(jī)的5個(gè)中斷斷源都都是可可屏蔽蔽中斷斷,由由中斷斷系統(tǒng)統(tǒng)內(nèi)部部的專專用寄寄存器器IE負(fù)責(zé)控控制各各中斷斷源的的開放放或屏屏蔽。。IEA8HEA

ESET1EX1ET0EX0例:允允許定定時(shí)器器T0中斷::SETBEA位操作作指令令SETBET0或MOVIE,#82H字節(jié)操操作指指令或MOV0A8H,,#82H76543210注意::該寄寄存器器可以以位尋尋址。。AF

ACABAAA9A8位地址址任務(wù)4智能交交通交通信信號(hào)燈燈設(shè)計(jì)計(jì)(5)中斷斷優(yōu)先先權(quán)的的處理理MCS-51中斷系系統(tǒng)設(shè)設(shè)立了了兩極極優(yōu)先先級(jí)—高優(yōu)先先級(jí)和和低優(yōu)優(yōu)先級(jí)級(jí),可可以程程序設(shè)設(shè)置5個(gè)中斷斷源優(yōu)優(yōu)先級(jí)級(jí),由由中斷斷優(yōu)先先級(jí)寄寄存器器IP進(jìn)行控控制。。51單單片機(jī)機(jī)有兩兩個(gè)中中斷優(yōu)優(yōu)先級(jí)級(jí)——高級(jí)和和低級(jí)級(jí)專用寄寄存器器IP為中斷斷優(yōu)先先級(jí)寄寄存器器,用用戶可可用軟軟件設(shè)設(shè)定相應(yīng)位位為1,對(duì)應(yīng)應(yīng)的中中斷源源被設(shè)設(shè)置為為高優(yōu)先先級(jí),相應(yīng)應(yīng)位為為0,,對(duì)應(yīng)應(yīng)的中中斷源源被設(shè)設(shè)置為為低優(yōu)優(yōu)先級(jí)級(jí)系統(tǒng)復(fù)復(fù)位時(shí)時(shí),均均為低低優(yōu)先先級(jí)該寄存存器可可以位位尋址址

PSPT1PX1PT0PX0IPB8H76543210

BCBBBAB9B8位地址址任務(wù)4智能交交通交通信信號(hào)燈燈設(shè)計(jì)計(jì)同一級(jí)級(jí)中的的5個(gè)個(gè)中斷斷源的的優(yōu)先先順序序是::

INT0中斷

T0溢出中斷

INT1中斷

T1溢出中斷

串口中斷

高低出廠前已由廠家固化順序——事先約定中斷優(yōu)優(yōu)先原原則::(概概括為為四句句話))1、低低級(jí)不不打斷斷高級(jí)級(jí)2、高高級(jí)不不睬低低級(jí)3、同同級(jí)不不能打打斷4、同同級(jí)、、同時(shí)時(shí)中斷斷,事事先約約定。。任務(wù)4智能交交通交通信信號(hào)燈燈設(shè)計(jì)計(jì)例6-1,如果果IP的值設(shè)設(shè)為06H,如果果5個(gè)中斷斷請(qǐng)求求同時(shí)時(shí)發(fā)生生,求求中斷斷響應(yīng)應(yīng)的次次序。。解:06H化為二進(jìn)制制是00000110B,根據(jù)表6-4知,定時(shí)器器T0和外中斷被設(shè)置成高高優(yōu)先級(jí)中中斷,因此此如果5個(gè)中斷請(qǐng)求求同時(shí)發(fā)生生,中斷響響應(yīng)的先后后次序是::定時(shí)器T0→外中斷INT1→外中斷→定時(shí)器T1→串行中斷斷。DATE:2022/12/8任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)3、中斷處理理過程(1)中斷響應(yīng)應(yīng)中斷處理過過程分為三三個(gè)階段::中斷響應(yīng)、、中斷處理理和中斷返返回。中斷響應(yīng)中斷處理(又稱中斷斷服務(wù))中斷返回中斷請(qǐng)求的的撤除中斷響應(yīng)中斷返回任務(wù)4智能交通交通信號(hào)燈燈設(shè)計(jì)中斷響應(yīng)(以外部中斷斷0為例)中斷響應(yīng)::在滿足CPU的中斷響應(yīng)應(yīng)條件之后后,CPU對(duì)中斷源中中斷請(qǐng)求予予以處理。。中斷響應(yīng)應(yīng)過程::保護(hù)斷點(diǎn)點(diǎn)地址;;中斷響應(yīng)把程序轉(zhuǎn)轉(zhuǎn)向中斷斷服務(wù)程程序的入口地址址(通常稱稱矢量地地址)。。特別注意意:這些工作作是硬件件自動(dòng)完完成的??!斷點(diǎn)地址址中斷服務(wù)務(wù)子程序序的入口口地址外部中斷斷0入口地址址0003ZD0AJMPORG0003HAJMPZD0ZD0任務(wù)4智能交通通交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)中斷響應(yīng)應(yīng)中斷服務(wù)務(wù)子程序序入口地地址又稱稱為中斷斷矢量或或中斷向向量。中斷響應(yīng)單片機(jī)中中5個(gè)中中斷源的的矢量地地址是固定的,不能能改動(dòng)。。斷點(diǎn)地址址中斷服務(wù)務(wù)子程序序的入口地址址任務(wù)4智能交通通交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)任務(wù)4智能交通通交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)程序存儲(chǔ)儲(chǔ)器ROM0000H:復(fù)位后,,程序的的入口地地址(PC=0000H)0023H:串行口中中斷入口口0003H:外部中斷斷0入口口-INT0000BH:定時(shí)器0溢出中中斷入口口-T00013H:外部中斷斷1入口口-INT1001BH:定時(shí)器1溢出中中斷入口口-T18字節(jié)8字節(jié)8字節(jié)002AH使用時(shí),,通常在在這些入入口地址址處存放放一條跳跳轉(zhuǎn)指令令,使程程序跳轉(zhuǎn)轉(zhuǎn)到用戶戶安排的的中斷服服務(wù)程序序起始地地址上去去!中斷處理理中斷服務(wù)務(wù)程序從從中斷子子程序入口地址址開始執(zhí)行行,直到到返回指指令RETI為止,這這個(gè)過程程稱為中斷處理理(或中中斷服務(wù)務(wù))。中斷服務(wù)務(wù)子程序序一般包包括兩部部分內(nèi)容容:一是保護(hù)和恢恢復(fù)現(xiàn)場(chǎng)場(chǎng),二是處理中斷斷源的請(qǐng)請(qǐng)求。中斷響應(yīng)入口地址址RETI任務(wù)4智能交通通交通信號(hào)號(hào)燈設(shè)計(jì)計(jì)中斷處理理INTT0:PUSHACCPUSHDPHPUSHDPLPUSHPSW中斷斷源源服服務(wù)務(wù)POPPSWPOPDPLPOPDPHPOPACCRETI保護(hù)護(hù)現(xiàn)現(xiàn)場(chǎng)場(chǎng)恢復(fù)復(fù)現(xiàn)現(xiàn)場(chǎng)場(chǎng)任務(wù)務(wù)4智能能交交通通交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)中斷斷返返回回中斷斷返返回回是是指指中中斷斷服服務(wù)務(wù)完完后后,,計(jì)計(jì)算算機(jī)機(jī)返返回回到到原原來來暫暫停停的的位位置置(即即斷斷點(diǎn)點(diǎn)),,繼繼續(xù)續(xù)執(zhí)執(zhí)行行原原來來的的程程序序。。中斷斷返返回回由由專專門門的的中中斷斷返返回回指指令令RETI來實(shí)實(shí)現(xiàn)現(xiàn)。。中斷響應(yīng)中斷返回任務(wù)務(wù)4智能能交交通通交通通信信號(hào)號(hào)燈燈設(shè)設(shè)計(jì)計(jì)中斷斷返返回回RETI指令令功功能能::把把斷點(diǎn)點(diǎn)地地址址取取出出,,送送回回到到程程序序計(jì)計(jì)數(shù)數(shù)器器PC中去去。。另另外外,,它它還還通通知知中中斷斷系系統(tǒng)統(tǒng)已已完完成成中中斷斷處處理理,,將將清清除除優(yōu)優(yōu)先先級(jí)級(jí)狀狀態(tài)態(tài)觸觸發(fā)發(fā)器器。。特別別注注意意::不能用用RET指令代代替RETI指令!!中斷響應(yīng)中斷返回?cái)帱c(diǎn)地地址任務(wù)4智能交交通交通信信號(hào)燈燈設(shè)計(jì)計(jì)中斷請(qǐng)請(qǐng)求的的撤除CPU響應(yīng)某某中斷斷請(qǐng)求求后,,在中中斷返返回前前,應(yīng)應(yīng)該撤撤除該該中斷斷請(qǐng)求求,否否則會(huì)會(huì)引起起另一一次中中斷。。定時(shí)器器0或或1溢溢出::CPU在響應(yīng)應(yīng)中斷斷后,,硬件清除了了有關(guān)關(guān)的中中斷請(qǐng)請(qǐng)求標(biāo)標(biāo)志TF0或TF1,即中斷請(qǐng)請(qǐng)求是是自動(dòng)動(dòng)撤除除的。邊沿觸觸發(fā)的的外部部中斷斷(IT0或IT1=1)::CPU在響應(yīng)應(yīng)中斷斷后,,也是是用硬件件自動(dòng)動(dòng)清除除有關(guān)的的中斷斷請(qǐng)求求標(biāo)志志IE0或IE1。串行口口中斷斷:CPU響應(yīng)中中斷后后,沒沒有用用硬件件清除除TI、、RI,故這些些中斷斷不能能自動(dòng)動(dòng)撤除除,而而要靠軟軟件來來清除除相應(yīng)應(yīng)的標(biāo)標(biāo)志。任務(wù)4智能交交通交通信信號(hào)燈燈設(shè)計(jì)計(jì)三、中中斷系系統(tǒng)的的編程程中斷函函數(shù)的的定義義:void函數(shù)名名(void)interruptnusingm{中斷函函數(shù)內(nèi)內(nèi)容}修飾符符interruptn表明該中斷服服務(wù)程序所對(duì)對(duì)應(yīng)中斷源的的中斷號(hào),編編譯器會(huì)把該該函數(shù)轉(zhuǎn)化為為中斷函數(shù),,并在對(duì)應(yīng)的的中斷入口地地址處添加跳跳轉(zhuǎn)指令,以以便轉(zhuǎn)入本中中斷函數(shù)。修飾符usingm用于指定本函函數(shù)內(nèi)部使用用的工作寄存存器組,m的取值為0~3。該修飾符可可省略,由編編譯器去分配配。DATE:2022/12/8PAGE:85任務(wù)4智能交通交通信號(hào)燈設(shè)設(shè)計(jì)編寫中斷函數(shù)數(shù)時(shí),應(yīng)注意意以下幾點(diǎn)::(1)中斷函數(shù)不不帶任何參數(shù)數(shù),否則會(huì)導(dǎo)導(dǎo)致編譯出錯(cuò)錯(cuò)。(2)中斷函數(shù)不不能有返回值值,所以函數(shù)數(shù)類型應(yīng)為void。(3)中斷函數(shù)必必須由中斷源源觸發(fā)而自動(dòng)動(dòng)調(diào)用,不得得直接調(diào)用,,因此也不用用提前聲明。。(4)中斷函數(shù)要要精簡(jiǎn),避免免因執(zhí)行時(shí)間間過長(zhǎng)影響其其它中斷的響響應(yīng)。DATE:2022/12/8PAGE:86任務(wù)4智能交通交通信號(hào)燈設(shè)設(shè)計(jì)例6-2如圖所示,將將P1口的P1.4~P1.7作為輸入位,P1.0~P1.3作為輸出位。要求利用89C52將開關(guān)所設(shè)的數(shù)數(shù)據(jù)讀入單片機(jī)內(nèi),并并依次通過P1.0~P1.3輸出,驅(qū)動(dòng)發(fā)光二二極管,以檢檢查P1.4~P1.7輸入的電平情情況(若輸入為高電平平則相應(yīng)的LED亮)。要求采用中斷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論