




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章MCS-51系列單片機的硬件結構2.151系列單片機結構簡介2.251系列單片機內部結構與外部引腳說明2.3微處理器2.4存儲器2.5并行輸入/輸出接口2.6定時器/計數器2.7串行輸入/輸出口2.851系列單片機的中斷系統2.9復位狀態及復位電路2.10單片機的低功耗方式2.151系列單片機結構簡介
微型計算機基本組成有三部份,即CPU+存儲器+I/O接口。若將這些部件和實時控制部件集成在一塊芯片上,則稱為單片機。
8051內部結構包括:運算器、控制器、片內存儲器、4個并行I/O口、串行口、定時器/計數器、中斷系統、振蕩器等功能部件。這些部件通過內部總線連接起來,基本結構仍然是通用CPU加上外圍芯片的結構模式,但功能單元上的控制與先前相比有重大變化,采用了特殊功能寄存器(SFR)進行集中控制的方法2.2MCS-51系列單片機內部結構與外部引腳說明2.2.1內部結構框圖51單片機PIC單片機鍵盤顯示器位控溫度
從機電機單片機512×8SPI用8位PIC單片機組成的系統MCS-51PIC16F87x數據與程序共享數據總線雙總線結構單級順序執行兩級指令流水線結構A累加器W累加器PSW程序狀態字STATUSRAM中的軟堆棧8層嵌套硬件堆棧雙向I/O口拉電路小雙向I/O口拉電流可達20mA5個中斷源14個中斷源無間接尋址寄存器FSR兩個定時/計數器三個定時/計數器復位信號RST復位信號MCLR其它輸出控制信號PSEN、EA無MCS-51單片機與PIC單片機內部結構區別2.2.2外部引腳說明1.主電源引腳
VCC(40腳):接+5V電源正端。
VSS(20腳):接+5V電源地端。
2.外接晶體引腳
XTAL1(19腳):接外部石英晶體的一端。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成了片內振蕩器。當采用外部時鐘時,對于HMOS單片機,該引腳接地;對于CHMOS單片機,該引腳作為外部振蕩信號的輸入端。圖2.2MCS-51系列單片機引腳及總線結構3.輸入/輸出引腳
(1)P0口(39~32腳):P0.0~P0.7統稱為P0口。在不接片外存儲器與不擴展I/O口時,可作為準雙向輸入/輸出口。在接有片外存儲器或擴展I/O口時,P0口分時復用為低8位地址總線和雙向數據總線。
(2)P1口(1~8腳):P1.0~P1.7統稱為P1口,可作為準雙向I/O口使用。對于52子系列,P1.0與P1.1還有第二功能:P1.0可用作定時器/計數器2的計數脈沖輸入端T2,P1.1可用作定時器/計數器2的外部控制端T2EX。(3)P2口(21~28腳):P2.0~P2.7統稱為P2口,一般可作為準雙向I/O口使用;在接有片外存儲器或擴展I/O口且尋址范圍超過256字節時,P2口用作高8位地址總線。
(4)P3口(10~17腳):P3.0~P3.7統稱為P3口。除作為準雙向I/O口使用外,還可以將每一位用于第二功能,而且P3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。P3口的第二功能如表2.1所示。表2.1P3口第二功能表引腳第二功能P3.0串行口輸入端P3.1串行口輸出端P3.2外部中斷0請求輸入端,低電平有效P3.3外部中斷1請求輸入端,低電平有效P3.4定時器/計數器0計數脈沖輸入端P3.5定時器/計數器1計數脈沖輸入端P3.6外部數據存儲器寫選通信號輸出端,低電平有效P3.7RXDTXDINT0INT1T0T1WRRD4.控制線
(1)ALE/PROG(30腳):地址鎖存有效信號輸出端。ALE在每個機器周期內輸出兩個脈沖。在訪問片外程序存儲器期間,下降沿用于控制鎖存P0輸出的低8位地址;在不訪問片外程序存儲器期間,可作為對外輸出的時鐘脈沖或用于定時目的。但要注意,在訪問片外數據存儲器期間,ALE脈沖會跳空一個,此時作為時鐘輸出就不妥了(詳見2.3.3節CPU時序)。對于片內含有EPROM的機型,在編程期間,該引腳用作編程脈沖PROG的輸入端。(2)PSEN(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。當從外部程序存儲器讀取指令或常數期間,每個機器周期該信號兩次有效,以通過數據總線P0口讀回指令或常數。在訪問片外數據存儲器期間,PSEN信號將不出現。
(3)RST/VPD(9腳):RST即為RESET,VPD為備用電源。該引腳為單片機的上電復位或掉電保護端。當單片機振蕩器工作時,該引腳上出現持續兩個機器周期的高電平,就可實現復位操作,使單片機回復到初始狀態。上電時,考慮到振蕩器有一定的起振時間,該引腳上高電平必須持續10ms以上才能保證有效復位。當VCC發生故障,降低到低電平規定值或掉電時,該引腳可接上備用電源VPD(+5V)為內部RAM供電,以保證RAM中的數據不丟失。(4)EA/VPP(31腳):EA為片外程序存儲器選用端。該引腳有效(低電平)時,只選用片外程序存儲器,否則單片機上電或復位后選用片內程序存儲器。對于片內含有EPROM的機型,在編程期間,此引腳用作21V編程電源VPP的輸入端。綜上所述,MCS-51系列單片機的引腳可歸納為以下兩點:
(1)單片機功能多,引腳數少,因而許多引腳都具有第二功能。
(2)單片機對外呈現3總線形式,由P2、P0口組成16位地址總線;由P0口分時復用為數據總線;由ALE、PSEN、RST、EA與P3口中的INT0、INT1、T0、T1、WR、RD共10個引腳組成控制總線,如圖2.2(b)所示。由于是16位地址線,因此,可使片外存儲器的尋址范圍達到64KB。 PIC16F877引腳
MCLRRA
OSC1RB
PIC16F877RC
OSC2RDV
GNDRE
68883A、RA端口RA端口由6個I/O位組成,他們有的具有2個功能或3個功能。RA5~RA0:雙向可編程I/O端口。AN4~AN0(RA5、RA3~RA0):ADC5路模擬信號輸入端。TOCKI(RA4):定時器0時鐘輸入端。
SS(RA5):在SPI通信中用于選擇從動器件(外圍設備)。±VREF:參考電源,對應+VREF(RA3)和
-VREF(RA2)B、RB端口RB端口由8個I/O位組成,他們有的具有2個功能。RB7~RB0:雙向可編程I/O端口INT(RB0):中斷請求輸入端PGM(RB3):低電壓編程輸入端PGC(RB6):在線調試輸入端或串行編程時鐘輸入端PGD(RB7):在線調試輸入端或串行編程數據輸入端C.RC端口RC端口由8個I/O位組成,他們有的具有2個功能或3個功能。RC7~RC0:雙向可編程I/O端口。TIOSO/TICKI(RC0):定時器1振蕩,輸出/定時器1時鐘輸入TIOSI/CCP2(RC1):定時器1振蕩,輸入/捕捉器2,輸入/比較器
2輸出/PWM2輸出。CCP1(RC2):捕捉器2,輸入/比較器2,輸出/PWM2輸出。SCK/SCL(RC3):SPI/IIC串行口同步時鐘輸入/輸出。SDI/SDA(RC4):SPI串行口數據輸入/IIC串行口數據輸入/輸出SDO(RC5):SPI串行口數據輸出。TX/CK(RC6):USART全雙工異步發送/USART半雙工同步傳送時RX/DT(RC7):USART全雙工異步接收/USART半雙工同步傳送數據D、RD端口RD端口由8個I/O位組成,他們具有2個功能。RD7~RD0:雙向可編程I/O端口。PSP7~PSP0(RD7~RD0):作從動并行口與其他CPU數據總線連接。E、RE端口RE端口由3個I/O位組成,他們具有2個功能或3個功能。RE2~RE0:雙向可編程I/O端口。RD/AN5(RE0):并行口讀控制端RD/第5路模擬信號輸入AN5WR/AN6(RE1):并行口寫控制端WR/第6路模擬信號輸入AN6。CS/AN7(RE2):并行口片選控制端CS/第7路模擬信號輸入AN7。2.3微處理器2.3.1運算部件運算部件以算術邏輯單元ALU為核心,包括累加器ACC、寄存器B、暫存器、程序狀態字PSW等許多部件。它能實現數據的算術邏輯運算、位變量處理和數據傳輸操作。微處理器(CPU)由運算部件和控制部件兩大部件組成。1.算術邏輯單元ALU與累加器ACC、寄存器B(1)算數運算:完成8位二進制的加、減、乘、除、加1、減1及BCD加法的十進制調整等算術運算。(2)邏輯運算:對8位變量進行邏輯“與”、“或”、“異或”、循環移位、求補、清零等邏輯運算。(3)數據傳輸、程序轉移等功能。2.程序狀態字程序狀態字PSW是一個8位的標志寄存器,它保存指令執行結果的特征信息,以供程序查詢和判別。其各位的定義如下:字節地址D0HCACF0RS1RS0OV---PPSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0
進位標志位C(PSW.7):在執行某些算術操作類、邏輯操作類指令時,可被硬件或軟件置位或清零。它表示運算結果是否有進位或借位。如果在最高位有進位(加法時)或有借位(減法時),則C=1,否則C=0。
輔助進位(或稱半進位)標志位AC(PSW.6):它表示兩個8位數運算,低4位有無進(借)位的狀況。當低4位相加(或相減)時,若D3位向D4位有進位(或借位),則AC=1,否則AC=0。在BCD碼運算的十進制調整中要用到該標志。用戶自定義標志位F0(PSW.5):用戶可根據自己的需要對F0賦予一定的含義,通過軟件置位或清零,并根據F0=1或0來決定程序的執行方式,或反映系統某一種工作狀態。
工作寄存器組選擇位RS1、RS0(PSW.4、PSW.3):可用軟件置位或清零,用于選定當前使用的4個工作寄存器組中的某一組(詳見第2.4節)。溢出標志位OV(PSW.2):做加法或減法時,由硬件置位或清零,以指示運算結果是否溢出。OV=1反映運算結果超出了累加器的數值范圍(無符號數的范圍為0~255,以補碼形式表示一個有符號數的范圍為-128~+127)。進行無符號數的加法或減法時,OV的值與進位位C的值相同;進行有符號數的加法時,如最高位、次高位之一有進位,或做減法時,如最高位、次高位之一有借位,OV被置位,即OV的值為最高位和次高位的異或(C7⊕C6)。
執行乘法指令MULAB也會影響OV標志,積>255時OV=1,否則OV=0。執行除法指令DIVAB也會影響OV標志,如B中所放除數為0,OV=1,否則OV=0。奇偶標志位P(PSW.0):在執行指令后,單片機根據累加器A中1的個數的奇偶自動給該標志置位或清零。若A中1的個數為奇數,則P=1,否則P=0。該標志對串行通信的數據傳輸非常有用,通過奇偶校驗可檢驗傳輸的可靠性。PIC單片機程序狀態寄存器STATUS0:執行加法(或減法)指令時,如果最高位無進位(或借位);1:執行加法(或減法)指令時,如果最高位有進位(或借位)。0:執行加法(或減法)指令時,如果低4位向高4位無進位(或借位);1:執行加法(或減法)指令時,如果低4位向高4位有進位(或借位)。0:算術或邏輯運算結果不為0;1:算術或邏輯運算結果為全0。0:選擇數據存儲器低位區:即區0(FSR的BIT7=0)或區1(FSR的BIT7=1);1:選擇數據存儲器高位區:即區2(FSR的BIT7=0)或區3(FSR的BIT7=1)。RP1、RP0=00選中區0RP1、RP0=01選中區1RP1、RP0=10選中區2RP1、RP0=11選中區3B7B6B5B4B3B2B1B0IPRPR1RP0TOPDZDCC3.布爾處理機實際上這是一個完整的一位微計算機,它具有自己的CPU、寄存器、FO、存儲器和指令集。一位機在開關決策、邏輯電路仿真和實時控制方面非常有效。位處理器系統包括以下幾個功能部件:
(1)位累加器:借用進位標制位CY。即作為數據源之一又是運算結果的存放處,位數據傳送的中心。
(2)位尋址的RAM:內部RAM位尋址區0~127位(20H~2FH)(3)位尋址寄存器:SFR中可位尋址的位。
(4)位尋址的I/O口:并行I/O口中可以位尋址的位(如P1.0)
(5)位操作指令系統:置位、清零、取反、位狀態判跳、位邏輯運算、位輸入/輸出等。時鐘電路
8051單片機的時鐘信號通常由兩種方式產生:一是內部振蕩方式,二是外部時鐘方式。
(a)內部方式時鐘電路(b)外部方式時鐘電路內部振蕩方式內部振蕩方式是在XTAL1和XTAL2引腳兩端跨接石英晶體振蕩器和兩個電容構成穩定的自激振蕩電路。電容C1和C2通常取30pF。晶振頻率fosc=1.2MHz~12MHz。表2.2單片機外部時鐘接法表芯片類型XTAL1XTAL2HMOS型接地接片外振蕩脈沖輸入端(帶上拉電阻)CHMOS型接片外振蕩脈沖輸入端(帶上拉電阻)懸浮接法在由許多單片機組成的系統中,為了各單片機之間時鐘信號的同步,應當引入唯一的公用外部脈沖信號作為各單片機的振蕩脈沖,這時部的脈沖信號應經XTAL2引腳入。片外時鐘方式PIC時鐘振蕩輸入/輸出端
晶體或陶瓷諧振器
一般CPU都是通過外接的晶體或陶瓷諧振器產生CPU的工作時鐘,PIC16F877是通過OSC1(Pin13)和OSC2(Pin14)外接晶體或陶瓷諧振器產生CPU的工作時鐘。SLEEP休眠控制CPU時鐘OSC1OSC2RS衰減電阻晶體RfC1C2
同其他CPU不同的是PIC振蕩器的增益是可調整的,即圖中的Rf。這是因為不同頻率的晶體或不同廠家生產的晶體,在同輔助電路構成振蕩器時,所需的激勵功率是不同的。一般情況下,振蕩頻率越低所需的激勵功率越小,振蕩頻率越高所需的激勵功率越大。
SLEEP休眠控制CPU時鐘OSC1OSC2RS衰減電阻晶體RfC1C2LP低功耗晶體振蕩
XT晶體振蕩
HS高速晶體測試點2.3.3CPU時序
振蕩周期:振蕩脈沖的周期。
狀態周期:兩個振蕩周期為一個狀態周期,也稱為時鐘周期,用S表示。兩個振蕩周期作為兩個節拍分別稱為節拍P1和節拍P2。在狀態周期的前半周期P1有效時,通常完成算術邏輯操作;在后半周期P2有效時,一般進行內部寄存器之間的傳輸。
機器周期:一個機器周期包含6個狀態周期,用S1、S2、…、S6表示;共12個節拍,依次可表示為S1P1、S1P2、S2P1、S2P2、…、S6P1、S6P2。
指令周期:執行一條指令所占用的全部時間,它以機器周期為單位。MCS-51系列單片機除乘法、除法指令是4周期指令外,其余都是單周期指令和雙周期指令。若用12MHz晶振,則單周期指令和雙周期指令的指令周期時間分別為1μs和2μs,乘法和除法指令為4μs。圖2.4單周期指令時序(a)單字節周期指令(如INCA);(b)雙字節單周期指令(如ADDA,#data)PIC16F877單片機CPU時序Q1從存儲器中取指令取指令、PC執行指令、PC-1取指令、PC+1取指令、PC+2執行指令、PC
執行指令、PC+1
取指令、PC+3在Q2~Q4對指令進行譯碼執行,鎖存到指令寄存器Q1Q2Q3Q4Q1Q2Q3Q4Q1Q2Q3Q4
Q1Q2Q3Q4PC周期0周期1周期22.4存儲器
多數單片機系統的存儲器組織方式與通用微機不同,其程序存儲器地址空間和數據存儲器地址空間相互獨立。2.4.1程序存儲器1.編址與訪問PC(16位)0000H~FFFFH尋址范圍64K圖2.5程序存儲器編址圖(a)51子系列;(b)52子系列2.程序的7個特殊入口地址表2.3MCS-51單片機復位、中斷入口地址操作入口地址復位0000H外部中斷00003H定時器/計數器0溢出000BH外部中斷10013H定時器/計數器1溢出001BH串行口中斷0023H定時器/計數器0溢出或T2EX端負跳變(52子系列)002BHPIC16F877程序存儲器
程序計數器PC為13位尋址范圍8K2.4.2數據存儲器
1.編址與訪問
MCS-51單片機片內、外數據存儲器是兩個獨立的地址空間,應分別單獨編址。片內數據存儲器除RAM塊外,還有特殊功能寄存器(SFR)塊。對于51子系列,前者有128個字節,其編址為00H~7FH;后者有128個字節,其編址為80H~FFH;二者連續而不重疊。對于52子系列,前者有256個字節,其編址為00H~FFH;后者有128個字節,其編址為80H~FFH。后者與前者高128個字節的編址是重疊的。由于訪問它們所用的指令不同,并不會引起混亂。片外數據存儲器一般是16位編址。數據存儲器的編址如圖2.6所示。圖2.6數據存儲器編址圖(a)51子系列;(b)52子系列2.片內RAM圖2.751子系列單片機片內RAM的配置1)工作寄存器區
00H~1FH單元為工作寄存器區。工作寄存器也稱通用寄存器,用于臨時寄存8位信息。工作寄存器分成4組,每組都有8個寄存器,用R0~R7來表示。程序中每次只用1組,其它各組不工作。使用哪一組寄存器工作由程序狀態字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來選擇,其對應關系如表2.4所示。通過軟件設置RS0和RS1兩位的狀態,就可任意選一組工作寄存器工作。這個特點使MCS-51單片機具有快速現場保護功能,對于提高程序效率和響應中斷的速度是很有利的。表2.4工作寄存器組的選擇表PSW.4(RS1)PSW.3(RS0)當前使用的工作寄存器組R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)2)位尋址區
20H~2FH單元是位尋址區。這16個單元(共計16×8=128位)的每一位都賦予了一個位地址,位地址范圍為00H~7FH。位尋址區的每一位都可當作軟件觸發器,由程序直接進行位處理。通常可以把各種程序狀態標志、位控制變量存于位尋址區內。3)數據緩沖區
30H~7FH是數據緩沖區,也即用戶RAM區,共80個單元。由于工作寄存器區、位尋址區、數據緩沖區統一編址,使用同樣的指令訪問,這三個區的單元既有自己獨特的功能,又可統一調度使用。因此,前兩個區未使用的單元也可作為用戶RAM單元使用,使容量較小的片內RAM得以充分利用。
52子系列片內RAM有256個單元,前兩個區的單元數與地址都和51子系列的一致,用戶RAM區卻為30H~FFH,有208個單元。4)堆棧和堆棧指針圖2.8MCS–51單片機堆棧PIC16F877CPU硬堆棧由8個單元組成,每個單元位長度是13位,堆棧深度固定,硬堆棧內容出棧后棧中內容丟失。第1次進棧第2次進棧第8次進棧第1次出棧第2次出棧第7次出棧1XXXXXXXXXXXXXX(a)進棧操作
┅
876543217654321XX(b)出棧操作21XXXXXXXXXXXX1XXXXXXXXXXXXXX
┅
654321XXXX特殊功能寄存器(SFR,即SpecialFunctionRegisters),又稱為專用寄存器,專用于控制、管理片內算術邏輯部件、并行I/O口、串行I/O口、定時器/計數器、中斷系統等功能模塊的工作。51子系列有18個專用寄存器,占21個字節,52子系列有21個專用寄存器,占26個字節。它們離散地分布在80H~0FFHRAM空間中。特殊功能寄存器地址不連續,空閑地址無意義,對用戶來講,這些單元不存在。對特殊功能寄存器只能使用直接尋址方式,書寫時既可使用寄存器符合,也可使用寄存器單元地址。有12個SFR可位尋址。
3.特殊功能寄存器塊表2.5特殊功能寄存器名稱、表示符、地址一覽表表2.5特殊功能寄存器名稱、表示符、地址一覽表PIC16F877(A)數據RAM
數據存儲器分為4個存儲體,存儲體中包含通用寄存器和專用寄存器(SFR),存儲體的選擇采用狀態寄存器(STATUS)的位6(RPl)和位5(RP0),每個存儲體最多可包含128字節,而每個存儲體專用寄存器放在低位存儲區,專用寄存器上面是通用寄存器,通用寄存器采用靜態隨機訪問存儲器(SRAM)。所有的執行存儲體都包含有專用寄存器(SFR),為減少編碼和快速訪問的目的,一些經常訪問的專用寄存器可以從一個存儲體映射到另一個存儲體。注意:體1-體3的最后16個單元實際上是不存在的,但可以使用其地址來訪問,但是真正被訪問的單元不是地址所對應的體1-體3的對應單元,而是在體0中所“影射”的單元。
【例如】訪問體1中的F0H單元時,真正被訪問的卻是體1中的70H單元。體2、體3也是如此。我們將體0中70H~7FH的16個單元稱之為體1-3的影射區;影射區的好處是在一些較特殊的場合(如中斷響應時)對數據的保護可以省掉對RAM的體選操作)具體將在后面相關的章節中介紹。PIC16F877RAM中通用寄存器的結構通用寄存器80B映射到70~7FH通用寄存器16B通用寄存器80B映射到70~7FH通用寄存器96B通用寄存器16B通用寄存器80B映射到70~7FH00H1FH20H70H7FH80H9FHA0HEFHF0HFFH100H10FH110H11FH120H16FH170H17FH180H18FH1A0H19FH18FH1EFH1F0H1FFHPIC16F87X特殊功能寄存器與通用寄存器不同,特殊功能寄存器在PIC16F87X系列中4個體中的布局保持了一致(重疊式設計),這是考慮到編程時節省選體操作、同時工程技術人員在使用PIC16F87X系列中不同產品之間編程時的兼容性(參見結構圖)。將特殊功能寄存器劃分為:
①與CPU內核相關的特殊功能寄存器; ②與外圍模塊相關的特殊功能寄存器。為了便于學習和掌握,先分析與CPU相關的特殊功能寄存器,而與外圍模塊相關的寄存器放到相關的章節中介紹。有六個比較常用、重要的特殊功能寄存器:狀態寄存器STATUS;間接尋址寄存器INDF;程序計數器低八位PCL;文件選擇寄存器FSR;程序計數器高位鎖存器PCLATH;中斷控制寄存器INCON。
它們在四個體上地址是互相映像的,在物理上是同一個寄存器單元。還有一些寄存器在體0、體1(或體2、體3)內是相互映像的。這種設計的好處:訪問時不受“體選”的約束,簡化編程。MCS-51與PIC16F87X數據存儲器比較
存儲器內都存在特殊功能寄存器與通用寄存器的劃分,51中的數據緩沖區在PIC中也屬于通用寄存器。51片內RAM中有位尋址區,PIC中沒有(整個存儲器基本都可以按位尋址)。存儲器都存在分組,但分組范圍不同。
為避免“體選”問題PIC16F87X中建有“影射區”。
數據EEPROM和Flash程序存儲器在正常的操作都可以讀/寫,對EEPROM的操作是單字節,對程序存儲器的操作是字。對定義的字節或字進行“寫”操作,實際的過程是“先擦除一然后寫”的操作。讀/寫兩種存儲器的操作都是通過一系列特殊寄存器(FSR)間接尋址的。這些寄存器包含EEDATA,EEDATH,EEADR,EEADRH,EECON1和EECON2。PIC16F877數據EEPROM和閃存的組織2.5并行輸入/輸出接口8051有四個8位并行接口P0~P3,共32根I/O線。它們都具有雙向I/O功能,均可以作為數據輸入/輸出使用。每個接口內部都有一個8位數據輸出鎖存器、一個輸出驅動器和一個數據輸入緩沖器,因此,CPU數據從并行I/O口輸出時可以得到鎖存,輸入可以得到緩沖。CPU鎖存器總線外設鎖存器CPU外設緩沖器CPU總線外設三態緩沖器CPU外設OE讀選通2.5.1P0口
1.P0口結構
P0口是一個三態雙向口,可作為地址/數據分時復用口,也可作為通用I/O接口。其1位的結構原理如圖2.9所示。P0口由8個這樣的電路組成。鎖存器起輸出鎖存作用,8個鎖存器構成了特殊功能寄存器P0;場效應管(FET)V1、V2組成輸出驅動器,以增大帶負載能力;三態門1是引腳輸入緩沖器;三態門2用于讀鎖存器端口;與門3、反相器4及模擬轉換開關構成了輸出控制電路。圖2.9P0口1位結構圖P0口某位由1個輸出鎖存器、2個三態輸入緩沖器、1個輸出驅動電路和1個輸出控制電路組成。輸出驅動電路由一對FET(場效應管)V1、V2組成。輸出控制電路由一個與門電路、1個反相器和1路多路開關MUX組成。2.通用I/O接口功能1.控制信號=0,V2截止,MUX接鎖存器。準雙向口。2.P0口作輸出口:輸出鎖存,漏極開路輸出,需要接上拉電阻.
P0口中的輸出可以驅動8個LSTTL負載。3.P0口作輸入口:懸浮狀態,一個高阻抗的輸入口。
(1)讀鎖存器.適應“讀一修改一寫”指令,如指令ANLP0,A(2)讀引腳.先輸出“1”,使V1截止,然后再讀。(1)在輸出數據時,由于V2截止,輸出級是漏極開路電路,要使"1"信號正常輸出,必須外接上拉電阻。
(2)P0口作為通用I/O口使用時,是準雙向口。其特點是在輸入數據時,應先把口置1(寫1),此時鎖存器的Q端為0,使輸出級的兩個場效應管V1、V2均截止,引腳處于懸浮狀態,才可作高阻輸入。因為,從P0口引腳輸入數據時,V2一直處于截止狀態,引腳上的外部信號既加在三態緩沖器1的輸入端,又加在V1的漏極。假定在此之前曾輸出鎖存過數據0,則V1是導通的,這樣引腳上的電位就始終被箝位在低電平,使輸入高電平無法讀入。因此,在輸入數據時,應人為地先向口寫1,使V1、V2均截止,方可高阻輸入。所以說P0口作為通用I/O口使用時,是準雙向口。但在P0用作地址/數據分時復用功能連接外部存儲器時,由于訪問外部存儲器期間,CPU會自動向P0口的鎖存器寫入0FFH,對用戶而言,P0口此時則是真正的三態雙向口。3.端口操作MCS-51單片機有不少指令可直接進行端口操作,例如:ANLP0,A ;(P0)←(P0)∧(A)ORLP0,#data ;(P0)←(P0)∨dataDELP0 ;(P0)←(P0)-1
這些指令的執行過程分成"讀-修改-寫"三步,先將P0口的數據讀入CPU,在ALU中進行運算,運算結果再送回P0。執行"讀-修改-寫"類指令時,CPU是通過三態門2讀回鎖存器Q端的數據來代表引腳狀態的。如果直接通過三態門1從引腳讀回數據,有時會發生錯誤。例如,用一根口線去驅動一個晶體管的基極,當向此口線輸出1時,鎖存器Q=1,V2導通驅動晶體管。當晶體管導通后,引腳上的電平被拉到低電平(0.7V),因而,若從引腳直接讀回數據,原為1的狀態則會錯讀為0,所以要從鎖存器Q端讀取數據。4.地址/數據分時復用功能1.控制信號=1,P0端口作為地址/數據總線使用。2.輸出:地址/數據,不需外接上拉電阻.3.輸入:數據,通過“讀引腳”完成。*當8051片外擴展R腳、I/0口、ROM時,P0口必須作為地址/數據總線使用。真雙向口。P0口在有外部擴展存儲器時被作為地址/數據總線口,此時是一個真正的雙向口;在沒有外部擴展存儲器時,P0口也可作為通用的I/O接口,但此時只是一個準雙向口。P0口的輸出級具有驅動8個LSTTL負載的能力,即輸出電流不小于800μA。P0口特點2.5.2P1口
P1口為準雙向口,其1位的內部結構如圖2.10所示。它在結構上與P0口的區別在于輸出驅動部分。其輸出驅動部分由場效應管V1與內部上拉電阻組成。當其某位輸出高電平時,可以提供拉電流負載,不必像P0口那樣需要外接上拉電阻。
P1口只有通用I/O接口一種功能(對51子系列),其輸入輸出原理特性與P0口作為通用I/O接口使用時一樣,請讀者自己分析。P1口具有驅動4個LSTTL負載的能力。另外,對于52子系列單片機P1口P1.0與P1.1除作為通用I/O接口線外,還具有第二功能,即P1.0可作為定時器/計數器2的外部計數脈沖輸入端T2,P1.1可作為定時器/計數器2的外部控制輸入端T2EX。圖2.10P1口1位結構圖2.5.3P2口圖2.11P2口1位結構圖
當作為準雙向通用I/O口使用時,控制信號使轉換開關接向左側,鎖存器Q端經反相器3接V1,其工作原理與P1相同,也具有輸入、輸出、端口操作三種工作方式,負載能力也與P1相同。當作為外部擴展存儲器的高8位地址總線使用時,控制信號使轉換開關接向右側,由程序計數器PC來的高8位地址PCH,或數據指針DPTR來的高8位地址DPH經反相器3和V1原樣呈現在P2口的引腳上,輸出高8位地址A8~A15。在上述情況下,口鎖存器的內容不受影響,所以,取指或訪問外部存儲器結束后,由于轉換開關又接至左側,使輸出驅動器與鎖存器Q端相連,引腳上將恢復原來的數據。2.5.4P3口圖2.12P3口1位結構圖
MCLRRA
OSC1RB
PIC16F877RC
OSC2RDV
GNDRE
16F877I/O端口68883RA端口RA端口由6個I/O位組成,他們有的具有2個功能或3個功能。RA5~RA0:雙向可編程I/O端口。AN4~AN0(RA5、RA3~RA0):ADC5路模擬信號輸入端。TOCKI(RA4):定時器0時鐘輸入端。
SS(RA5):在SPI通信中用于選擇從動器件(外圍設備)。±VREF:參考電源,對應+VREF(RA3)和
-VREF(RA2)RA5、RA3~RA0結構RA4結構PIC16F877I/O端口特點幾乎全是真雙向口。每一個端n的每一個引腳在使用前應該要明確是作為輸入還是輸出,這需要通過軟件設定其方向控制寄存器TRISx實現。引腳驅動能力為灌入或拉出25A,當輸出這么大電流時,引腳上的實際電壓將發生變化,高電平輸出的電壓將被拉低,低電平輸出的電壓將被抬升,但變化后的電壓值還是符合TTL標準的。2.6定時器/計數器
實現定時或計數,通常采用以下三種方法:
1.硬件法硬件定時功能完全由硬件電路完成,不占用CPU時間。但當要求改變定時時間時,只能通過改變電路中的元件參數來實現,很不靈活。
2.軟件法軟件定時是執行一段循環程序來進行時間延時,優點是無額外的硬件開銷。但犧牲了CPU的時間。
3.可編程定時器/計數器
MCS一51系列單片機內部提供2個可編程的定時器/計數器
T0和T1,它們可以用于定時或者對外部脈沖計數,還可以作為串行口的波特率發生器。定時器達到預定定時時間或者計數器計滿數時,給出溢出標志以發出內部中斷。組成:6個SFR寄存器,包括TMOD、TCON、TH0、TL0、TH1和TL1。定時器/計數器的核心:一個加1計數器,其基本功能是加1計數。計數功能:若是對單片機的T0、T1引腳輸入信號進行計數,即是計數功能。當外部輸入信號由1至0跳變時,計數器加l。定時功能:若是對單片機內部的機器周期進行計數,從而得到定時,這就是定時功能。每個機器周期(等于12個晶體振蕩周期)計數器加1。定時功能和計數功能的設定和控制都是通過軟件來設定的。定時器/計數器概述2.6.1定時器/計數器T0、T1的結構圖2.13定時器/計數器T0、T1的結構框圖1.16位加法器定時器/計數器的核心是16位加法計數器,圖中用特殊功能寄存器TH0、TL0及TH1、TL1表示。TH0、TL0是定時器/計數器0加法計數器的高8位和低8位,TH1、TL1是定時器/計數器1加法計數器的高8位和低8位。作計數器用時,加法計數器對芯片引腳T0(P3.4)或T1(P3.5)上的輸入脈沖計數。每輸入一個脈沖,加法計數器增加1。加法計數溢出時可向CPU發出中斷請求信號。
作定時器用時,加法計數器對內部機器周期脈沖Tcy計數。由于機器周期是定值,所以對Tcy的計數就是定時,如Tcy=1μs,計數值100,相當于定時100μs。加法計數器的初值可以由程序設定,設置的初值不同,計數值或定時時間就不同。在定時器/計數器的工作過程中,加法計數器的內容可用程序讀回CPU。GATE=l,T0、Tl的啟動由INTi引腳和TRi位共同控制。只有INTi引腳為高電平時,TRi置“l”才能啟動定時器計數器。GATE=0,T0、T1由軟件設置TRi=1來控制啟動。TRi=0,停止。
定時或計數功能選擇位,當C/T=1時為計數方式;當C/=0時為定時方式。
M1、M0:定時器/計數器工作方式選擇位,其值與工作方式對應關系如表2.6所示。
GATE:門控位,用于控制定時器/計數器的啟動是否受外部中斷請求信號的影響。如果GATE=1,定時器/計數器0的啟動受芯片引腳(P3.2)控制,定時器/計數器1的啟動受芯片引腳(P3.3)控制;如果GATE=0,定時器/計數器的啟動與引腳、無關。一般情況下GATE=0。表2.6定時器/計數器工作方式M1M0工作方式方式說明00013位定時器/計數器01116位定時器/計數器102具有自動重裝初值的8位定時器/計數器113
3.定時器/計數器控制寄存器TCONTCON控制寄存器各位定義如下:TF1TR1TF0TR0IE1IT1IE0IT0TCON字節地址88HD7D6D5D4D3D2D1D0TF0(TF1):T0(T1)定時器/計數器溢出中斷標志位。當T0(T1)計數溢出時,由硬件置位,并在允許中斷的情況下,向CPU發出中斷請求信號,CPU響應中斷轉向中斷服務程序時,由硬件自動將該位清零。
TR0(TR1):T0(T1)運行控制位。當TR0(TR1)=1時啟動T0(T1);TR0(TR1)=0時關閉T0(T1)。該位由軟件進行設置。2.6.2定時器/計數器T0、T1的四種工作方式1.工作方式0圖2.14定時器/計數器方式0的邏輯結構
可用程序將0~8191(213-1)的某一數送入THx、TLx作為初值。THx、TLx從初值開始加法計數,直至溢出。所以初值不同,定時時間或計數值不同。必須注意的是:加法計數器THx溢出后,必須用程序重新對THx、TLx設置初值,否則下一次THx、TLx將從0開始計數。如果C/T=1,圖2.14中開關S1自動地接在下面,定時器/計數器工作在計數狀態,加法計數器對Tx引腳上的外部脈沖計數。計數值由下式確定:N=213–x=8192–x
式中N為計數值,x是THx、TLx的初值。x=8191時為最小計數值1,x=0時為最大計數值8192,即計數范圍為1~8192。定時器/計數器在每個機器周期的S5P2期間采樣Tx腳輸入信號,若一個機器周期的采樣值為1,下一個機器周期的采樣值為0,則計數器加1。由于識別一個高電平到低電平的跳變需兩個機器周期,所以對外部計數脈沖的頻率應小于fosc/24,且高電平與低電平的延續時間均不得小于1個機器周期。C/T=0時為定時器方式,開關S1自動地接在上面,加法計數器對機器周期脈沖Tcy計數,每個機器周期TLx加1。定時時間由下式確定:T=N×Tcy=(8192-x)Tcy式中Tcy為單片機的機器周期。如果振蕩頻率fosc=12MHz,則Tcy=1μs,定時范圍為1~8192μs。
定時器/計數器的啟動或停止由TRx控制。當GATE=0時,只要用軟件置TRx=1,開關S2閉合,定時器/計數器就開始工作;置TRx=0,S2打開,定時器/計數器停止工作。
GATE=1為門控方式。此時,僅當TRx=1且引腳上出現高電平(即無外部中斷請求信號),S2才閉合,定時器/計數器開始工作。如果引腳上出現低電平(即有外部中斷請求信號),則停止工作。所以,門控方式下,定時器/計數器的啟動受外部中斷請求的影響,可用來測量引腳上出現正脈沖的寬度。2.工作方式1
當M1M0=01時,定時器/計數器設定為工作方式1,構成了16位定時器/計數器。此時THx、TLx都是8位加法計數器。其它與工作方式0相同。在方式1時,計數器的計數值由下式確定:
N=216-x=65536-x計數范圍為1~65536。定時器的定時時間由下式確定:T=N×Tcy=(65536-x)Tcy如果fosc=12MHz,則Tcy=1μs,定時范圍為1~65536μs。3.工作方式2圖2.15定時器/計數器方式2的邏輯結構在工作方式2時,計數器的計數值由下式確定:N=28-x=256-x計數范圍為1~256。定時器的定時值由下式確定:T=N×Tcy=(256-x)Tcy如果fosc=12MHz,則Tcy=1μs,定時范圍為1~256μs。4.工作方式3圖2.16定時器/計數器方式3的邏輯結構P85例33要求用單片機內部定時/計數器定時1分鐘。(設fosc=12MHZ)設計定時器/計數器應用程序三步驟:
(1)根據定時或計數要求確定適當的定時/計數方式、計算初值,設定特殊功能寄存器TMOD、THx、TLx。
(2)根據對定時器/計數器的要求設置中斷系統,即設置中斷允許控制寄存器IE和中斷優先級控制寄存器IP
(3)啟動定時器/計數器,即置位TCON中的TRx位。題目分析:①定時器/計數器一次溢出的最長定時時間為65.536ms。②可讓T0工作于方式1,定時1ms;T1工作于方式1溢出脈沖計數60000次,1ms×60000=60s。
計算初值:T0:65536-1000=64536=FC18HT1:65536-60000=5536=15A0H
GATEC/TMIM0GATEC/TM1M0TMOD字節地址89HD7D6D5D4D3D2D1D0T1T001010001EA—ET2ESET1EX1ET0EX0IE字節地址A8HD7D6D5D4D3D2D1D010001000③通過查詢方式獲取溢出脈沖計數。
PIC的定時/計數器及TMR0模塊的特征PIC16F87X單片機配置了3個定時/計數器,分別為: TMR0、TMR1和TMR2,它們都可實現“定時、計 數”的通用功能。
TMR0:8位寬,有一個可選的預分頻器,作通用目的;
TMR1:16位寬,附帶可編程的預分頻器,還附帶一個可選的低頻時基振蕩器。與CCP(捕捉/比較/PMW)模塊配合使用以實現“輸入捕捉/輸出比較”功能;
TMR2:8位寬,同時附帶一個可編程的預分頻器和一個可編程的后分頻器,還附帶一個周期寄存器PR2和 比較器,與CCP模塊配合實現PWM信號的產生。3個定時/計數器,其核心部分都是加一計數器。由內部時鐘或外部信號作為計數脈沖,從0或某一個初值開始加一計數,當計數器由全“1”再加一后就會產生一個“溢出”信號并且計數器回零進入下一輪計數。定時/計數器的“溢出”信號會建立一個相應的“溢出標志”即中斷標志位(如:T0IF、TMR1IF和TMR2IF)。三個定時器的編程基本方法是一致的,這里以TMR0為主介紹其編程和使用方法。其它的將在后面的章節中介紹。加一計數器
計數脈沖CPTF溢出標志TF利用計數器的溢出信號實現定時/延時的操作示意圖定時/計數器TMR0具有以下特征:核心是一個8位寬,由計數脈沖的上升沿觸發計數的循環累加計數寄存器TMR0;TMR0在文件寄存器區域內統一編址的地址為01H或101H(參見51頁);用戶軟件可以直接讀出或寫入計數器的內容;具有一個可選用的8位“預分頻器”(增加計數寬度);用于計數的脈沖信號源可以選擇內部或外部,即可用于定時/計數兩種不同的工作方式;外信號計數時,由軟件設定:上升或下降沿觸發計數;具有溢出中斷功能;TMR0計數不可控,只要單片機上電,就處于計數狀態。返回相關寄存器的簡要說明TMR0:8位的加一計數器;INTCON:中斷控制寄存器。用于設定單片機總的中斷使能、TMR0的中斷時能和TMR0的溢出標志;OPTION_REG:選項寄存器。用于設定TMR0的預分頻器的分頻比以及預分頻器的分配方向(TMR0或WDT);TRISA:在計數方式中用于設定外部計數脈沖輸入引腳為輸入狀態。表8.1與TMR0相關的寄存器(參見51頁)寄存器名稱寄存器符號寄存器地址寄存器內容bit7bit6bit5bit4bit3bit2bit1bit0定時/計數器TMR001H101H8位累加計數寄存器選項寄存器OPTION_REG81H181HRBPUINTEDGT0CST0SEPSAPS2PS1PS0中斷控制寄存器INTCON0BH8BH10BH18BHGIEPEIET0IEINTERBIET0IFINTFRBIFA口方向寄存器TRISA85HTRIS5TRIS4TRIS3TRIS2TRIS1TRIS0(一)選項寄存器OPTION_REGPS2~PS0:預分頻器分頻比選擇位bit7bit6bit5bit4bit3bit2bit1bit0RBPUINTEDGT0CST0SEPSAPS2PS1PS0PS2~PS0TMR0比率WDT比率0000010100111001011101111:21:41:81:161:321:641:1281:2561:11:21:41:81:161:321:641:128返回上次預分頻器的作用預分頻器實際上也是一個計數器。預分頻器的分頻比決定了二進制計數器的位數。可以理解為將預分頻器與加一計數器級聯起來,構成一個寬度為兩者之和的計數器;預分頻器的作用:使用它時可以增加TMR0的計數范圍;預分頻器的分頻系數是可變的。可以根據需要選擇。8位加一計數器T0IF預分頻器(計數器)分頻比設定fosc/4溢出標志2.7串行輸入/輸出口計算機通信是計算機-計算機、計算機-外設之間的信息交換。常用的計算機通信方式:網絡通信、總線、串口等。通信種類:串行通信、并行通信
2.7.1串行通信的基本概念圖2.17通信的兩種基本方式(a)并行通信;(b)串行通信串行通信有同步和異步兩種方式
同步方式:傳送和接收有嚴格的同步時鐘控制。控制復雜、成本高。
異步方式:不需要嚴格的同步信號,也不需要數據流的連續性。在串行通信中常用。
數據幀(一幀數據):包含起始位(“0”電平)、數據位、奇偶校驗位、停止位("1”電平)等組成。1.異步傳送方式圖2.18串行異步傳送的字符格式(a)字符格式;(b)有空閑位的字符格式
在串行異步傳送中,通信雙方必須事先約定:
(1)字符格式。雙方要事先約定字符的編碼形式、奇偶校驗形式及起始位和停止位的規定。例如用ASCII碼通信,有效數據為7位,加一個奇偶校驗位、一個起始位和一個停止位共10位。當然停止位也可以大于1位。
(2)波特率(Baudrate)。波特率就是數據的傳送速率,即每秒鐘傳送的二進制位數,單位為位/秒。它與字符的傳送速率(字符/秒)之間有以下關系:波特率=一個字符的二進制編碼位數×字符/秒要求發送端與接收端的波特率必須一致。異步串行通信的傳送速率一般為50~9600波特,常用于計算機到CRT終端和字符打印機之間的通信、直通電報以及無線電通信的數據發送等。2.同步傳送圖2.19同步通信的格式圖2.20串行通信數據傳送的三種方式(a)單工方式;(b)半雙工方式;(c)全雙工方式2.7.2MCS-51單片機的串行口通用異步接收發送器(UART)1.功能與結構表2.7串行口的工作方式SM0SM1工作方式功能波特率00方式0移位寄存器方式,用于并行I/O擴展fosc/1201方式18位通用異步接收器/發送器可變10方式29位通用異步接收器/發送器fosc/32或fosc/6411方式39位通用異步接收器/發送器可變串行口控制寄存器SCON的格式如下:SM0SM1SM2RENTB8RB8T1RISCON字節地址98HD7D6D5D4D3D2D1D0SM0、SM1:由軟件置位或清零,用于選擇串行口四種工作方式。
SM2:多機通信控制位。在方式2和方式3中,如SM2=1,則接收到的第9位數據(RB8)為0時不啟動接收中斷標志RI(即RI=0),并且將接收到的前8位數據丟棄;RB8為1時,才將接收到的前8位數據送入SBUF,并置位RI,產生中斷請求。當SM2=0時,則不論第9位數據為0或1,都將前8位數據裝入SBUF中,并產生中斷請求。在方式0時,SM2必須為0。REN:允許串行接收控制位。若REN=0,則禁止接收;REN=1,則允許接收,該位由軟件置位或復位。
TB8:發送數據D8位。在方式2和方式3時,TB8為所要發送的第9位數據。在多機通信中,以TB8位的狀態表示主機發送的是地址還是數據:TB8=0為數據,TB8=1為地址;也可用作數據的奇偶校驗位。該位由軟件置位或復位。
RB8:接收數據D8位。在方式2和方式3時,接收到的第9位數據,可作為奇偶校驗位或地址幀或數據幀的標志。方式1時,若SM2=0,則RB8是接收到的停止位。在方式0時,不使用RB8位。TI:發送中斷標志位。在方式0時,當發送數據第8位結束后,或在其它方式發送停止位后,由內部硬件使TI置位,向CPU請求中斷。CPU在響應中斷后,必須用軟件清零。此外,TI也可供查詢使用。
RI:接收中斷標志位。在方式0時,當接收數據的第8位結束后,或在其它方式接收到停止位的中間由內部硬件使RI置位,向CPU請求中斷。同樣,在CPU響應中斷后,也必須用軟件清零。RI也可供查詢使用。電源控制寄存器的格式如下:SMOD---------CF1CF0PDIDLD7D6D5D4D3D2D1D0PCON字節地址97HPCON的最高位SMOD是串行口波特率系數控制位。SMOD=1時,波特率增大一倍。其余各位與串行口無關。2.串行口的工作方式1)方式0:方式0以8位數據為一幀進行傳輸,不設起始位和停止位,先發送或接收最低位。其一幀數據格式如下:使用方式0實現數據的移位輸入/輸出時,實際上是把串行口變成為并行口使用。串行口作為并行輸出口使用時,要有“串人并出”的移位寄存器(例如CD4094、74Lsl64等)配合。方式0時,移位操作(串人或串出)的波特率是固定的,波特率為單片機晶振頻率的1/12,如晶振頻率fosc表示,則波特率為fosc/12。按此波特率也就是一個機器周期進行一次移位,如fosc=12MH:,則波特率為1Mb/s,即1ūs移位一次。圖2.21串行口方式0結構示意圖發送接收工作方式1以10位數據為一幀進行傳輸,設有1個起始位(0)、8個數據位,l個停止位(1),其一幀數據格式如下:2)方式1發送時,數據從TXD(P3.0)端輸出,當TI=0,執行數據寫入發送緩沖器SBUF指令時,就啟動了串行口數據的發送操作。指令為:MOVSBUF,A接收時,數據從RXD(P3.0)端輸入,SCON的REN位應處于允許接收狀態(REN=1)。在此前提下,串行口采樣RXD端,當采樣到從l向0的狀態跳變時,就認定是接收到起始位。①如果RI=0、SM2=0,接收控制器發出"裝載SBUF"信號,將8位數據裝入接收數據緩沖器SBUF,停止位裝入RB8,并置RI=1,向CPU申請中斷。②如果RI=0、SM2=1,那么只有停止位為1才發生上述操作。③RI=0、SM2=1且停止位為0,所接收的數據不裝入SBUF,數據將會丟失。④如果RI=1,則所接收的數據在任何情況下都不裝入SBUF,即數據丟失。無論出現哪一種情況,跳變檢測器將繼續采樣RXD引腳的負跳變,以便接收下一幀信息。圖2.22串行口方式1、2、3結構示意圖3)方式2與方式3
方式2、方式3都是9位異步通信接口,其結構示意圖如圖2.22所示。發送或接收一幀信息由11位組成,其中1位起始位、9位數據位和1位停止位。方式2與方式3僅波特率不同,方式2的波特率為fosc/32(SMOD=1時)或fosc/64(SMOD=0時),而方式3的波特率由定時器/計數器T1及SMOD決定。在方式2、方式3時,發送、接收數據的過程與方式1基本相同,所不同的僅在于對第9位數據的處理上。發送時,第9位數據由SCON中的TB8位提供。接收數據時,當第9位數據移入移位寄存器后,將8位數據裝入SBUF,第9位數據裝入SCON中的RB8。在工作方式2下,字符還是8個數據位,只不過增加了一個第9個數據位(D8),而且其功能由用戶確定,是一個可編程位。在發送數據時,應預先在SCON的TB8位中把第9個數據位的內容準備好。這可使用如下指令完成:
SETBTB8;TB8位置1
CLRTB8;TB8位清0發送數據(D0一D7)由MOV指令向SBUF寫人,而D8位的內容分別由硬件電路從TBS中直接送到發送移位寄存器的第9位,并以此來啟動串行發送。一個字符幀發送完畢后,將Tl位置l,其他過程與工作方式l相同。工作方式2的接收過程也與方式1基本類似,所不同的只在第9數據位上,串行口把接收到的前8個數據位送人SBUF,而把第9數據位送入RB8。3.波特率設置串行口的4種工作方式對應著三種波特率模式。對于方式0,波特率是固定的,為fosc/12。對于方式2,波特率由振蕩頻率fosc和SMOD(PCON.7)所決定。其對應公式為波特率=2SMOD×fosc/64
當SMOD=0時,波特率為fosc/64;當SMOD=1時,波特率為fosc/32。對于方式1和方式3,波特率由定時器/計數器T1的溢出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 世界杯相關課件
- 專業工程師職稱課件
- 航空公司旅客意外險合同
- 唐山學院《企業電子產品設計與制造》2023-2024學年第二學期期末試卷
- 汕尾市重點中學2025年下學期初三期末檢測試題考試英語試題含答案
- 四川成都市成華區重點名校2025屆初三3月聯合質量檢測試題語文試題試卷含解析
- 錦州市古塔區2025屆數學五年級第二學期期末達標檢測試題含答案
- 江蘇省宜興市丁蜀區瀆邊聯盟2025年初三第二學期學分認定考試英語試題含答案
- 山東省菏澤市開發區2025年數學五下期末統考試題含答案
- 上訴狀的課件
- 北京市海淀區2024-2025學年第二學期期中練習暨海淀高三高三一模(海淀一模)(英語試卷+答案 )
- 2025年03月四川天府新區“蓉漂人才薈”事業單位(13人)筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2025年高考物理壓軸題專項訓練:用力學三大觀點處理多過程運動問題(原卷版)
- 2024年河南輕工職業學院單招職業適應性測試題庫必考題
- 中醫藥行業數字化轉型的機遇與挑戰
- 工程塑膠材料采購合同(2篇)
- 新污染物環境風險評估:理論與制度構建
- 2025中考英語沖刺-傳統文化詩詞
- 金融科技學知到智慧樹章節測試課后答案2024年秋重慶工商大學
- 2025屆北京市朝陽區高三語文一模議論文“說托舉”寫作導引(5篇范文)
- 2025年中考數學壓軸模擬試卷(含答案解析)
評論
0/150
提交評論