單片機實驗2345_第1頁
單片機實驗2345_第2頁
單片機實驗2345_第3頁
單片機實驗2345_第4頁
單片機實驗2345_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、實驗二單片機中斷源有1.兩個外部中斷(INIT0) (INIT1),分別由IE0 和IE1兩位控制打開2.定時器中斷T0 和T1優先級由IP寄存器控制,只能分兩級,高或低。優先級相同的中斷源也分高低,順序為:外部中斷0定時器中斷0外部中斷1定時器中斷1串行中斷中斷響應條件中斷源有中斷請求;此中斷源的中斷允許位為1;CPU開中斷(即EA=1)。以上三條同時滿足時,CPU才有可能響應中斷。中斷允許控制CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時/計數器T0中斷允許位; EX1(IE.2),外部中斷1允

2、許位;ET1(IE.3),定時/計數器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA (IE.7), CPU中斷允許(總允許)位。定時/計數器的結構和工作原理 一、定時/計數器的結構 定時/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設置溢出標志。TMOD用于設置其工作方式;TCON用于控制其啟動和中斷申請。GATE:門控位。GATE0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數器工作;GATA1時,要用軟件使TR0或TR1為1

3、,同時外部中斷引腳INT0/1也為高電平時,才能啟動定時/計數器工作。即此時定時器的啟動條件,加上了INT0/1引腳為高電平這一條件。C/T :定時/計數模式選擇位。0為定時模式;1為計數模式。M1M0:工作方式設置位。定時/計數器有四種工作方式,由M1M0進行設置。TCON的中斷標志IT0(TCON.0),外部中斷0觸發方式控制位。當IT0=0時,為電平觸發方式。當IT0=1時,為邊沿觸發方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請求標志位。IT1(TCON.2),外部中斷1觸發方式控制位。IE1(TCON.3),外部中斷1中斷請求標志位。TF0(TCON.5),定時/計數器

4、T0溢出中斷請求標志位。TF1(TCON.7),定時/計數器T1溢出中斷請求標志位。 TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數器的啟動與停止。TR0(TCON.4):T0運行控制位,其功能與TR1類同。時鐘周期(1),狀態周期(2),機器周期(6),指令周期(n)。/*stc89c52 255秒定時器實驗P1口各個位分別連接數碼管8個段a-dp;P0口的前四位分別是4個數碼管位選*/#include#define uchar unsigned char#define uint unsig

5、ned intuchar i,t,Dis_bai,Dis_shi,Dis_ge,Dis_jishu;uchar code tab=0XC0,/*0*/ 0XF9,/*1*/ 0XA4,/*2*/ 0XB0,/*3*/ 0X99,/*4*/ 0X92,/*5*/ 0X82,/*6*/ 0XF8,/*7*/ 0X80,/*8*/ 0X90 /*9*/;void delay(uchar z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void main() uint num=0; uchar t=0; TMOD=0x01; TH0=(65536-50000)/2

6、56; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;while(1)if(i=20)i=0;num+;if(num=256)num=0;t+;if(t=10)t=0;Dis_bai=tabnum/100;Dis_shi=tabnum%100/10;Dis_ge=tabnum%10;Dis_jishu=tabt;P0=0xfe; P1=Dis_bai;delay(1);P1=0xff;P0=0xfd; P1=Dis_shi;delay(1); P1=0xff;P0=0xfb;P1=Dis_ge;delay(1);P1=0xff;P0=0xf7;P1=Dis

7、_jishu;delay(1);P1=0xff;void timer0() interrupt 1 TH0=(65536-50000)/256;TL0=(65536-50000)%256;i+;實驗三串行口的結構 有兩個物理上獨立的接收、發送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結構 ;發送緩沖器,因為發送時CPU是主動的,不會產生重疊錯誤。 SCON 是一個特殊功能寄存器,用以設定串行口的工作方式、接收/發送控制以及設置狀態標志: REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數據;若軟件置REN=0,則禁止接收。TI,發送中斷標志位。在方式0時,當串行發送第

8、8位數據結束時,或在其它方式,串行發送停止位的開始時,由內部硬件使TI置1,向CPU發中斷申請。在中斷服務程序中,必須用軟件將其清0,取消此中斷申請。RI,接收中斷標志位。在方式0時,當串行接收第8位數據結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使RI置1,向CPU發中斷申請。也必須在中斷服務程序中,用軟件將其清0,取消此中斷申請。SM0和SM1為工作方式選擇位,可選擇四種工作方式: 串行口的四種工作方式對應三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 =(2SMOD/64) fosc 方式1的

9、波特率 =(2SMOD/32)(T1溢出率)方式3的波特率 =(2SMOD/32)(T1溢出率)當T1作為波特率發生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數值。 T1 溢出率 = fosc /12256 (TH1) 在單片機的應用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。串行口工作之前,應對其進行初始化,主要是設置產生波特率的定時器1、串行口控制和中斷控制。具體步驟如下: 確定T1的工作方式(編程TMOD寄存器); 計算T1的初值,裝載TH1、TL1;

10、 啟動T1(編程TCON中的TR1位); 確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時,要進行中斷設置(編程IE、IP寄存器)。未改動:/*主機通過串口調試助手給單片機發數據 單片機接收到數據后再給主機發送數據 返回數據為drd*/#includeunsigned char flag,a;void main()TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;while(1)if(flag=1)ES=0;flag=0;SBUF=d;while(!TI);TI=0;SBUF=r;while(!TI);TI=

11、0;SBUF=d;while(!TI);TI=0;ES=1;void ser() interrupt 4RI=0;a=SBUF;flag=1;改動后:/*主機通過串口調試助手給單片機發數據 單片機接收到數據后將數據輸出到P1口 同時將接收到的數據返回給主機*/#includeunsigned char a;void main()TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;while(1);void ser() interrupt 4if(RI=1)RI=0;a=SBUF;P1=SBUF;SBUF=a;elseTI=

12、0;實驗四計算機中的負數是以補碼的形式存放。補碼:一個數轉化成二進制數后,取反再加一,得到的就是這個數的補碼。計算機中的數,當其為有符號型數據時,最高位表示其正負,為1時為正,為0時為負。/*以下為參考子函數代碼*/uchar num=0; sbit r1=P30;sbit d1=P37;void keyscan()r1=0;if(d1=0)delay(5);if(d1=0) while(!d1);delay(5);if(d1)num+;實驗五修改后#include #define uchar unsigned charsbit CLK=P36;sbit DAT=P24;sbit CS=P25

13、;uchar ADCdata;void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);uchar TLC549ADC() uchar i; CLK=0; CS=0; for(i=0;i8;i+) delay(1); ADCdata=1;ADCdata|=DAT; CLK=1; CLK=0; delay(1); return (ADCdata);void main() while(1) TLC549ADC(); delay(10); P1=TLC549ADC(); delay(10); 修改前#include #define uchar unsigned charsbit CLK=P36;/位定義sbit DAT=P24;sbit CS=P25;uchar bdata ADCdata;/注意類型及聲明sbit ADbit=ADCdata0;void delay(uchar z)uchar x,y;for(x=z;x0;x-)for

溫馨提示

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

評論

0/150

提交評論