版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第6章 MCS-51系列單片機的內(nèi)部功能模塊及其應用 MCS-51系列單片機的典型產(chǎn)品的內(nèi)部功能模塊包括P0、Pl、P2、P3四個雙向8位并行口,T0、T1二個16位定時/計數(shù)器(52子系列還有第3個定時/計數(shù)器T2)和一個串行口。MCS-51系列所有的產(chǎn)品一般都具有這些I/O部件除此以外,一些增強功能的新型5l系列的單片機還有多功能定時器、A/D轉(zhuǎn)換器、實時時鐘、I2C 串行BUS口、watchdog等一些功能模塊。 6.1 MCS-51單片機內(nèi)部的并行口MCS-51系列單片機中稱為P0、Pl、P2、P3的并行接口,每個接口主要由4部分構(gòu)成:數(shù)據(jù)鎖存器、輸入緩沖器、輸出驅(qū)動器和接口引腳,每一
2、條I/O都能獨立的用作輸入或輸出,作輸入時,數(shù)據(jù)可以鎖存;作輸出時,數(shù)據(jù)可以緩沖。4個接口的功能不完全相同,其內(nèi)部結(jié)構(gòu)也略有不同,但在作I/O操作方式時,其特性基本相同。如圖(a)(d)分別給出了P0、P1、P2、P3口的l位的結(jié)構(gòu)框圖。 P0、P1、P2、P3口的l位的結(jié)構(gòu)框圖在第2章已詳細地介紹了MCS-51單片機的并行I/O端口,下面舉個并行接口應用的例子,以加深對并行接口使用的理解?!纠?-1】對例6-1的電路圖,單片機的P1.4P1.7接4個發(fā)光二極管,P1.0P1.3接4個開關(guān),要求每按鍵中斷一次,發(fā)光二極管顯示開關(guān)狀態(tài)。圖 6-1 例6-1的電路圖 要求對應的發(fā)光二極管亮或滅,
3、只需把P1端口的內(nèi)容讀入,高、低4位互換,通過P1端口輸出即可。匯編語言參考程序為: ORG 0000H LJMP START ORG 0003H LJMP EXT0 ORG 0030H START: SETB EA ;開中斷總開關(guān) SETB EX0 ;允許中斷 SETB IT0 ;下降沿產(chǎn)生中斷 MOV P1,#0FH ;設定P1端口低4位為輸入狀態(tài) SJMP $ ORG 0100H EXT0: MOV A,P1 SWAP A MOV P1,A RETI C語言參考程序為: #include INT0 () interrupt 0 /* 中斷函數(shù) */ P1=0 x0f; /*設定P1端口低
4、4位為輸入狀態(tài),輸入端先置1,燈滅 */ P=4; /*讀入開關(guān)狀態(tài),并左移4位,使開關(guān)反映在發(fā)光二極管上*/ main() EA=1; /*開中斷總開關(guān)*/ EX0=1; /*允許中斷*/ IT0=1; /*下降沿產(chǎn)生中斷*/ while(1); /*等待中斷*/ 6.2 MCS-51單片機內(nèi)部的定時器/計數(shù)器 通常實現(xiàn)定時/計數(shù)有3種主要方法:(1)軟件定時:軟件定時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。 (2)時基電路硬件定時:用小規(guī)模集成電路器件構(gòu)成的硬件定時電路,電路簡單,但要改變定時范圍,必須改變電阻和電容,修改不方便,即不可編程。 。 (3)可編程定時/計數(shù)器
5、定時:它是為方便微機系統(tǒng)的設計和應用而研制的一種芯片,它采用硬件定時,且很容易通過軟件來確定和修改定時值,通過初始化編程,能夠滿足各種不同的定時和計數(shù)要求,在單片機、嵌入式系統(tǒng)的設計和應用中得到廣泛的應用。 6.2.1 實現(xiàn)定時/計數(shù)器的辦法單片機內(nèi)部的定時/計數(shù)器也屬于上面的第3種采用可編程定時/計數(shù)器實現(xiàn)定時,只不過這種可編程定時/計數(shù)器的硬件模塊被集成到單片機內(nèi)部而已。6.2.2 MCS-51單片機內(nèi)部的定時/計數(shù)器定時/計數(shù)器是MCS-51系列單片機的重要部件,其工作方式靈活,編程簡單,它的使用大大減輕了CPU的負擔并且簡化了外圍電路。在MCS-51系列單片機中,51子系列單片機有2個
6、定時/計數(shù)器T0和T1,52子系列單片機除了有上述兩個定時/計數(shù)器以外,還有一個定時/計數(shù)器T2,后者的功能比前兩者強。圖6-2是MCS-51系列單片機內(nèi)部定時/計數(shù)器結(jié)構(gòu)框圖。圖6-2 MCS-51系列單片機內(nèi)部定時/計數(shù)器結(jié)構(gòu)框圖 定時/計數(shù)器主要由特殊功能寄存器TH0、TL0、TH1、TL1以及TMOD、TCON組成。 定時/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。其中: TH0(高8位)、TL0(低8位)構(gòu)成16位加1計數(shù)器T0,用來存放T0的計數(shù)初值; TH1(高8位)、TL1(低8位)構(gòu)成加116位計數(shù)器T1,用來存放T1的計數(shù)初值; 這兩個16位計數(shù)器
7、都是16位的加1計數(shù)器。 TMOD用來控制兩個定時/計數(shù)器的工作方式,TCON用作中斷溢出標志并控制定時器的啟停。 加1計數(shù)器輸入的計數(shù)脈沖有兩個來源。 (1)是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來; (2)是T0或T1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。 如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。因此,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。1)定時/計數(shù)器設置為定時器模
8、式時,加1計數(shù)器是對內(nèi)部機器周期計數(shù)(1個機器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機器周期Tcy就是定時時間t 。2)定時/計數(shù)器設置為計數(shù)器模式時,外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機器周期采樣T0或T1引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機器周期期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2 s。 6.2.2.1 定時器/計數(shù)器的控制
9、寄存器單片機定時/計數(shù)器T0、T1 的工作主要由TMOD、TCON、IE 3個特殊功能寄存器控制。其中:TMOD用來設置各個定時/計數(shù)器的工作方式、選擇定時或計數(shù)功能;TCON用于控制啟動運行以及作為運行狀態(tài)的標志等;IE用于對定時/計數(shù)器中斷允許進行控制。1工作方式控制寄存器TMODTMOD寄存器是一個用于設定定時/計數(shù)器工作方式的特殊功能寄存器,其低4位用于控制T0,而高4位用于控制T1。字節(jié)地址為89H,不能位尋址,設置TMOD須用字節(jié)操作指令。復位時TMOD為00H。它的各位定義見圖6-3圖6-3 TMOD各位定義(1)M1、M0:工作方式選擇位表6-1 定時/計數(shù)器的方式選擇M1、M
10、0用來選擇工作方式,對應關(guān)系如表6-1所示。(2)C/ :定時/計數(shù)功能選擇位TC/ =0為定時方式。在定時方式中,以振蕩輸出時鐘脈沖fosc的12分頻信號作為計數(shù)信號,如果單片機采用12MHz晶體,則計數(shù)頻率為1 MHz,計數(shù)脈沖周期為1s,即每1 s計數(shù)器加1一次。C/ =1為計數(shù)方式。在計數(shù)方式中,單片機在每個機器周期對外部計數(shù)脈沖進行采樣。如果前一個機器周期采樣為高電平,后一個機器周期采樣為低電平,即為一個有效的計數(shù)脈沖。在下一機器周期進行計數(shù)。因此,外部事件計數(shù)時最高計數(shù)頻率是單片機晶振頻率的1/24。如果單片機采用12MHz晶體,則外部事件計數(shù)脈沖最短周期為2s,即最快可以做到每2
11、s計數(shù)器加1。TT(3)GATE:門控位GATE=1,定時/計數(shù)器的運行受外部引腳輸入電平的控制,即 控制T0運行, 控制T1運行。GATE=0,定時/計數(shù)器的運行不受外部輸入引腳的控制。INT0INT12定時器控制寄存器TCONTCON寄存器是一個用于控制啟動運行以及作為運行狀態(tài)的標志的特殊功能寄存器。TCON寄存器既參與定時控制又參與中斷控制,其高4位用于控制T0、T1,而低4位用于控制外部中斷 、 。TCON的字節(jié)地址為88H,它可位尋址。復位時TCON為00H。它的各位定義見圖6-4 INT1INT0圖6-4 TCON各位定義TCON低4位與外中斷 、 有關(guān),高4位功能定時控制有關(guān)。I
12、NT0INT1(1)TF0和TF1:計數(shù)溢出標志位 當計數(shù)器計數(shù)溢出(計滿)時,該位置1。使用查詢方式時,此位作狀態(tài)位供查詢,但應注意查詢有效后應用軟件方法及時將該位清0;使用中斷方式時,此位作中斷標志位,在轉(zhuǎn)向中斷服務程序時由硬件自動清0。(2)TR0和R1:定時器運行控制位 TR0(TR1)=0,停止定時/計數(shù)器工作;TR0(TR1)=1,啟動定時/計數(shù)器工作。該位根據(jù)需要靠軟件來置1或清0,以控制定時器的啟動或停止。3中斷允許控制寄存器IEIE寄存器與定時/計數(shù)器有關(guān)的位為ET0和ET1,它們分別是定時/計數(shù)器0、1的中斷允許控制位。當ET0(或ET1)=0時,禁止定時/計數(shù)器0(或1)
13、中斷;而當ET0(或ET1)=1時,允許定時/計數(shù)器0(或1)中斷。6.2.2.2 定時器/計數(shù)器的工作方式 1方式013位計數(shù)結(jié)構(gòu)的工作方式,定時/計數(shù)器T0、T1都可以設置工作方式0,T0(或T1)的計數(shù)器由TH0(或TH1)高8位和TL0(或TL1)的低5位構(gòu)成,TL0(或TL1)的高3位未用。圖6-5、圖6-6分別為工作方式0的邏輯電路結(jié)構(gòu)、工作原理框圖。當TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。 圖6-5 工作方式0的邏輯電路結(jié)構(gòu) 圖6-6 工作方式0的工作原理框圖 當C/ =0時,多路開關(guān)接通振蕩脈沖的12分頻輸出,13位計
14、數(shù)器以此進行計數(shù),這就是定時方式。當C/ =1時,多路開關(guān)接通計數(shù)引腳P3.4(T0),外部計數(shù)脈沖由引腳P3.4輸入。當計數(shù)脈沖發(fā)生負跳變時,計數(shù)器加1,這就是計數(shù)方式。不管是定時方式還是計數(shù)方式,當TL0的低5位計數(shù)溢出時,向TH0進位,而全部13位計數(shù)溢出時,則向計數(shù)溢出標志位TF0進位。在滿足中斷條件時,向CPU申請中斷,若需繼續(xù)進行定時或計數(shù),則應用指令對TL0、TH0重新置數(shù),否則,下一次計數(shù)將會從0開始,造成計數(shù)或定時時間不準確。這里要說明的是:T0能否啟動,取決于TR0、GATE和引腳 的狀態(tài)。當GATE=0時,GATE信號封鎖了或門,使引腳 信號無效。而或門輸出端的高電平狀態(tài)
15、卻打開了與門。這時如果TR0=1,則與門輸出為1,模擬開關(guān)接通,定時/計數(shù)器0工作。如果TR0=0,則斷開模擬開關(guān),定時/計數(shù)器0不能工作。當GATE=1,同時TR0=1時,模擬開關(guān)是否接通由 控制。當 =1時,與門輸出高電平,模擬開關(guān)接通,定時/計數(shù)器0工作;當 =0時,與門輸出低電平,模擬開關(guān)斷開,定時/計數(shù)器0停止工作。這種情況可用于測量外信號 的脈沖寬度。INT0TTINT0INT0INT0INT0INT0方式0是13位的定時/計數(shù)方式,因而最大計數(shù)值(滿值)為M=213=8192。若計數(shù)值為N,則置入的初值X為:X=8192-N例如,定時/計數(shù)器T0的計數(shù)值為1000,則初值為719
16、2,轉(zhuǎn)換成二進制數(shù)為1110000011000B,則TH0=11100000B=E0H,TL0=xxx11000B=18H(把xxx當作000時 2方式116位計數(shù)結(jié)構(gòu)的工作方式,定時/計數(shù)器T0、T1都可以設置工作方式1,T0(或T1)的計數(shù)器由TH0(或TH1)高8位和TL0(或TL1)的低8位構(gòu)成,其邏輯電路和工作情況與工作方式0基本相同。所不同的只是組成計數(shù)器的位數(shù),它比工作方式0有更寬的計數(shù)范圍,因此,在實際應用中,工作方式1可以代替工作方式0。圖6-7、圖6-8分別為工作方式0的邏輯電路結(jié)構(gòu)、工作原理框圖。圖6-7 工作方式l的邏輯電路結(jié)構(gòu)圖6-8 工作方式1的工作原理框圖 由于是
17、16位的定時/計數(shù)方式,因而最大計數(shù)值(滿值)為M=216=65536。若計數(shù)值為N,則置入的初值X為: X=65536-N例如,定時/計數(shù)器T0的計數(shù)值為1000,則初值為65536-1000=64536,轉(zhuǎn)換成二進制數(shù)為1111110000011000B,則TH0=11111100B=FCH,TL0 = 00011000B =18 H。3方式2具有自動重裝初值的、8位計數(shù)結(jié)構(gòu)的工作方式,定時/計數(shù)器T0、T1都可以設置工作方式2。在方式2下,16位計數(shù)器被分為兩部分,即以TL0(或TL1)作計數(shù)器,而以TH0(或TH1)作預置寄存器(即保存計數(shù)初值),初始化時把8位的計數(shù)初值分別裝人TL0
18、(或TL1)和TH0(或TH1)中。當TL0(或TL1)計數(shù)溢出后,不是像前兩種工作方式那樣通過軟件方法,而是由預置寄存器TH0(或TH1)以硬件方法自動給計數(shù)器TL0(或TL1)重新加載。圖6-9、圖6-10分別為工作方式2的邏輯電路結(jié)構(gòu)、工作原理框圖。 圖6-9 工作方式2的邏輯電路結(jié)構(gòu) 圖6-10 工作方式2的工作原理框圖由于是8位的定時/計數(shù)方式,因而最大計數(shù)值(滿值)為M=28=256。若計數(shù)值為N,則置入的初值X為:X=256-N例如,定時/計數(shù)器T0的計數(shù)值為100,則初值為256-100=156,轉(zhuǎn)換成二進制數(shù)為10011100B,則TH0=TL0=10011100B。注意:由
19、于方式2計滿后,溢出信號會觸發(fā)三態(tài)門自動地把TH0(或TH1)的值裝入TL0(或TL1)中,因而如果要重新實現(xiàn)N個單位的計數(shù),不用重新置入初值。 4工作方式3工作方式3只適用于定時器T0。如果企圖將定時器T1置為方式3,則它將停止計數(shù),其效果與置TR1=0相同,即關(guān)閉定時器T1。 當T0工作在方式3時,它被拆成兩個獨立的8位計數(shù)器TL0和TH0。圖6-11、圖6-12分別為工作方式3的邏輯電路結(jié)構(gòu)、工作原理框圖。 圖6-11 工作方式3的邏輯電路結(jié)構(gòu)圖6-12 工作方式3的工作原理框圖 圖6-11中,上方的8位計數(shù)器TL0使用原定時器T0的控制位C/ 、GATE、TR0和,TL0既可以計數(shù)使用
20、,又可以定時使用,其功能和操作與前面介紹的工作方式0或工作方式l完全相同。下方的TH0只能作為簡單的定時器使用。而且由于定時/計數(shù)器0的控制位巳被TL0獨占,因此只好借用定時/計數(shù)器l的控制位TR1和TF1。即以計數(shù)溢出去置位TF1,而定時的啟動和停止則受TR1的狀態(tài)控制。TINT0由于TL0既能作定時器使用也能作計數(shù)器使用,而TH0只能作定時器使用卻不能作計數(shù)器使用,因此在工作方式3下,定時/計數(shù)器0可以構(gòu)成兩個定時器或一個定時器和一個計數(shù)器。注意:在方式3下,T0和T1的工作有很大的不同。其差別如下:1)若把T1置于方式3,則Tl停止計數(shù),其效果與置TR1=0相同,即關(guān)閉定時器T1。此進,
21、定時器T1保持其內(nèi)容不變。因此,一般不會把T1置于方式3。2)若把T0置于方式3,則16位計數(shù)器拆開為兩個獨立工作的8位計數(shù)器TL0和 TH0。但這兩個8位計數(shù)器的工作是有差別的。首先,它們的工作方式不同: 對TL0來說它既可以按計數(shù)方式工作,也可以按定時方式工作; 而TH0則只能按定時方式工作。另外,它們的控制方式也不同。 3)當T0處于方式3時,此時T1可工作為方式0、1、2,但由于此時T1已沒有控制通斷TR1和溢出中斷TF1的功能,T1只能作為串行口的波特率發(fā)生器使用,或不需要中斷的場合。6.2.2.3 定時器/計數(shù)器的計數(shù)初值計算MCS-51的定時器/計數(shù)器采用增量計數(shù)。根據(jù)定時/計數(shù)
22、器的計數(shù)結(jié)構(gòu),其最大計數(shù)為2m,其中m為計數(shù)器的位數(shù),對于工作方式0,m=13,其最大計數(shù)為213=8192;對于工作方式1,m=16,其最大計數(shù)為216=65536;對于工作方式2和工作方式3,m=8,其最大計數(shù)為28=256。在實際應用中,經(jīng)常會有少于2m個計數(shù)值的要求,例如,要求計數(shù)到1000就產(chǎn)生溢出,這時可在計數(shù)時,不從0開始,而是從一個固定值開始,這個固定值的大小,取決于被計數(shù)的大小。如要計數(shù)1000,預先在計數(shù)器里放進(2m 1000)的數(shù),再來1000個脈沖,就到了2m,就會產(chǎn)生溢出,置位TF0。這個(2m 1000)的數(shù)稱作計數(shù)初值,也稱作預置值。定時也有同樣的問題,并且也可
23、采用同樣的方法來解決。當定時/計數(shù)器為工作方式0,并假設單片機的晶振是12MHz,那么每個計時脈沖是1s,計滿213=8192個脈沖需要8.192ms,如果只需定時1ms,可以作這樣的處理:1ms即l000s,也就是計數(shù)1000時滿。因此,計數(shù)之前預先在計數(shù)器里放進2131000=81921000=7192,開始計數(shù)后,計滿1000個脈沖到8192即產(chǎn)生溢出。如果計數(shù)初值為X,則計算定時時間 t 為:t =(2NX)Tcy=(2NX)12/fosc式中:Tcy為機器周期,fosc為晶振周期。例如,如果定時/計數(shù)器為工作方式0,需要定時3ms(3000s),fOSC為12MHz。設計數(shù)初值為X,
24、則根據(jù)上述公式可得:3000=(2mX)12fOSC=(213X)12/12由此可得,X =5192需要說明的是,單片機中的定時器通常要求不斷重復定時,一次定時時間到之后,緊接著進行第二次的定時操作。一旦產(chǎn)生溢出,計數(shù)器中的值就回到0,下一次計數(shù)從0開始,定時時間將不正確,為使下一次的定時時間不變,需要在定時溢出后馬上把計數(shù)初值送到計數(shù)器。6.2.2.4 定時/計數(shù)器的初始化編程及應用定時器/計數(shù)器的功能是由軟件編程確定的,在使用定時器,計數(shù)器前都要對其進行初始化。MCS-51單片機定時/計數(shù)器的初始化編程步驟為:(1)根據(jù)要求選擇方式,確定方式控制字,寫入方式控制寄存器TMOD。(2)根據(jù)定
25、時時間要求或計數(shù)要求,計算定時/計數(shù)器的計數(shù)值,再由計數(shù)值求得初值,送計數(shù)初值的高8位和低8位到TH0(或TH1)和TL0(或TL1)寄存器中。定時/計數(shù)器的初值因工作方式的不同而不同。設最大計數(shù)值為M,則各種工作方式下的M值為:方式0 時M=213=8192;方式1 時M=216=65536;方式2 時M=28=256;方式3時,T0分成兩個8位計數(shù)器,所以兩個定時器的M值均為M=256。由于定時器計數(shù)器工作的實質(zhì)是做“加1計數(shù),所以,當最大計數(shù)值M 值為已知且計數(shù)值為N 時,初值X 可計算為:X=MN(3)如果工作于中斷方式,則根據(jù)需要開放定時/計數(shù)器的中斷,即對IE寄存器賦值(后面還需編
26、寫中斷服務程序)。(4)設置定時/計數(shù)器控制寄存器TCON的值(即將其TR0或TR1置位),啟動定時/計數(shù)器開始工作。(5)等待定時/計數(shù)時間到,定時/計數(shù)到則執(zhí)行中斷服務程序;若用查詢處理,則需編寫查詢程序判斷溢出標志,溢出標志等于1,則進行相應處理?!纠?-2】 T0運行于定時器狀態(tài),時鐘振蕩周期為12MHz,要求定時100s。試求不同工作方式時的定時初值X。當fosc =12MHz,時,Tcy=1s,N=100s/1s=100= 64H方式0(13位方式):X=21364H=1F9CH方式1(16位方式):X=21664H=FF9CH方式2、3(8位方式):X=2864H=9CH注意:
27、工作方式0的初值裝入方法:1F9CH= 1 1111 100 1 1100 B TH0的8位 TL0的低5位可見,TH0=0FCH,TL0=1CH MOV TH0,#0FCH MOV TL0,#1CH6.2.2.5 定時器/計數(shù)器的應用舉例【例例6-3】設系統(tǒng)時鐘頻率為12MHz,利用定時器/計數(shù)器T0編程實現(xiàn)從P1.0輸出周期為20ms的方波。從P1.0輸出周期為20ms的方波,只需P1.0每隔10ms取反一次。當系統(tǒng)時鐘為12MHz,定時器/計數(shù)器T0工作于方式1時,最大的定時時間為65536us,滿足10ms的定時要求。系統(tǒng)時鐘為12MHz,計數(shù)值為10000,初值X=65536-100
28、00=D8F0H,則TH0=D8H、TL0=F0H。 如果定時時間大于65536s,這時用一個定時/計數(shù)器直接處理不能實現(xiàn),這時可用:1個定時/計數(shù)器配合軟件計數(shù)方式處理,2個定時/計數(shù)器共同處理。 1采用查詢方式編程匯編語言參考程序為: ORG 0000H AJMP MAIN ORG 0300H MAIN: MOV TMOD,#01H ;定時器,計數(shù)囂T0工作于方式1 HH1: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 LOOP: JBC TF0,NEXT ;查詢計數(shù)溢出 SJMP LOOP NEXT: CPL P1.0 SJMP HH1 SJMP $C語言參
29、考程序為: # include sbit P_1=P0; void main()char i; TMOD=0 x01; TR0=1; For(; ;) TH0=0 xD8; TL0=0 xF0; do while (!TF0) P1_0=!P1_0; TF0=0; /查詢計數(shù)溢出 2采用中斷方式編程 匯編語言參考程序為: ORG 0000H LJMP MAIN ORG 000BH ;中斷處理程序 CPL P1.0 MOV TH0,#0D8H MOV TL0,#0F0H RETI ORG 0200H ;主程序 MAIN: MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#
30、0F0H SETB EA SETB ET0 SETB TR0 SJMP $C語言參考程序為:# include /包含特殊功能寄存囂庫sbit P1_0=P10;void main ( ) TMOD=0 x01; TH0=0 xD8; TL0=0 xF0; EA=1; ET0=1; TR0=1; while (1); void time0_int (void) interrupt 1 /中斷服務程序 P1_0=!P1_0; TH0=0 xD8; TL0=0 xF0; 【例例6-4】如圖6-13所示,在P1.7端接一個發(fā)光二極管LED,要求利用定時控制使LED亮1s滅1s周而復始地閃爍,設時鐘頻
31、率fosc=6MHZ。 圖6-13 例6-8的電路圖當 fosc=6MHz時,工作方式0、1、2均不能滿足定時1s的要求。如,16位定時最大為216 2s=131.072ms,顯然不能滿足要求,可用以下兩種方法解決。 方法1:采用T0產(chǎn)生周期為200ms脈沖,即P1.0每100ms取反一次作為T1的計數(shù)脈沖,T1對下降沿計數(shù),因此T1計5個脈沖正好1s。通過P1.7反相,改變LED的狀態(tài)。T0采用方式1,定時100ms。計數(shù)初值為:X= 216100103/2 =3CB0H。T1采用方式2,計5個脈沖,計數(shù)初值:X = 285=FBH均采用查詢方式,其流程圖如圖6-14所示。圖6-14 例6-
32、4的流程圖匯編參考程序為: ORG 0000H MAIN: CLR P1.7 SETB P1.0 MOV TMOD,#61H MOV TH1,#0FBH MOV TL1,#0FBH SETB TR1 LOOP1: CPL P1.7 LOOP2: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LOOP3: JBC TF0,LOOP4 SJMP LOOP3 LOOP4: CPL P1.0 JBC TF1,LOOP1 AJMP LOOP2 END 方法2:T0每隔100ms中斷一次,利用軟件對T0的中斷次數(shù)進行計數(shù),中斷10次即實現(xiàn)了1s的定時。匯編參考程序為: ORG 0
33、000H AJMP MAIN ORG 000BH ;T0中斷服務程序入口 AJMP IP0 ORG 0030H ;主程序開始 MAIN:CLR P1.7 MOV TMOD,#01H ;T0定時100ms MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA MOV R4,#0AH ;中斷10次計數(shù) SETB TR0 SJMP $ ;等待中斷 IP0:DJNZ R4,RET0 ;未到10次轉(zhuǎn)重新定時 MOV R4,#0AH ;到10次 CPL P1.7 ;P1.7的燈變反 RET0:MOV TH0,#3CH ;重新定時100ms MOV TL0,#0B0H SE
34、TB TR0 RETIC語言參考程序為:#includesbit P1_0=P10;sbit P1_7=P17;timer0 interrupt 1 using 1 /*T0中斷服務程序*/ P1_0=! P1_0; /*10ms定時時間到, P1.0反相*/ TH0=(65536-50000)/256; /*計數(shù)初值重裝載*/ TL0=(65536-50000)%256;timer1 interrupt 3 using 2 /*T1中斷服務程序入口*/ P1_7=! P1_7; /*1s定時時間到, 燈改變狀態(tài)*/main( ) P1_7=0; /*置燈初始滅*/P1_0=1; /*保證第1
35、次反相便開始計數(shù)*/TMOD=0 x61; /* T0工作在方式1定時,T1工作在方式2計數(shù) */TH0=(65536-50000)/256; /*預置計數(shù)初值*/TL0=(65536-50000)%256;TH1=256-5;TL1=256-5;IP=0 x08; /*置優(yōu)先級寄存器*/EA=1; /*CPU開中斷*/ET0=1; /*開T0中斷*/ET1=1; /*開T1中斷*/TR0=1; /*啟動T0*/TR1=1; /*啟動T1*for (;)【例例6-10】利用定時器T0測量某正脈沖信號寬度,脈沖從P3.2(即 )輸入。已知此脈沖寬度小于10ms,系統(tǒng)時鐘頻率為12MHz。要求測量
36、此脈沖寬度,并把結(jié)果順序存放在以片內(nèi) 30H 單元為首地址的數(shù)據(jù)存儲單元中。利用門控位的功能,當GATE為1時,只有 =1且軟件使TRx置1,才能啟動定時器。 利用這個特性,便可測量輸入脈沖的寬度(系統(tǒng)時鐘周期數(shù))。INT0INTx匯編參考程序為: ORG 0000H AJMP MAIN ORG 0300HMAIN: MOV TMOD,#09H ;定時器,計數(shù)器T0工作于計數(shù)方式,GATE=1 MOV TH0,#00H ;裝入計數(shù)初值 MOV TL0,#00H LP: JB P3.2,LP ;等待變低 SETB TR0 ;開始計數(shù)LOOP: JNB P3.2,LOOP ;等待變高,即脈沖上升沿
37、HERE: JB P3.2,HERE ;等待變低,即脈沖下降沿 CLR TR0 ;停止計數(shù) MOV 30H,TL0 MOV 31H,TH0 SJMP $C語言參考程序為: #include sbit P3_2=p32;void main ( ) unsigned char *P;P=0 x30; /指針指向片內(nèi)30H單元TMOD=0 x09; /GATE=1,工作方式為計數(shù)器TL0=0 x00;TH0=0 x00; /裝入初位do while (P3_2=1); /等待變低 TR0=1; while (P3_2=0); /等待變高,即脈沖上升沿 while P3_2=1); /等待變低,即脈沖
38、下降沿 TR0=0; /停止計數(shù) *P=TL0; /讀入TL0值(十六進制),存放在30H單元 P+ *P=TH0; /讀入TH0值(十六進制),存放在31H單元6.3 MCS-51單片機內(nèi)部的串行接口6.3.1 計算機串行通信基礎計算機通信是將計算機技術(shù)和通信技術(shù)的相結(jié)合,完成計算機與外部設備或計算機與計算機之間的信息交換。1通信的基本方式計算機與外界的通信有并行通信和串行通信兩種基本方式。其中:并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進行傳送;串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。圖6-15為計算機與外界的通信方式。 并行通信的傳送控制簡單、傳輸速度快,但由
39、于傳輸線較多,長距離傳送時成本高,且接收方的各位同時接收存在困難。串行通信的傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設備,但數(shù)據(jù)的傳送控制比并行通信復雜、傳輸速度慢。它們的特點可歸納為表6-2。(a) 并行通信 (b) 串行通信 圖6-15 計算機與外界的通信方式表6-2 兩種通信方式的特點2串行通信的方式串行通信按信息的格式又可分為異步通信和同步通信兩種方式。(1)異步通信異步通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設備的時鐘盡可能一致。 此方式的數(shù)據(jù)在線路上傳送時是以一個字符(字節(jié))為單位,未傳送時線路處于空閑狀態(tài)
40、,空閑線路約定為高電平“1”。見圖6-16。 異步通信是以字符為單位進行傳輸,傳送一個字符又稱為一幀信息,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間是異步的(字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同步的(各位之間的距離均為“位間隔”的整數(shù)倍)。傳送時每一個字符前加一個低電平的起始位,然后是數(shù)據(jù)位,數(shù)據(jù)位可以是58位,低位在前,高位在后,數(shù)據(jù)位后可以帶一個奇偶校驗位,最后是停止位,停止位用高電平表示,它可以是1位、1位半或2位。異步通信的數(shù)據(jù)格式如圖6-17所示。 圖6-16 異步通信的示意圖 圖6-17 異步通信數(shù)據(jù)格
41、式 異步通信的特點:不要求收發(fā)雙方時鐘的嚴格一致,對發(fā)送時鐘和接收時鐘的要求相對不高,實現(xiàn)容易,設備開銷較??;但由于一次只傳送一個字符,因而一次傳送的位數(shù)比較少,每個字符還要附加23位用于起止位,各幀之間還有間隔,因此傳輸效率不高。(2)同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過外同步法、自同步法兩種方法實現(xiàn)。其中:外同步法是發(fā)送端發(fā)送數(shù)據(jù)之前先發(fā)送同步時鐘信號,接收方用這一同步信號來鎖定自己的時鐘脈沖頻率,以此來達
42、到收發(fā)雙方位同步的目的;而自同步法是接收方利用包含有同步信號的特殊編碼(如曼徹斯特編碼)從信號自身提取同步信號來鎖定自己的時鐘脈沖頻率,達到同步目的。圖6-18為兩種同步方法的示意圖。 同步通信是以數(shù)據(jù)塊為傳輸單位,每個數(shù)據(jù)塊的頭部和尾部都要附加一個特殊的字符或比特序列,標記一個數(shù)據(jù)塊的開始和結(jié)束,一般還要附加一個校驗序列,以便對數(shù)據(jù)塊進行差錯控制。其格式如圖6-19所示。 (a) 外同步 (b) 自同步 圖6-18 兩種同步方法的示意圖圖6-19 同步通信數(shù)據(jù)格式根據(jù)同步通信規(guī)程,同步傳輸又分為面向字符的同步傳輸和面向位流的同步傳輸。1) 面向字符的同步傳輸 面向字符的同步格式圖6-20所示
43、。傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標題的開始,標題中包含源地址、目標地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗碼。典型的面向字符的同步規(guī)程如IBM的二進制同步規(guī)程BISYNC(BSC)。2) 面向位流的同步傳輸 面向位流的同步格式圖6-21所示。此時,將數(shù)據(jù)塊看作數(shù)
44、據(jù)位流,而不是作為字符流來處理,并用一個特殊的比特序列01111110來標記數(shù)據(jù)塊的開始和結(jié)束。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個連續(xù)的1就插入一個附加的0;接收方則每檢測到5個連續(xù)的1并且其后有一個0時,就刪除該0。典型的面向位的同步協(xié)議如ISO的高級數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。圖6-20 面向字符的同步格式 圖6-21 面向位的同步格式同步通信的特點是一次連續(xù)傳送任意多個字符或數(shù)據(jù)位,傳輸?shù)男矢?;但對發(fā)送時鐘和接收時鐘要求較高,往往用同一個時鐘源控制,控制線路復雜。3串行通信的傳輸方向按照數(shù)據(jù)
45、傳送的方向,串行通信可分為單工、半雙工和全雙工3種制式,如圖6-22所示。圖6-22 串行通信制式(a) 單工 (b) 半雙工 (c) 全雙工 1)單工 單工是指甲乙雙方通信時只能單一方向的傳送數(shù)據(jù),不能實現(xiàn)反向傳輸,發(fā)送方和接收方固定。 2)半雙工 半雙工是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,但不能同時接收和發(fā)送,需要分時進行,即發(fā)送時不能接收,接收時不能發(fā)送。3)全雙工 全雙工是指通信雙方均設有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實現(xiàn)甲乙雙方同時發(fā)送和接收數(shù)據(jù),發(fā)送時能接收,接收時也能發(fā)送。4串行信號的調(diào)制與解調(diào)計算機的信號是數(shù)字信號,不便于遠距
46、離通訊,若遠距離直接傳輸數(shù)字信號,信號會發(fā)生畸變。因此,在遠距離通訊中,一般需要利用電話線(或光纜、專用通信電纜)連接兩臺計算機。由于計算機內(nèi)的信息是由“0”和“1”組成數(shù)字信號,而在電話線上傳遞的卻只能是模擬電信號。于是,當兩臺計算機要通過電話線進行數(shù)據(jù)傳輸時,就需要一個設備負責數(shù)模的轉(zhuǎn)換,這個包括調(diào)制器和解調(diào)器的數(shù)模轉(zhuǎn)換器就是調(diào)制解調(diào)器(Modem,簡稱“貓”)。計算機在發(fā)送數(shù)據(jù)時,先由Modem把數(shù)字信號轉(zhuǎn)換為相應的模擬信號,這個過程稱為“調(diào)制”,其調(diào)制方法主要有頻率調(diào)制法、幅度調(diào)制法和相位調(diào)制法;經(jīng)過調(diào)制的信號通過電話線載波傳送到另一臺計算機之前,也要經(jīng)由接收方的Modem負責把模擬信
47、號還原為計算機能識別的數(shù)字信號,這個過程稱為“解調(diào)”。正是通過這樣一個“調(diào)制”與“解調(diào)”的數(shù)模轉(zhuǎn)換過程,從而實現(xiàn)了兩臺計算機之間的遠程通訊。圖6-23為Modem的工作原理圖。 圖6-23 Modem工作原理 5串行通信的錯誤校驗(1)奇偶校驗 在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應為偶數(shù)。接收字符時,對“1”的個數(shù)進行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。這種校驗方法比較簡單,目前廣泛應用于異步通信中,但它只能檢測出數(shù)據(jù)中奇數(shù)個位數(shù)出錯,不能檢查出
48、偶數(shù)個位數(shù)出錯。(2)代碼和校驗(也稱累加和校驗) 代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和”進行比較,相符則無差錯,否則即認為傳送過程中出現(xiàn)了差錯。這種校驗方法無法檢驗出字節(jié)位序(或1、0位序不同)的錯誤。 (3)循環(huán)冗余校驗 循環(huán)冗余碼校驗的基本原理是將一個數(shù)據(jù)塊看成一個位數(shù)很長的二進制數(shù),然后用一個特定的數(shù)去除它,將余數(shù)作校驗碼附在數(shù)據(jù)塊后一起發(fā)送。接收端收到該數(shù)據(jù)塊和校驗碼后,進行同樣的運算來校驗傳送是否出錯。這種校驗方法糾錯能力強
49、,目前CRC已廣泛用于數(shù)據(jù)存儲和同步數(shù)據(jù)通信中,并在國際上形成規(guī)范,已有不少現(xiàn)成的CRC軟件算法。6串行的傳輸速率與傳輸距離(1)傳輸速率 比特率是每秒鐘傳輸二進制代碼的位數(shù),單位是:位秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位),這時的比特率為:10位240個/秒 = 2400 bps。 波特率表示每秒鐘調(diào)制信號變化的次數(shù),單位是:波特(Baud)。 在異步通信中,傳輸速度往往又可用每秒傳送多少個字節(jié)來表示(Bps)。它與波特率的關(guān)系為: 波特率(Baud)=1個字符的二進制位數(shù)字符/秒(bps) 例如:每秒傳送200個字符,每個字符
50、1位起始位、8個數(shù)據(jù)位、1個校驗位和1個停止位。則波特率為2200bps。 波特率和比特率不總是相同的,對于將數(shù)字信號1或0直接用兩種不同電壓表示的所謂基帶傳輸,比特率和波特率是相同的。所以,我們也經(jīng)常用波特率表示數(shù)據(jù)的傳輸速率。(2)傳輸距離與傳輸速率的關(guān)系 串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當比特率超過1000 bps 時,最大傳輸距離迅速下降,如9600 bps 時最大距離下降到只有76m(約250英尺)。7串行接口的基本任務(1)實現(xiàn)數(shù)據(jù)格式
51、化 因為CPU發(fā)出的數(shù)據(jù)是并行數(shù)據(jù),接口電路應實現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化任務, 如自動生成起止方式的幀數(shù)據(jù)格式(異步方式)或在待傳送的數(shù)據(jù)塊前加上同步字符等。(2)進行串、并轉(zhuǎn)換 在發(fā)送端,接口將CPU送來的并行信號轉(zhuǎn)換成串行數(shù)據(jù)進行傳送;而在接收端,接口要將接 收到串行數(shù)據(jù)變成并行數(shù)據(jù)送往CPU,由CPU進行處理。(3)控制數(shù)據(jù)的傳輸速率 接口應具備對數(shù)據(jù)傳輸率波特率的控制選擇能力,即具有波特率發(fā)生器。(4)進行傳送錯誤檢測 在發(fā)送時,對傳送的數(shù)據(jù)自動生成校驗位或校驗碼,在接收端能檢查校驗位或校驗 碼,以確定傳送中是否有誤碼。 MCS-51系列單片機內(nèi)有一個全雙工的異步通信接口,通過
52、對串行接口寫控制字可以選擇其數(shù)據(jù)格 式,同時內(nèi)部有波特率發(fā)生器,提供可選的波特率,可完成雙機通信或多機通信。 8串行通信總線的接口標準及其接口在串行傳輸中,通信的雙方都按通信協(xié)議進行,所謂通信協(xié)議就是通信雙方必須共同遵守的 一種約定,約定包括數(shù)據(jù)的格式、同步的方式、傳送的步驟、檢糾錯方式及控制字符的定義等。串行接口通常分為兩種類型:串行通信接口和串行擴展接口。其中:串行通信接口是指設備之間的互連接口,它們互相之間距離比較長,根據(jù)通信距離和抗干擾性要求,可選擇TTL電平傳輸、RS-232C/RS-422A/RS-485等串行通信總線接口標準進行串行數(shù)據(jù)傳輸;串行擴展接口是設備內(nèi)部器件之間的互連接
53、口。常用的串行擴展總線接口標準有SPI、I2C等,串行接口擴展的芯片很多,可以根據(jù)需要選擇。(1)TTL電平通信接口 微機串行口的輸入、輸出一般均為TTL電平。如果兩個微機相距在1.5m之內(nèi),它們的串行口可直接交叉相連,即甲機的接收端RXD與乙機發(fā)送端TXD相連,而乙機接收端RXD與甲機發(fā)送端TXD端相連。 TTL電平傳輸?shù)目垢蓴_性差、傳輸距離短、傳輸速率低。為提高串行通信的可靠性,增大串行通信的距離和提高傳輸速率,通常都采用RS-232、RS-422A、RS-485等標準串行接口進行串行數(shù)據(jù)傳輸。(2)RS-232C串行接口標準 RS-232C是美國電子工業(yè)協(xié)會(EIA)1969年修定的一種
54、國際通用的串行接口標準。它最初是為遠程通信連接數(shù)據(jù)終端設備(DTE)和數(shù)據(jù)通信設備(DCE)制定的標準,目前已廣泛用做計算機與終端或外部設備的串行通信接口標準。該標準規(guī)定了通信設備之間信號傳送的機械特性、信號功能、電氣特性及連接方式等。1) 機械特性。RS-232C接口規(guī)定使用25針和9針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義,如圖6-24所示。 (a) DB25插座/插頭 (b) DB9插座/插頭 圖6-24 DB25和DB9插座/插頭2) 電氣特性。因通信時(有干擾)信號要衰減,因此RS232采用電平負邏輯,拉開“0”和“1”的電壓檔次,以免信息出錯。RS232負邏輯(EI
55、A電平):“0”為+3V+25V(典型值+5V+15V);“1”為 -3V -25V(典型值-5V -15V)。其最大傳輸信息的長度為15m。而TTL電平采用正邏輯:“0”為0 -2.4V;“1”為3.6V-5V;高阻為2.4V-3.6V。TTL電平的直接傳輸距離一般不超過1.5m。3)功能特性。表6-3列出了RS-232C信號線名稱、符號以及對應在DB-25和DB-9上的針腳號。4) RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路。由于RS-232C總線上傳輸?shù)男盘柕倪壿嬰娖脚cTTL邏輯電平差異很大,所以就存在這兩種電平的轉(zhuǎn)換問題,常用的RS232電平轉(zhuǎn)換器芯片有MC1488/ 1489、MAX
56、232等。這些專用接口芯片稱為收發(fā)器。圖6-25 為采用MC1488/ MC1489芯片實現(xiàn)RS-232C與TTL之間電平轉(zhuǎn)換電路。 MAX232只需單一的+5V供電,由內(nèi)部電壓變換器產(chǎn)生士10V。芯片內(nèi)有2個發(fā)送器(TTL電平轉(zhuǎn)換成RS232電平),2個接收器(RS232電平轉(zhuǎn)換為TTL電平)。MAX232的內(nèi)部結(jié)構(gòu)及引腳信號如圖6-26所示。表6-3 RS-232C標準接口的主要引腳定義(a) RS-232C電平與TTL電平轉(zhuǎn)換芯片 (b) RS-232C-TTL電平轉(zhuǎn)換芯片之間連接關(guān)系圖6-25 RS-232C與TTL之間電平轉(zhuǎn)換芯片MC1488/ MC1489 圖6-26 MAX232
57、的內(nèi)部結(jié)構(gòu)及引腳信號 5) 過程特性 過程特性規(guī)定了信號之間的時序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)。如果通信距離在1.515m之間時,可采用RS-232C標準接口直接把它們連接起來;如果通信距離超過15m,還需把信號通過MODEN和電話線后再把它們連接起來。圖6-27為RS-232C的兩種連接形式。6) 采用RS-232C接口存在的問題a 傳輸距離短、傳輸速率低 RS-232C總線標準受電容允許值的約束,使用時傳輸距離一般不要超過15m。最高傳送速率為20 Kbps。b 有電平偏移 RS-232C總線標準要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產(chǎn)
58、生壓降。c 抗干擾能力差 RS-232C在電平轉(zhuǎn)換時采用單端驅(qū)動、單端接收方式進行數(shù)據(jù)的輸入輸出,在傳輸過程中當干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標準不得不采用比較大的電壓擺幅。(a) 近程通信連接 (b) 遠程通信連接 圖6-27 RS-232C的兩種連接形式(3)RS-422A串行接口標準 RS-232C有明顯缺點:傳輸速率低、通信距離短、接口處信號容易產(chǎn)生串擾等。國際上又推出了RS-422A標準。與RS-232C的主要區(qū)別是,收發(fā)雙方的信號地不再共地,RS-422A采用了雙端平衡驅(qū)動和差分接收的方法。用于數(shù)據(jù)傳輸?shù)氖莾蓷l平衡導線,這相當于兩個單端驅(qū)動器。兩條線
59、上傳輸?shù)男盘栯娖?,當一個表示邏輯“1”時,另一條一定為邏輯“0”。若傳輸中信號中混入干擾和噪聲(共模形式),由于差分接收器的作用,就能識別有用信號并正確接收傳輸?shù)男畔?,并使干擾和噪聲相互抵消。 RS-422的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以RS-422A能在長距離、高速率下傳輸數(shù)據(jù)。它的最大傳輸率為10 Mbps,電纜允許長度為12m,如果采用較低傳輸速率時,最大傳輸距離可達1219m。 圖6-28為RS-422典型的4線接口電路。圖中的SN75174、SN75175是TTL電平到RS-422A電平與RS-422A電平到TTL電平的電平轉(zhuǎn)換芯片。 圖6-28 RS-422A典
60、型的4線接口電路 (4)RS-485串行接口標準 RS-422A雙機通信需4芯傳輸線,這對長距離通信很不經(jīng)濟,故在工業(yè)現(xiàn)場,通常采用雙絞線傳輸?shù)腞S-485串行通信接口,實現(xiàn)半雙工的多機通信。 RS-485是RS-422A的變型,它與RS-422A 的區(qū)別:RS-422A 為全雙工,采用兩對平衡差分信號線;RS-485為半雙工,采用一對平衡差分信號線。RS-485對于多站互連是十分方便的,很容易實現(xiàn)多機通信。RS-485允許最多并聯(lián)32臺驅(qū)動器和 32 臺接收器。 如果在一個網(wǎng)絡中連接的設備超過 32 個,還可以使用中繼器。與RS-422A一樣,最大傳輸距離約為1219m,最大傳輸速率為10M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公墓墓位買賣與墓園設施租賃合同3篇
- 2025年農(nóng)村土地租賃與農(nóng)民就業(yè)合作合同3篇
- 蘭州市二零二五年度政府合同履約監(jiān)督協(xié)議3篇
- 2025年度養(yǎng)生館加盟店營銷策劃與推廣合同3篇
- 2025年度公司專車接送服務及費用結(jié)算合同3篇
- 電腦耗材采購合同
- 《人生時間管理》課件
- 2024-2025學年浙江省紹興會稽聯(lián)盟高一上學期期中聯(lián)考歷史試題(解析版)
- 單位管理制度集粹選集人事管理
- 2025年高考數(shù)學一輪復習之相等關(guān)系與不等關(guān)系
- 腦病科中醫(yī)健康宣教課件
- 江蘇省常州市教育學會2023-2024學年八年級上學期期末學業(yè)水平檢測英語試題(無答案)
- 物業(yè)管理服務領域:保利物業(yè)企業(yè)組織架構(gòu)及部門職責
- 如何在地震演練中應對火災和燃氣泄漏
- 融媒體專題報道方案
- 工作失誤匯報
- 呼吸科主任述職報告
- 旅游法規(guī)期末試卷與參考答案匯編
- 11054-國家開放大學2023年春期末統(tǒng)一考試《流通概論》答案
- 晉江物流行業(yè)分析
- 編譯原理考試題及答案匯總
評論
0/150
提交評論