單片機原理及應(yīng)用項目化教程課件項目五 外部中斷與串行通信_第1頁
單片機原理及應(yīng)用項目化教程課件項目五 外部中斷與串行通信_第2頁
單片機原理及應(yīng)用項目化教程課件項目五 外部中斷與串行通信_第3頁
單片機原理及應(yīng)用項目化教程課件項目五 外部中斷與串行通信_第4頁
單片機原理及應(yīng)用項目化教程課件項目五 外部中斷與串行通信_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目五

外部中斷與串行通信項目描述 STC89C52單片機有兩個外部中斷輸入引腳P3.2和P3.3,在P3.2引腳接一個獨立按鍵,當按下按鍵時,觸發(fā)外部中斷,單片機的外部中斷程序向PC機開始發(fā)送一個字符,利用串口調(diào)試助手在PC機的調(diào)試終端上出現(xiàn)程序中所設(shè)定的字符。STC89C52外部中斷5.1.1外中斷觸發(fā)電路

硬件電路如下圖所示,分析電路可知,當按鍵S1沒有按下時由于上拉電阻的作用,P3.2端口為高電平,當按鍵按下以后,P3.2端口直接與地相接,因此P3.2端口為低電平,因此每按一次按鍵S1,P3.2端口電平都會有一個由高到低的跳變,從而觸發(fā)外部中斷。STC89C52外部中斷

我們的KST-51開發(fā)板上沒有獨立按鍵,因此須將4*4矩陣鍵盤電路做一些變動。若要將下圖中的按鍵K1應(yīng)用為上圖中的S1,軟/硬件需做如下變動:將Keyout1端口接低電平,即程序初始化時將P2.3端口輸出低電平,此外,還需將KeyIn1端口(對應(yīng)P2.4引腳)與P3.2引腳相連,在此項目操作之前,大家需要用一根跳線將P2.4引腳與P3.2引腳相連。STC89C52外部中斷5.1.2外中斷初始化

外部中斷的初始化主要是對外部中斷相關(guān)的寄存器初始化,由第四章中斷的知識可知,與外部中斷相關(guān)的寄存器有3個:TCON、IE、IP寄存器。(1)TOCN寄存器TCON中與外部中斷有關(guān)的位有四位:IT0和IT1,IE0和IE1,IT0/IT1用于控制外部中0的觸發(fā)方式,其含義如下: IT0(IT1)=1脈沖觸發(fā)方式,下降沿有效。 IT0(IT1)=0電平觸發(fā)方式,低電平有效。STC89C52外部中斷IE0/IE1:外部中斷申請標志位(由硬件自動置位,中斷響應(yīng)后轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動清0)IE0/IE1=0:沒有外部中斷申請;IE0/IE1=1:有外部中斷申請。

本項目將P3.2引腳(對應(yīng)外部中斷0)的中斷輸入信號設(shè)置為下降沿觸發(fā),因此IT0應(yīng)置為1,由于TCON寄存器可以位尋址,為了不影響其它位的設(shè)置,可用IT0=1(或匯編語言SETBIT0)來設(shè)置,或者用邏輯或操作TCON|=0x01來實現(xiàn)。STC89C52外部中斷(2)IE寄存器

EAESET1EX1ET0EX0IE寄存器中與外部中斷0有關(guān)的位有兩位:中斷總開關(guān)EA和外部中斷0中斷允許位EX0,要開放外部中斷0的中斷,必須將EA和EX0都置1,用位操作指令(EA=1;EX0=1)或用邏輯操作指令I(lǐng)E|=0x81。STC89C52外部中斷(3)中斷優(yōu)先級控制寄存器IP

PSPT1

PX1

PT0PX0IP寄存器中與外部中斷0相關(guān)的位為PX0,可通過語句PX0=1將外部中斷0設(shè)置為高優(yōu)先級,通過語句PX0=0將外部中斷0設(shè)置為低優(yōu)先級。本項目中只有一個中斷,因此不需要對其優(yōu)先級設(shè)置,單片機復(fù)位后IP=0x00,所有中斷優(yōu)先級都默認為低優(yōu)先級。綜上所述,本項目外部中斷的初始化程序為:

IT0=1; EA=1; ET0=1;串行通信5.2.1串行口介紹1、串行通信與并行通信

在微型計算機中,通信(數(shù)據(jù)交換)有兩種方式:并行通信和串行通信。

并行通信——是指計算機與I/O設(shè)備之間通過多條傳輸線交換數(shù)據(jù),數(shù)據(jù)的各位同時進行傳送。

串行通信——是指計算機與I/O設(shè)備之間僅通過一條傳輸線交換數(shù)據(jù),數(shù)據(jù)的各位是按順序依次一位接一位進行傳送。串行通信二者比較:

串行通信的數(shù)據(jù)傳輸速率相對較低,但通信距離長,可以從幾米到幾公里,因此串行適用于長距離而速度要求不高的場合。電腦上的9針座(也稱串口)就是串行通信。

并行通信的傳輸速率高,但傳輸距離短,一般不超過30米,而且成本高(要采用多條數(shù)據(jù)線)。電腦輸出數(shù)據(jù)到打印機采用的就是并行通信。串行通信2、串行通信的分類與制式(1)串行通信的分類

串行通信可以分為同步通信和異步通信兩類。在單片機中,主要使用異步通信方式。(2)串行通信制式

根據(jù)信息的傳送方向,串行通信可以進一步分為單工、半雙工和全雙工三種。

如果在通信過程的任意時刻,信息只能由一方A傳到另一方B,則稱為單工。

如果在任意時刻,信息既可由A傳到B,又能由B傳A,但只能由一個方向上的傳輸存在,稱為半雙工傳輸。

如果在任意時刻,線路上存在A到B和B到A的雙向信號傳輸,則稱為全雙工。串行通信3、同步通信與異步通信(1)同步通訊異步通信的概念

同步和異步都屬于串行數(shù)據(jù)傳送方式,但二者的傳送格式有所不同。同步方式的一幀內(nèi)含有很多數(shù)據(jù)位,而異步方式一幀內(nèi)只含有幾個數(shù)據(jù)位。如果要傳送一大堆數(shù)據(jù),同步方式只給這串數(shù)據(jù)進行一次外包裝(即添加“頭幀”、“尾幀”、“校驗”幀),而異步方式在傳送這串數(shù)據(jù)時則要對數(shù)據(jù)的每一個字節(jié)分別加以包裝(即添加“頭”位、“尾”位和校驗)。

顯然在相同的數(shù)據(jù)傳輸波特率下,同步方式比異步方式的傳送速度快,但同步方式要求收發(fā)雙方在整個事件傳送過程中始終保持嚴格同步,這將增加硬件上的難度,而異步通信只要求每幀(字節(jié))的傳送中短時間保持同步即可,實現(xiàn)起來要容易得多。串行通信(2)同步、異步數(shù)據(jù)通信格式串行通信4、串行接口的結(jié)構(gòu)(1)數(shù)據(jù)緩沖寄存器SBUF

兩個SBUF,一個用于發(fā)送(只寫);一個用于接收(只讀)。映象地址均為99H。(2)數(shù)據(jù)發(fā)送與接收控制

發(fā)送控制器在波特率作用下,將發(fā)送SBUF中的數(shù)據(jù)由并到串,一位位地傳輸?shù)桨l(fā)送端口;接收控制器在波特率作用下,將接收接收端口的數(shù)據(jù)由串到并,存入接收SBUF中。串行通信5、MCS-51的串行接口概述(1)有一個可編程全雙工串行通信接口(UART)(UniversalAsychronousReceiver/Transmitter)(2)管腳:TXD(P3.1)、RXD(P3.0)(3)可同時發(fā)送、接收數(shù)據(jù)(Transmit/Receive)(4)有四種工作方式,幀格式有8、10、11位。(5)波特率(Baudrate)可設(shè)置

波特率:每秒鐘傳送二進制數(shù)碼的位數(shù),也叫比特數(shù),單位為b/s,即位/秒。串行通信6.MCS-51串行接口寄存器(1)串行口數(shù)據(jù)緩沖器-----SBUF共2個:一個發(fā)送寄存器SBUF,一個接收SBUF,二者共用一個地址99H。(2)控制寄存器-----SCON串行通信SM0,SM1:串行口4種工作方式控制位。

=00:方式0,8位同步移位寄存器,其波特率為fosc/12;

=01:方式1,10位UART,其波特率為可變,由定時器控制;

=10:方式2,11位UART,其波特率為fosc/64或fosc/32;

=11:方式3,11位UART,其波特率為可變,由定時器控制。其中:fosc為系統(tǒng)晶振頻率。RI,TI:串行口收/發(fā)數(shù)據(jù)中斷標志位=0:沒有串行口發(fā)送/接收中斷申請;=1:有串行口發(fā)送/接收中斷申請。RB8:在方式2、3中,用于存放收到的第9位數(shù)據(jù);在雙機通信中,作為奇偶校驗;在多機通信中,用作區(qū)別地址幀/數(shù)據(jù)幀的標志。TB8:在方式2、3中,是要發(fā)送的第9位數(shù)據(jù);在雙機通信中,用于對接收到的數(shù)據(jù)進行奇偶校驗;在多機通信中,用作判斷地址幀/數(shù)據(jù)幀,TB8=0,為數(shù)據(jù),TB8=1,為地址。REN:串行口接收允許控制位

=1:表示允許接收;

=0:禁止接收。SM2:串行口多機通信控制位,作為方式2、方式3的附加控制位。串行通信串行通信(3)電源及波特率選擇寄存器PCON PCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器,不可以位尋址,字節(jié)地址為87H。其格式如下表所示。SMOD為波特率選擇位。SMOD:串行通信只用該位,為1時,波特率×2;為0時不變。串行通信7、STC89C52串行口的波特率(1)方式0和方式2

在方式0中,波特率為時鐘頻率的1/12,即fosc/12,固定不變。在方式2中,波特率取決于PCON中的SMOD值,當SMOD=0時,波特率為fosc/64;當SMOD=1時,波特率為fosc/32.即:

串行通信(2)方式1

方式1的波特率是可變的,由定時器T1的計數(shù)溢出率決定。串行通信

當定時器T1做波特率發(fā)生器使用時,通常是工作在模式2,即自動重裝載的8位定時器,此時TL1作計數(shù)用,自動重裝載的值在TH1內(nèi)。設(shè)計數(shù)的預(yù)置值(初始值)為X,那么每過256-X個機器周期,定時器溢出一次。為了避免因溢出而產(chǎn)生不必要的中斷,此時應(yīng)禁止T1中斷。溢出周期為:(3)方式3

方式3的波特率由定時器T1的計數(shù)溢出率決定,確定方法與工作方式1中的完全一樣。串行通信(4)常用波特率及誤差晶振頻率MHz波特率b/sSMODTH1包裝初值實際波特率誤差12.0096001F9H89237%12.0048000F9H44607%12.0024000F3H24040.16%12.0012000E6H12020.16%11.0592192001FDH19200011.059296000FDH9600011.059248000EAH4800011.059224000F4H2400011.059212000E8H12000

由上表可以看出,當晶振頻率為12MHz時,實際波特率與標準波特率之間存在一定誤差,用串行口進行數(shù)據(jù)收、發(fā)時數(shù)據(jù)有時會出錯。當晶振頻率為11.0592MHz時,容易獲得標準的波特率,并且沒有誤差,所以很多單片機系統(tǒng)都選用這個看起來“怪”的晶振頻率。串行通信5.2.2串行口初始化

串行口初始化主要是對相關(guān)寄存器的初始化,主要包括SCON、PCON的設(shè)置以及波特率的設(shè)置,與波特率設(shè)置相關(guān)的寄存器為TMOD、TH1、TL1以及TCON。①SCON寄存器

本項目中設(shè)置串行口的工作方式為方式1(SM0,SM1=01),10位異步接收/發(fā)送,波特率可變,由定時器控制;允許串行口接收數(shù)據(jù)(REN位為1),其余位為默認設(shè)置。因此SCON初始化為0x50;②PCON寄存器波特率不倍增,SMOD為0,PCON初始化為0x0。串行通信③TMOD寄存器

設(shè)置定時器T1工作在方式2,自動重新裝入計數(shù)初值的8位定時器/計數(shù)器,為串行通信提供波特率,因此TMOD初始化為0x20.④TH1、TL1寄存器

設(shè)置通信波特率為9600b/s,開發(fā)板上晶振為11.0592MHz,查表可得TH1、TL1的初值為0xFD。⑤TCON寄存器 TCON寄存器中只有一位TR1在此串行通信中用到,用于啟動定時器T1,初始化為TR1=1。串行通信5.2.3串口助手使用說明

下載軟件STC-ISP帶有串口助手,在界面右邊第三個選項卡,如下圖所示。圖中串口助手有三個區(qū)域:接收緩沖區(qū)(用于顯示串口接收到的字符)、發(fā)送緩沖區(qū)(用于輸入待發(fā)送的字符)、多字符串發(fā)送區(qū)(用于多個字符串循環(huán)發(fā)送)。在本項目中,按下P3.2端口按鍵后,單片機串口發(fā)送一個字符,并出現(xiàn)在接收緩沖區(qū)中。接收緩沖區(qū)發(fā)送緩沖區(qū)多字符串發(fā)送區(qū)串行通信

在使用串口助手之前需要進行一些相關(guān)設(shè)置,在S

溫馨提示

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

最新文檔

評論

0/150

提交評論