![單片微型計(jì)算機(jī)原理及接口技術(shù)-結(jié)構(gòu)與端口_第1頁(yè)](http://file4.renrendoc.com/view/635f74a45671b8da2ed9072064ffdcff/635f74a45671b8da2ed9072064ffdcff1.gif)
![單片微型計(jì)算機(jī)原理及接口技術(shù)-結(jié)構(gòu)與端口_第2頁(yè)](http://file4.renrendoc.com/view/635f74a45671b8da2ed9072064ffdcff/635f74a45671b8da2ed9072064ffdcff2.gif)
![單片微型計(jì)算機(jī)原理及接口技術(shù)-結(jié)構(gòu)與端口_第3頁(yè)](http://file4.renrendoc.com/view/635f74a45671b8da2ed9072064ffdcff/635f74a45671b8da2ed9072064ffdcff3.gif)
![單片微型計(jì)算機(jī)原理及接口技術(shù)-結(jié)構(gòu)與端口_第4頁(yè)](http://file4.renrendoc.com/view/635f74a45671b8da2ed9072064ffdcff/635f74a45671b8da2ed9072064ffdcff4.gif)
![單片微型計(jì)算機(jī)原理及接口技術(shù)-結(jié)構(gòu)與端口_第5頁(yè)](http://file4.renrendoc.com/view/635f74a45671b8da2ed9072064ffdcff/635f74a45671b8da2ed9072064ffdcff5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1/150一、單片機(jī)的內(nèi)部結(jié)構(gòu)單片微型計(jì)算機(jī)(簡(jiǎn)稱單片機(jī))在一片芯片上集成了前述微型計(jì)算機(jī)的功能結(jié)構(gòu),有些單片機(jī)不僅集成了CPU、存儲(chǔ)程序和數(shù)據(jù)的存儲(chǔ)器、I/O接口、定時(shí)/計(jì)數(shù)器等常規(guī)資源,而且還集成了工業(yè)測(cè)控系統(tǒng)中常用的模擬量模塊。
§3.2單片機(jī)的結(jié)構(gòu)2/150單片機(jī)產(chǎn)品8051內(nèi)核是Intel8051系列單片機(jī)的基本標(biāo)準(zhǔn),許多參考書上將這種單片機(jī)稱為MCS-51系列單片機(jī)。MCS-51系列單片機(jī)的典型產(chǎn)品為8051,它有4K×8ROM,128字節(jié)RAM,2個(gè)16位定時(shí)/計(jì)數(shù)器,4個(gè)8位I/O口,一個(gè)串行口。二十世紀(jì)80年代,Intel將8051內(nèi)核轉(zhuǎn)讓或出售給幾家著名的IC廠商,如Philips,Atmel等。這樣,8051單片機(jī)就變成眾多制造廠家支持的,發(fā)展成為上百個(gè)產(chǎn)品的大家族。最常用的宏晶STC系列單片機(jī),Atmel公司的AT89系列等51系列,等等。只要是8051內(nèi)核的單片機(jī),它們的最基本結(jié)構(gòu)是相同的,并且,指令系統(tǒng)完全兼容標(biāo)準(zhǔn)8051單片機(jī)。2023/11/153MCS-51單片機(jī)的結(jié)構(gòu)
在這一塊芯片上,集成了一臺(tái)微型計(jì)算機(jī)的各個(gè)部分。其中主要有CPU、存儲(chǔ)器、可編程I/O、定時(shí)/計(jì)數(shù)器、串行口等。各部分通過(guò)內(nèi)部總線相連。2023/11/154時(shí)鐘OSCCPU各種I/O定時(shí)器/計(jì)數(shù)器程序存儲(chǔ)器ROM數(shù)據(jù)存儲(chǔ)器RAM中斷MCS-51單片機(jī)組成框圖2023/11/1558051的內(nèi)部結(jié)構(gòu)展開(kāi)圖128×8RAMRAM地址寄存器P3口P1口P2口P0口鎖存器鎖存器鎖存器鎖存器中斷控制定時(shí)/計(jì)數(shù)器串行I/O口SP寄存器B累加器A暫存器1暫存器2程序狀態(tài)字PSW指令寄存器IR指令譯碼器ID數(shù)據(jù)指針DPTR緩沖器程序計(jì)數(shù)器PC增1程序地址寄存器AR定時(shí)與控制4K×8ROMALUCPU2023/11/156CPU運(yùn)算器CPU算術(shù)/邏輯部件ALU(ArithmeticLogicUnit)累加器ACC
(Accumulator)程序狀態(tài)字寄存器PSW(ProgramStatusWord)暫存寄存器寄存器B控制器定時(shí)控制與條件轉(zhuǎn)移邏輯電路程序計(jì)數(shù)器PC指令寄存器IR指令譯碼器ID2023/11/1578051的片內(nèi)存儲(chǔ)器
8051單片機(jī)與一般微機(jī)的存儲(chǔ)器配置方式很不相同。一般微機(jī)通常只有一個(gè)邏輯空間,可以隨意安排ROM或RAM。訪問(wèn)存儲(chǔ)器時(shí),同一地址對(duì)應(yīng)唯一的存儲(chǔ)單元,可以是ROM也可以是RAM,并用同類訪問(wèn)指令。而MCS-51則不同:2023/11/1588051在物理結(jié)構(gòu)上設(shè)計(jì)成程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器獨(dú)立分開(kāi)的哈佛結(jié)構(gòu):片內(nèi)程序存儲(chǔ)器4KB(ROM0000H~0FFFH)片內(nèi)數(shù)據(jù)存儲(chǔ)器128B(RAM00H~7FH)8051的I/O端口8051有四個(gè)8位并行雙向I/O口P0、P1、P2、P3,一個(gè)串行口。2023/11/1598051的特殊功能寄存器SFR8051內(nèi)部有21個(gè)特殊功能寄存器,分別叫SP、IE、IP、PCON......(與內(nèi)部RAM統(tǒng)一編址80H~FFH)MCS-51單片機(jī)的存儲(chǔ)器組織8051在物理結(jié)構(gòu)上有四個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器。new2023/11/151064KBROMEA=0EA=10000H0FFFH1000HFFFFH4KBROMFFH80H7FH00HSFRRAM64KBRAM(I/O)0000HFFFFH片內(nèi)片外片外程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2023/11/1511
8051在邏輯上,即從用戶角度上8051有三個(gè)存儲(chǔ)空間:片內(nèi)外統(tǒng)一編址的程序存儲(chǔ)器片內(nèi)外不統(tǒng)一編址的數(shù)據(jù)存儲(chǔ)器特殊功能寄存器(片內(nèi))★訪問(wèn)這幾個(gè)不同的邏輯空間時(shí),采用的指令:片內(nèi)外程序存儲(chǔ)器空間----MOVC
片內(nèi)數(shù)據(jù)存儲(chǔ)器空間和SFR----MOV
片外數(shù)據(jù)存儲(chǔ)器地址空間----MOVX2023/11/1512一、程序存儲(chǔ)器及地址空間作用--程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。①8051片內(nèi)有4K字節(jié)ROM,片外用16位地址線最多可擴(kuò)展64K字節(jié)ROM,兩者是統(tǒng)一編址的?!锶绻鸈A端保持高電平,8051執(zhí)行片內(nèi)前4KBROM地址(0000H~0FFFH)中的程序。當(dāng)尋址范圍超過(guò)4KB(1000H~FFFFH)時(shí),則從片外存儲(chǔ)器取指令?!锂?dāng)EA端保持低電平時(shí),8051的所有取指令操作均在片外程序存儲(chǔ)器中進(jìn)行,這時(shí)片外存儲(chǔ)器可以從0000H開(kāi)始編址。2023/11/1513②在程序存儲(chǔ)器中,有6個(gè)單元具有特殊功能0003H:外部中斷0入口。000BH:定時(shí)器0溢出中斷入口。0013H:外部中斷1入口。001BH:定時(shí)器1溢出中斷入口。0023H:串行口中斷入口。
使用時(shí),通常在這些入口地址處存放一條絕對(duì)跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷程序起始地址,或者從0000H起始地址跳轉(zhuǎn)到用戶設(shè)計(jì)的初始程序上。0000H:8051復(fù)位后,PC=0000H,即程序從0000H
開(kāi)始執(zhí)行指令。2023/11/1514數(shù)據(jù)存儲(chǔ)器及地址空間數(shù)據(jù)存儲(chǔ)器片外RAM64KB,地址范圍0000H~FFFFH片內(nèi)RAM128B,地址范圍00H~7FH使用時(shí)只能用MOVX指令訪問(wèn)使用MOV指令訪問(wèn),可以進(jìn)行堆棧操作2023/11/1515片內(nèi)數(shù)據(jù)存儲(chǔ)器空間分布圖通用RAM區(qū)
(80B)
位地址區(qū)
(16B)寄存器區(qū)4組(32B)7FH寄存器3組寄存器2組寄存器1組寄存器0組寄存器區(qū)4組(32B).........①由PSW中的2位RS1、RS0來(lái)決定選哪一組為當(dāng)前工作寄存器:
RS1、RS0=00選0組
RS1、RS0=01選1組
RS1、RS0=10選2組
RS1、RS0=11選3組②在位地址區(qū),每一個(gè)BIT都有一個(gè)地址,共16×8=128位00H30H2FH20H1FH...2023/11/1516片內(nèi)數(shù)據(jù)存儲(chǔ)器空間分布圖通用RAM區(qū)
(80B)位地址區(qū)
(16B)7FH寄存器3組寄存器2組寄存器1組寄存器0組寄存器0組寄存器區(qū)4組(32B).........RS1、RS0=00R7R6R5R4R3R2R1R000H01H02H03H04H05H06H07H00H30H2FH20H1FH...2023/11/1517片內(nèi)數(shù)據(jù)存儲(chǔ)器空間分布圖通用RAM區(qū)
(80B)位地址區(qū)
(16B)7FH寄存器3組寄存器2組寄存器1組寄存器0組寄存器1組R7R6R5R4R3R2R1R008H09H0AH0BH0CH0DH0EH0FH寄存器區(qū)4組(32B).........RS1、RS0=0100H30H2FH20H1FH...2023/11/1518片內(nèi)數(shù)據(jù)存儲(chǔ)器空間分布圖通用RAM區(qū)
(80B)位地址區(qū)
(16B)7FH寄存器3組寄存器2組寄存器1組寄存器0組寄存器2組R7R6R5R4R3R2R1R010H11H12H13H14H15H16H17H寄存器區(qū)4組(32B).........RS1、RS0=1000H30H2FH20H1FH...2023/11/1519片內(nèi)數(shù)據(jù)存儲(chǔ)器空間分布圖通用RAM區(qū)
(80B)位地址區(qū)
(16B)7FH寄存器3組寄存器2組寄存器1組寄存器0組位地址區(qū)20H21H22H23H24H25H26H27H28H29H2AH2BH2CH2DH2EH2FH00H01H02H03H04H05H06H07H08H0FH10H7FH78H70H68H60H58H50H48H40H38H30H28H20H77H6FH67H1FH5FH57H4FH47H3FH37H2FH27H1FH17H........................D7D6D5D4D3D2D1D0.........00H30H2FH20H1FH...2023/11/1520片內(nèi)數(shù)據(jù)存儲(chǔ)器空間分布圖通用RAM區(qū)
(80B)位地址區(qū)
(16B)00H30H2FH20H1FH7FH寄存器3組寄存器2組寄存器1組寄存器0組通用RAM區(qū)............共80個(gè)字節(jié),作為一般的數(shù)據(jù)緩沖區(qū)并可設(shè)置堆棧區(qū)
80H~0FFH
為特殊功能寄存器(SFR)區(qū),除了程序計(jì)數(shù)器PC和四個(gè)工作寄存器組外,其余的寄存器都在SFR區(qū)中(8051共26個(gè)字節(jié))。對(duì)SFR必須采用直接尋址方式訪問(wèn)。對(duì)于8052單片機(jī),80H~0FFH還是RAM區(qū),必須通過(guò)間接尋址訪問(wèn)。對(duì)于8051單片機(jī),該段RAM空間的單元不存在,用戶不能對(duì)這些單元通過(guò)間接尋址進(jìn)行讀/寫操作。地址能被8整除的SFR可以位尋址。三、特殊功能寄存器(26個(gè)字節(jié)SFR)2023/11/1522①與ALU相關(guān)的(3個(gè))
ARegister(Accumulator):累加器,通常用A或ACC表示??勺止?jié)尋址(E0H),也可位尋址(E0H~E7H)
它是一個(gè)寄存器,而不是一個(gè)做加法的部件。在運(yùn)算器做運(yùn)算時(shí)其中一個(gè)數(shù)一定是在ACC中。
BRegister:暫存寄存器。
暫存寄存器。在做乘、除法時(shí)放乘數(shù)或除數(shù)及結(jié)果。
PSW(ProgramStatusWord
):
PSW是8位寄存器,用于作為程序運(yùn)行狀態(tài)的標(biāo)志。這是一個(gè)很重要的部件,里面存放了CPU工作時(shí)的很多狀態(tài),借此,我們可以了解CPU的當(dāng)前狀態(tài),并作出相應(yīng)的處理。2023/11/1523它的各位功能如下:
當(dāng)CPU進(jìn)行各種邏輯操作或算術(shù)運(yùn)算時(shí),為反映操作或運(yùn)算結(jié)果的狀態(tài),把相應(yīng)的標(biāo)志位置1或清0。這些標(biāo)志的狀態(tài),可由專門的指令來(lái)測(cè)試,也可通過(guò)指令來(lái)讀出。它為計(jì)算機(jī)確定程序的下一步進(jìn)行方向提供依據(jù)。PSW寄存器中各位的名稱及位置如上所示,下面說(shuō)明各標(biāo)志位的作用。D7HD6HD5HD4HD3HD2HD1HD0HCYACF0RS1RS0OVPPSW位地址2023/11/1524
CY:進(jìn)位標(biāo)志。
加減運(yùn)算時(shí),保存最高位進(jìn)位、借位狀態(tài)。
AC:半進(jìn)位標(biāo)志。
例:78H+97H01111000+10010111100001111
D7HD6HD5HD4HD3HD2HD1H
D0H
CY
ACF0RS1RS0OVPPSW位地址有進(jìn)位CY=1沒(méi)有半進(jìn)位AY=02023/11/1525
RS1、RS0:工作寄存器組選擇位。
00選擇工作寄存器0組
01選擇工作寄存器1組
10選擇工作寄存器2組
11選擇工作寄存器3組
P:奇偶校驗(yàn)位,它用來(lái)表示累加器A內(nèi)容中二進(jìn)制數(shù)位
“1”的個(gè)數(shù)的奇偶性。若為奇數(shù),則P=1,否則為0。例:某運(yùn)算結(jié)果是78H(01111000),P=0。D7HD6HD5HD4HD3HD2HD1H
D0HCY
ACF0
RS1RS0OV
PPSW位地址2023/11/1526F0:用戶標(biāo)志位。作為軟件標(biāo)志,由編程人員決定何時(shí)使用。OV:溢出標(biāo)志位。有符號(hào)數(shù)運(yùn)算時(shí),如果發(fā)生溢出,OV置“1”,否則清“0”。D7HD6HD5HD4HD3HD2HD1H
D0HCY
AC
F0RS1RS0OVPPSW位地址2023/11/1527②與指針相關(guān)的(2個(gè))
SP(StackPointer):
堆棧指針,8位寄存器,用來(lái)指定堆棧的棧頂位置,初值為07H。它是加1計(jì)數(shù).
DPTR(DataPointer)(分成DPH、DPL兩個(gè)):數(shù)據(jù)指針可以用它來(lái)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器中的任一單元,也可以作為通用寄存器來(lái)用,由我們自已決定如何使用。2023/11/1528P0、P1、P2、P3:四個(gè)并行輸入/輸出口的寄存器。它里面的內(nèi)容對(duì)應(yīng)著管腳的輸出。SCON(SerialControlRegister)SBUF(SerialDateBuffer)PCON(PowerControlRegister)
③與端口相關(guān)的(7個(gè))④與定時(shí)/計(jì)數(shù)器相關(guān)的(6個(gè))TMOD(Timer/CounterModeRegister)
定時(shí)器工作模式寄存器。TCON(Timer/CounterControlRegister)
定時(shí)器控制寄存器。TH0、TL0、TH1、TL1:分別是T0、T1的記數(shù)初值寄存器。2023/11/1529IP(InterruptPriorityRegister)IE(InterruptEnableRegister)③與中斷相關(guān)的(2個(gè))特殊功能寄存器地址映象表(一)特殊功能寄存器地址映象表(二)特殊功能寄存器地址映象表(三)注:帶括號(hào)的字節(jié)地址表示每位有位地址可位操作。采用DIP40
封裝的80C51引腳圖。返回
8051單片機(jī)的引腳⒈電源:⑴VCC-芯片電源,接+5V;⑵VSS-接地端;⒉時(shí)鐘:
XTAL1、XTAL2-晶體振蕩電路反相輸入端和輸出端。
⒊控制線:共有4根⑴ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖
①
ALE功能:用來(lái)鎖存P0口送出的低8位地址
②PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。⑵PSEN:外ROM讀選通信號(hào)。⑶EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。①EA功能:內(nèi)外ROM選擇端(低,片外)。②Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。
⑷RST/VPD:復(fù)位/備用電源。①RST(Reset)功能:復(fù)位信號(hào)輸入端,高電平有效,兩個(gè)機(jī)器周期。②VPD功能:在Vcc掉電情況下,接備用電源。37/150看門狗“看門狗”,是經(jīng)典自由主義傳播學(xué)說(shuō)對(duì)媒體的定位:秉持公正、客觀立場(chǎng)的媒體,是代表民眾監(jiān)督政府行為的“看門狗”。比如媒體,微博對(duì)狗仗人勢(shì)的門衛(wèi)的貶義詞。應(yīng)用使單片機(jī)可以在無(wú)人狀態(tài)下實(shí)現(xiàn)連續(xù)工作:看門狗芯片和單片機(jī)的一個(gè)I/O引腳相連,該I/O引腳通過(guò)程序控制它定時(shí)地往看門狗的這個(gè)引腳上送入高電平(或低電平),一旦單片機(jī)由于干擾造成程序跑飛后而陷入某一程序段進(jìn)入死循環(huán)狀態(tài)時(shí),寫看門狗引腳的程序便不能被執(zhí)行,送出一個(gè)復(fù)位信號(hào),即程序從程序存儲(chǔ)器的起始位置開(kāi)始執(zhí)行,這樣便實(shí)現(xiàn)了單片機(jī)的自動(dòng)復(fù)位。⒋I/O線
80C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。P0與數(shù)據(jù)/低8位地址復(fù)用總線復(fù)用P1I/O口P2與高8位地址總線復(fù)用P3復(fù)用功能: P3.0——RXD: 串行口輸入端; P3.1——TXD: 串行口輸出端; P3.2——/INT0:外部中斷0請(qǐng)求輸入端; P3.3——/INT1:外部中斷1請(qǐng)求輸入端; P3.4——T0: 定時(shí)/計(jì)數(shù)器0外部信號(hào)輸入端; P3.5——T1: 定時(shí)/計(jì)數(shù)器1外部信號(hào)輸入端; P3.6——/WR: 外RAM寫選通信號(hào)輸出端; P3.7——/RD: 外RAM讀選通信號(hào)輸出端。2023/11/1539MCS-51單片機(jī)的并行端口結(jié)構(gòu)與操作8051單片機(jī)有4個(gè)I/O端口,每個(gè)端口都是8位準(zhǔn)雙向口,共占32根引腳。每個(gè)端口都包括一個(gè)鎖存器(即專用寄存器P0~P3)、一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。通常把4個(gè)端口籠統(tǒng)地表示為P0~P3。2023/11/1540
在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)端口的每一位都可以作為準(zhǔn)雙向通用I/O端口使用。在具有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口作為高8位地址線,P0口分時(shí)作為低8位地址線和雙向數(shù)據(jù)總線。
8051單片機(jī)4個(gè)I/O端口線路設(shè)計(jì)的非常巧妙,學(xué)習(xí)I/O端口邏輯電路,不但有利于正確合理地使用端口,而且會(huì)給設(shè)計(jì)單片機(jī)外圍邏輯電路有所啟發(fā)。下面簡(jiǎn)單介紹一下輸入/輸出端口結(jié)構(gòu)。并行輸入和輸出端口P0
P0口的結(jié)構(gòu)雙向三態(tài)輸入輸出端口。P0口身兼兩職,既可作為地址總線(AB0-AB7),也可作為數(shù)據(jù)總線(DB0-DB7)。作為通用I/O時(shí),是一個(gè)漏極開(kāi)路電路。需外接上拉電阻。作為地址/數(shù)據(jù)總線使用時(shí),不需處接上拉電阻。P0可驅(qū)動(dòng)8個(gè)LSTTL,其它P口可以驅(qū)動(dòng)4個(gè)LSTLL。2023/11/1542下圖為P0口的某位P0.n(n=0~7)結(jié)構(gòu)圖,它由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器和輸出驅(qū)動(dòng)電路及控制電路組成。從圖中可以看出,P0口既可以作為I/O用,也可以作為地址/數(shù)據(jù)線用。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳P0口的結(jié)構(gòu)2023/11/15431、P0口作為普通I/O口①輸出時(shí)CPU發(fā)出控制電平“0”封鎖“與”門,將輸出上拉場(chǎng)效應(yīng)管T1截止,同時(shí)使多路開(kāi)關(guān)MUX把鎖存器與輸出DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2023/11/1544驅(qū)動(dòng)場(chǎng)效應(yīng)管T2柵極接通。故內(nèi)部總線與P0口同相。由于輸出驅(qū)動(dòng)級(jí)是漏極開(kāi)路電路,若驅(qū)動(dòng)NMOS或其它拉流負(fù)載時(shí),需要外接上拉電阻。P0的輸出級(jí)可驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2023/11/1545②輸入時(shí)----分讀引腳或讀鎖存器讀引腳:由傳送指令(MOV)實(shí)現(xiàn);下面一個(gè)緩沖器用于讀端口引腳數(shù)據(jù),當(dāng)執(zhí)行一條由端口輸入的指令時(shí),讀脈沖把該三態(tài)緩沖器打開(kāi),這樣端口引腳上的數(shù)據(jù)經(jīng)過(guò)緩沖器讀入到內(nèi)部總線。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2023/11/1546DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳②輸入時(shí)----分讀引腳或讀鎖存器讀鎖存器:有些指令如:ANLP0,A稱為“讀-改-寫”
指令,需要讀鎖存器。上面一個(gè)緩沖器用于讀端口鎖存器數(shù)據(jù)。2023/11/1547**原因:如果此時(shí)該端口的負(fù)載恰是一個(gè)晶體管基極,且原端口輸出值為1,那么導(dǎo)通了的PN結(jié)會(huì)把端口引腳高電平拉低;若此時(shí)直接讀端口引腳信號(hào),將會(huì)把原輸出的“1”電平誤讀為“0”電平?,F(xiàn)采用讀輸出鎖存器代替讀引腳,圖中,上面的三態(tài)緩沖器就為讀鎖存器Q端信號(hào)而設(shè),讀輸出鎖存器可避免上述可能發(fā)生的錯(cuò)誤。**DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2023/11/1548DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳準(zhǔn)雙向口:
從圖中可以看出,在讀入端口數(shù)據(jù)時(shí),由于輸出驅(qū)動(dòng)FET并接在引腳上,如果T2導(dǎo)通,就會(huì)將輸入的高電平拉成低電平,產(chǎn)生誤讀。所以在端口進(jìn)行輸入操作前,應(yīng)先向端口鎖存器寫“1”,使T2截止,引腳處于懸浮狀態(tài),變?yōu)楦咦杩馆斎搿_@就是所謂的準(zhǔn)雙向口。49/150P0口做地址/數(shù)據(jù)總線口使用時(shí)是一個(gè)真正的雙向口,輸入為高阻抗結(jié)構(gòu),輸出為推挽結(jié)構(gòu),不必外加上拉電阻。(不需要任何預(yù)操作就可直接讀入讀出)P0口作為一般I/O口使用時(shí),是一個(gè)準(zhǔn)雙向口,即輸入數(shù)據(jù)時(shí),應(yīng)先向口寫“1”,使輸出下拉FET截止,然后方可作高阻抗輸入;輸出數(shù)據(jù)時(shí),接口為開(kāi)漏輸出結(jié)構(gòu),輸出高電平時(shí)需外加上拉電阻。(只能有效的讀出0,對(duì)于1則采用讀取非0方式,即先寫1,再讀。)注意在P0口作為通用的I/O口時(shí),必須外接上拉電阻(如下圖)。12345678P0VCC上拉電阻的連接方法拉電流方式和灌電流方式2023/11/15532、P0作為地址/數(shù)據(jù)總線
在系統(tǒng)擴(kuò)展時(shí),P0端口作為地址/數(shù)據(jù)總線使用時(shí),分為:
P0引腳輸出地址/數(shù)據(jù)信息。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2023/11/1554CPU發(fā)出控制電平“1”,打開(kāi)“與”門,又使多路開(kāi)關(guān)MUX把CPU的地址/數(shù)據(jù)總線與T2柵極反相接通,輸出地址或數(shù)據(jù)。由圖上可以看出,上下兩個(gè)FET處于反相,構(gòu)成了推拉式的輸出電路,其負(fù)載能力大大增強(qiáng)。DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2、P0作為地址/數(shù)據(jù)總線2023/11/1555P0引腳輸出地址/輸入數(shù)據(jù)輸入信號(hào)是從引腳通過(guò)輸入緩沖器進(jìn)入內(nèi)部總線。此時(shí),CPU自動(dòng)使MUX向下,并向P0口寫“1”,“讀引腳”控制信號(hào)有效,下面的緩沖器打開(kāi),外部數(shù)據(jù)讀入內(nèi)部總線。2、P0作為地址/數(shù)據(jù)總線----真正的雙向口DQCLKQMUXP0.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址/數(shù)據(jù)控制VCCT1T2P0口引腳2023/11/1556二、P2的內(nèi)部結(jié)構(gòu)1.P2口作為普通I/O口DQCLKQMUXP2.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳CPU發(fā)出控制電平“0”
,使多路開(kāi)關(guān)MUX倒向鎖存器輸出Q端,構(gòu)成一個(gè)準(zhǔn)雙向口。其功能與P1相同。2023/11/1557
2.P2口作為地址總線在系統(tǒng)擴(kuò)展片外程序存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器且容量超過(guò)256B(用MOVX@DPTR指令)時(shí),CPU發(fā)出控制電平“1”,使多路開(kāi)關(guān)MUX倒內(nèi)部地址線。此時(shí),P2輸出高8位地址。DQCLKQMUXP2.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳地址控制VCCRTP2口引腳2023/11/15582.3.2P1口、P3口的內(nèi)部結(jié)構(gòu)
①P1口的一位的結(jié)構(gòu)它由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器和輸出驅(qū)動(dòng)電路組成----準(zhǔn)雙向口。DQCLKQP1.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP1口引腳注意在P1口作為通用的I/O口使用時(shí),在從I/O端口讀入數(shù)據(jù)時(shí),應(yīng)該首先向相應(yīng)的I/O口內(nèi)部鎖存器寫“1”。舉例:從P1口的低四位輸入數(shù)據(jù)MOVP1,#00001111b;先給P1口低四位寫1MOVA,P1;再讀P1口的低四位2023/11/1560②P3的內(nèi)部結(jié)構(gòu)DQCLKQP3.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP3口引腳第二輸入功能第二輸出功能一、作為通用I/O口與P1口類似----準(zhǔn)雙向口(W=1)W2023/11/1561②P3的內(nèi)部結(jié)構(gòu)DQCLKQP3.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP3口引腳第二輸入功能第二輸出功能二、P3第二功能(Q=1)此時(shí)引腳部分輸入(Q=1、W=1)
,部分輸出(Q=1、W輸出)
。W2023/11/1562P3第二功能各引腳功能定義(確保不用第二功能時(shí),才可用作IO線,上電復(fù)位自動(dòng)使鎖存器Q=1)P3.0:RXD串行口輸入P3.1:TXD串行口輸出P3.2:INT0外部中斷0輸入P3.3:INT1外部中斷1輸入P3.4:T0定時(shí)器0外部輸入P3.5:T1定時(shí)器1外部輸入P3.6:WR外部寫控制P3.7:RD外部讀控制63/150
以目前市場(chǎng)上常見(jiàn)的8051內(nèi)核單片機(jī)STC15F2K60S2為例,說(shuō)明單片機(jī)的內(nèi)部結(jié)構(gòu)。STC12C5A60S2單片機(jī)主要集成了以下資源:增強(qiáng)型8051內(nèi)核,單時(shí)鐘機(jī)器周期,速度比傳統(tǒng)8051內(nèi)核單片機(jī)快8~12倍60KBFlash程序存儲(chǔ)器;1KB數(shù)據(jù)Flash;2048字節(jié)的SRAM3個(gè)16位可自動(dòng)重裝載的定時(shí)/計(jì)數(shù)器(T0、T1、T2)可編程時(shí)鐘輸出功能至多42根I/O口線2個(gè)全雙工異步串行口(UART)1個(gè)高速同步通信端口(SPI)8通道10位ADC3通道PWM/可編程計(jì)數(shù)器陣列/捕獲/比較單元內(nèi)部高可靠上電復(fù)位電路和硬件看門狗內(nèi)部集成高精度R/C時(shí)鐘,常溫工作時(shí),可以省去外部晶振電路。增強(qiáng)型8051內(nèi)核單片機(jī)STC15F2K60S2
標(biāo)準(zhǔn)8051的一個(gè)機(jī)器周期是12個(gè)時(shí)鐘周期,而STC15F2K60S2是1個(gè)時(shí)鐘周期。因此,在同樣的外部時(shí)鐘頻率下執(zhí)行同樣的代碼,其指令執(zhí)行速度要比8051快8~12倍。這樣用戶可以在較低的外部時(shí)鐘頻率下運(yùn)行STC15F2K60S2。與標(biāo)準(zhǔn)8051內(nèi)核相比,不僅降低了系統(tǒng)噪聲和電源功耗,而且提高了處理能力。時(shí)鐘周期是單片機(jī)的晶振周期,如果你接入的單片機(jī)是12M晶振,你的時(shí)鐘周期就是1/12M
機(jī)器周期是單片機(jī)的基本操作周期。標(biāo)準(zhǔn)8051單片機(jī)的一個(gè)機(jī)器周期分為6個(gè)狀態(tài)(S1~S6),每個(gè)狀態(tài)由兩個(gè)脈沖組成(稱為兩相),前一個(gè)周期叫P1,后一個(gè)周期叫P2。
指令周期是運(yùn)行一條指令所需要的機(jī)器周期64/15065/150圖3-7STC15F2K60S2單片機(jī)的內(nèi)部結(jié)構(gòu)圖STC15F2K60S2單片機(jī)內(nèi)部結(jié)構(gòu)框圖66/150STC15F2K60S2單片機(jī)的內(nèi)部資源中央處理器(CPU)程序存儲(chǔ)器(Flash)數(shù)據(jù)存儲(chǔ)器(RAM)數(shù)據(jù)Flash存儲(chǔ)器定時(shí)/計(jì)數(shù)器I/O接口通用異步串行通信接口(UART)中斷系統(tǒng)SPI接口(串行外設(shè)接口)高速A/D轉(zhuǎn)換模塊PWM脈寬調(diào)制(或捕獲/比較單元)看門狗電路電源監(jiān)控片內(nèi)RC振蕩器等模塊幾乎包含了數(shù)據(jù)采集和控制中所需的所有單元模塊,
—————可稱得上一個(gè)片上系統(tǒng)(SOC)67/1501、CPU結(jié)構(gòu)單片機(jī)的中央處理器(CPU)由運(yùn)算器和控制器組成。(1)運(yùn)算器以8位算術(shù)/邏輯運(yùn)算部件ALU為核心,加上通過(guò)內(nèi)部總線而掛在其周圍的暫存器TMP1、TMP2、累加器ACC、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW以及布爾處理機(jī)組成了整個(gè)運(yùn)算器的邏輯電路。68/150PSW中有些位的狀態(tài)是在指令執(zhí)行過(guò)程中自動(dòng)形成的,有些位可以由用戶采用指令加以改變。PSW的各位定義如下所示:位號(hào)D7D6D5D4D3D2D1D0符號(hào)CYACF0RS1RS0OVF1P69/150其他標(biāo)志位與51相同,新增加F1F1(PSW.1):用戶標(biāo)志1。該位是由用戶定義的一個(gè)狀態(tài)標(biāo)志。與F0類似,可以用軟件來(lái)使它置“1”或清“0”,也可以由軟件測(cè)試F1控制程序的流向。位號(hào)D7D6D5D4D3D2D1D0符號(hào)CYACF0RS1RS0OVF1P70/150布爾處理機(jī)——是單片機(jī)CPU中運(yùn)算器的一個(gè)重要組成部分。功能:為用戶提供豐富的位操作功能,有相應(yīng)的指令系統(tǒng),硬件有自己的“累加器”(進(jìn)位位C,即CY),和自己的位尋址RAM和I/O空間,是一個(gè)獨(dú)立的位處理機(jī)。大部分位操作均圍繞著其累加器——進(jìn)位位C完成。對(duì)任何可直接尋址的位,布爾處理機(jī)可執(zhí)行置位、取反、轉(zhuǎn)移、位的讀寫等操作。在任何可尋址的位(或該位內(nèi)容取反)和進(jìn)位標(biāo)志C之間,可執(zhí)行邏輯與、或操作,其結(jié)果送回到進(jìn)位標(biāo)志C。71/150(2)控制器控制器是CPU的大腦中樞,包括定時(shí)控制邏輯、指令寄存器、譯碼器、地址指針DPTR及程序計(jì)數(shù)器PC、堆棧指針SP、RAM地址寄存器、16位地址緩沖器等。72/150堆棧主要用于保存臨時(shí)數(shù)據(jù)、局部變量、中斷或子程序的返回地址。STC15F2K60S2單片機(jī)的堆棧設(shè)在內(nèi)部RAM中,是一個(gè)按照“先進(jìn)后出”規(guī)律存放數(shù)據(jù)的區(qū)域。堆棧指針SP是一個(gè)8位寄存器,能自動(dòng)加1或減1。當(dāng)數(shù)據(jù)壓入堆棧時(shí),SP自動(dòng)加1;數(shù)據(jù)從堆棧中彈出后,SP自動(dòng)減1。復(fù)位后,寄存器默認(rèn)值為07H,堆棧區(qū)在08H開(kāi)始的區(qū)域。用戶通常將堆棧區(qū)域用指令設(shè)置在內(nèi)部RAM的80H~FFH之間。51常設(shè)在30H~7FH之間。73/150數(shù)據(jù)指針DPTRSTC15F2K60S2單片機(jī)有兩個(gè)16位的數(shù)據(jù)指針DPRT0和DPTR1,這兩個(gè)數(shù)據(jù)指針共用同一個(gè)地址,可通過(guò)設(shè)置輔助寄存器AUXR1中的DPS(AUXR1.0)位來(lái)選擇具體使用哪一個(gè)數(shù)據(jù)指針。74/1502、存儲(chǔ)器的結(jié)構(gòu)—STC15F2K60S2結(jié)構(gòu)特點(diǎn):程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的尋址空間是分開(kāi)的。結(jié)構(gòu)劃分:片內(nèi)集成有4個(gè)物理上相互獨(dú)立的存儲(chǔ)器空間:程序Flash存儲(chǔ)器、數(shù)據(jù)Flash存儲(chǔ)器(EEPROM)、內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器。75/150圖3-8STC15F2K60S2單片機(jī)存儲(chǔ)器配置示意圖76/150(1)程序Flash存儲(chǔ)器功能:存放用戶程序、數(shù)據(jù)和表格等信息??臻g大小:STC15F2K60S2片內(nèi)集成了60KB的程序Flash存儲(chǔ)器,地址為0000H~F000H。單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC的內(nèi)容為0000H,從0000H單元開(kāi)始執(zhí)行程序。77/150特殊單元在程序Flash存儲(chǔ)器中有些特殊的單元,這些單元是中斷服務(wù)程序的入口地址:0003H外部中斷0中斷服務(wù)程序的入口地址000BH定時(shí)/計(jì)數(shù)器0中斷服務(wù)程序的入口地址0013H外部中斷1中斷服務(wù)程序的入口地址001BH定時(shí)/計(jì)數(shù)器1中斷服務(wù)程序的入口地址0023H串行通信口1中斷服務(wù)程序的入口地址002BHADC中斷服務(wù)程序的入口地址0033H低電壓檢測(cè)中斷服務(wù)程序的入口地址003BHPCA中斷服務(wù)程序的入口地址0043H串行通信口2中斷服務(wù)程序的入口地址004BHSPI中斷服務(wù)程序的入口地址78/150中斷服務(wù)程序的入口地址0053H外部中斷2中斷服務(wù)程序的入口地址005BH外部中斷3中斷服務(wù)程序的入口地址0063H定時(shí)/計(jì)數(shù)器2中斷服務(wù)程序的入口地址0083H外部中斷4中斷服務(wù)程序的入口地址響應(yīng)中斷時(shí),單片機(jī)自動(dòng)轉(zhuǎn)到相應(yīng)的中斷入口地址去執(zhí)行程序。由于大部分相鄰中斷入口地址之間只有8個(gè)地址單元,無(wú)法保存完整的中斷服務(wù)程序,一般在中斷入口的地址區(qū)存放一條無(wú)條件轉(zhuǎn)移指令,指向真正存放中斷服務(wù)程序的空間。中斷響應(yīng)后,CPU執(zhí)行這條轉(zhuǎn)移指令,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。79/150使用指令讀取程序存儲(chǔ)器中保存的表格常數(shù)等內(nèi)容時(shí),使用MOVC指令。程序Flash存儲(chǔ)器的擦寫次數(shù)為10萬(wàn)次以上,大大提高了芯片利用率,降低了開(kāi)發(fā)成本。不能訪問(wèn)外部存儲(chǔ)器,沒(méi)有相應(yīng)的總線。80/150(2)數(shù)據(jù)存儲(chǔ)器—STC15F2K60S2數(shù)據(jù)存儲(chǔ)器也稱為隨機(jī)存取數(shù)據(jù)存儲(chǔ)器。空間劃分在物理上和邏輯上都分為兩個(gè)地址空間:內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)和擴(kuò)展數(shù)據(jù)存儲(chǔ)區(qū)。81/1501)內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)(又稱為內(nèi)部RAM)
256字節(jié)內(nèi)部RAM,存放中間結(jié)果和過(guò)程數(shù)據(jù)。內(nèi)部RAM的地址范圍是00H~FFH,共256個(gè)單元,分三部分:低128字節(jié)RAM(00H~7FH):也稱為基本RAM區(qū)?;綬AM區(qū)又分為工作寄存器區(qū)、位尋址區(qū)、用戶RAM和堆棧區(qū)??梢灾苯訉ぶ泛烷g接尋址。用“MOV”和“MOV@Ri”形式的指令訪問(wèn)。高128字節(jié)RAM(80H~FFH):只能間接尋址。用“MOV@Ri”形式的指令訪問(wèn)。特殊功能寄存器(SFR)區(qū):地址范圍為80H~FFH,只可直接尋址,用“MOV”形式的指令訪問(wèn)。82/150圖3-9內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間工作寄存器區(qū)位尋址區(qū)通用用戶RAM和堆棧區(qū)特殊功能寄存器區(qū)內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間分配83/150工作寄存器區(qū)地址分配:00H~1FH共32個(gè)單元。分為四組。功能:通過(guò)使用工作寄存器,可以提高運(yùn)算速度,也可以使用其中的R0或R1存放八位地址值,訪問(wèn)一個(gè)256字節(jié)外部RAM塊中的單元。另外,R0~R7也可以用作計(jì)數(shù)器,在指令作用下加1或減1。工作寄存器組的選擇與8051相同。84/150位尋址區(qū)20H~2FH之間的單元既可以按字節(jié)存取,也可以按位存取共128位,地址范圍是00H~7FH。圖3-10內(nèi)部RAM中的位地址85/150除了20H~2FH之間的單元可以位尋址外,特殊功能寄存器中,直接地址可被8整除的寄存器(除了IP.7、IP.6和IE.6以外)也可以進(jìn)行位尋址。圖3-11特殊功能寄存器中的位地址86/150用戶RAM和堆棧區(qū)內(nèi)部RAM中的30H~7FH單元是用戶RAM和堆棧區(qū)。一個(gè)8位的堆棧指針SP,并且堆棧區(qū)只能設(shè)置在內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)。當(dāng)有子程序調(diào)用和中斷請(qǐng)求時(shí),返回地址等信息被自動(dòng)保存在堆棧內(nèi)。STC15F2K60S2單片機(jī)復(fù)位后,SP為07H,使堆棧事實(shí)上由08H單元開(kāi)始,考慮08H~1FH單元分別屬于工作寄存器組1~3,若在程序設(shè)計(jì)中用到這些工作寄存器,則在用戶初始化程序中,最好把SP的值改變?yōu)?0H或更大的值。STC15F2K60S2單片機(jī)的堆棧是朝著地址增大的方向生成的,即將數(shù)據(jù)壓入堆棧后,SP的值增大。87/150高128字節(jié)RAM和特殊功能寄存器對(duì)于STC15F2K60S2單片機(jī),80H~FFH既為高128字節(jié)RAM區(qū)的地址范圍,又為特殊功能寄存器區(qū)(SFR)的地址范圍,地址空間重疊,但物理上是獨(dú)立的。使用時(shí),通過(guò)不同的尋址方式加以區(qū)分:高128字節(jié)的RAM區(qū)使用間接尋址訪問(wèn),特殊功能寄存器使用直接尋址訪問(wèn)。由于堆棧操作也是間接尋址方式,所以,高128位數(shù)據(jù)RAM亦可作為堆棧區(qū)使用。88/150除了程序計(jì)數(shù)器PC和4個(gè)工作寄存器組外,其余的寄存器都在SFR區(qū)中。特殊功能寄存器大體分為兩類
①一類與芯片的引腳有關(guān)。如P0~P5,它們實(shí)際上是6個(gè)鎖存器,每個(gè)鎖存器附加上相應(yīng)的輸出驅(qū)動(dòng)器和輸入緩沖器就構(gòu)成了一個(gè)并行口。②另一類為芯片內(nèi)部功能的控制或者內(nèi)部寄存器。如中斷屏蔽及優(yōu)先級(jí)控制、定時(shí)器、串行口、SPI接口等。STC15F2K60S2單片機(jī)的特殊功能寄存器及其復(fù)位值如表3-2所列(P47)。89/1502)擴(kuò)展數(shù)據(jù)存儲(chǔ)區(qū)外部數(shù)據(jù)存儲(chǔ)區(qū)也稱為擴(kuò)展RAM區(qū)(簡(jiǎn)稱,XRAM)。片內(nèi)集成了1792字節(jié)的外部RAM,地址范圍為0000H~06FFH,可用于存放數(shù)據(jù)。注意,這里的“內(nèi)部”和“外部”是邏輯上的概念,不是指芯片內(nèi)部和外部。在匯編語(yǔ)言中,XRAM使用“MOVX@DPTR”
或者“MOVX@Ri”指令訪問(wèn)。在C語(yǔ)言中,可使用xdata聲明存儲(chǔ)類型即可。如:unsignedcharxdatai=0;90/150訪問(wèn)片內(nèi)集成的外部RAM時(shí),不影響P0口、P2口、P4.2、P4.4和ALE(地址數(shù)據(jù)、讀寫、鎖存)。STC15F2K60S2單片機(jī)還可以訪問(wèn)片外擴(kuò)展的64KB外部數(shù)據(jù)存儲(chǔ)器。STC15F2K60S2單片機(jī)的外部擴(kuò)展I/O端口與擴(kuò)展數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址,因此外部I/O端口的地址占用擴(kuò)展數(shù)據(jù)存儲(chǔ)器的地址單元,用MOVX指令訪問(wèn)。91/150單片機(jī)內(nèi)部擴(kuò)展RAM是否可以訪問(wèn),受輔助寄存器AUXR(地址為8EH,復(fù)位值為01H)中的EXTRAM位控制。EXTRAM:0:內(nèi)部擴(kuò)展RAM可以存取;地址小于700H時(shí),訪問(wèn)內(nèi)部擴(kuò)展RAM;地址大于或等于700H時(shí),則訪問(wèn)單片機(jī)外部擴(kuò)展的RAM或I/O空間。1:禁止訪問(wèn)內(nèi)部擴(kuò)展RAM。位號(hào)D7D6D5D4D3D2D1D0位名稱T0x12T1x12UART_M0x6T2RT2_C/T2x12EXTRAMS1ST292/150(3)數(shù)據(jù)Flash存儲(chǔ)器空間大?。杭闪?K字節(jié)的數(shù)據(jù)Flash存儲(chǔ)器,與程序空間是分開(kāi)的地址范圍:0000H~03FFH。這1K字節(jié)的數(shù)據(jù)Flash存儲(chǔ)器分為2個(gè)扇區(qū),每個(gè)扇區(qū)包含512字節(jié),對(duì)應(yīng)的地址范圍分別為:第一扇區(qū):0000H~01FFH第二扇區(qū):0200H~03FFH93/150使用方法:建議同一次修改的數(shù)據(jù)放在同一個(gè)扇區(qū),不是同一次修改的數(shù)據(jù)放在不同的扇區(qū),不一定用滿。數(shù)據(jù)Flash存儲(chǔ)器的擦除操作是按扇區(qū)進(jìn)行的。數(shù)據(jù)Flash存儲(chǔ)器可以作為EEPROM使用,擦寫次數(shù)在10萬(wàn)次以上,用于保存一些需要在應(yīng)用過(guò)程中修改并且掉電不丟失的參數(shù)數(shù)據(jù)。在用戶程中,可以對(duì)數(shù)據(jù)Flash區(qū)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除操作。需使用相關(guān)特殊功能寄存器,見(jiàn)P50-P5294/1503.2.2單片機(jī)的引腳及功能1、STC15F2K60S2單片機(jī)的引腳封裝LQFP-44封裝圖3-12STC15F2K60S2單片機(jī)的引腳圖95/150DIP-40封裝圖3-12STC15F2K60S2單片機(jī)的引腳圖96/150STC15F2K60S2單片機(jī)的邏輯符號(hào)圖圖3-13STC15F2K60S2單片機(jī)的邏輯符號(hào)圖97/150DIP-40封裝的STC15F2K60S2單片機(jī)和LQFP-44封裝相比,除了沒(méi)有P4.0、P4.3、P4.6、P4.7引腳外,其他資源完全相同。由于DIP封裝的單片機(jī)焊接比較容易,因此,對(duì)于初學(xué)者,最好選用DIP封裝的單片機(jī)進(jìn)行學(xué)習(xí)。注意:在實(shí)際應(yīng)用中,設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)的原理圖時(shí),一般應(yīng)使用邏輯符號(hào)圖,以便進(jìn)行電路分析,而設(shè)計(jì)應(yīng)用系統(tǒng)的印刷電路板圖時(shí),必須使用單片機(jī)的引腳圖。98/150控制和復(fù)位引腳ALE(與P4.5復(fù)用)功能:當(dāng)訪問(wèn)外部存儲(chǔ)器或者外部擴(kuò)展的并行I/O口時(shí),ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。標(biāo)準(zhǔn)8051單片機(jī)的ALE腳對(duì)系統(tǒng)時(shí)鐘進(jìn)行6分頻輸出,可對(duì)外提供時(shí)鐘。但時(shí)鐘頻率較高時(shí),ALE腳是一個(gè)干擾源。STC15F2K60S2單片機(jī)直接禁止ALE腳對(duì)系統(tǒng)時(shí)鐘進(jìn)行6分頻輸出,徹底清除此干擾源,有利于系統(tǒng)的抗干擾設(shè)計(jì)。99/150RST(與P5.4復(fù)用)當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。如果需要單片機(jī)接上電源就可以復(fù)位,則需要使用上電復(fù)位電路。出廠默認(rèn)為IO口圖3-15上電復(fù)位電路圖100/150輸入/輸出(I/O)引腳STC12C5A60S2單片機(jī)最多可以有44根I/O口線,44根I/O口線分別為:P0口(8根):P0.0~P0.7P1口(8根):P1.0~P1.7P2口(8根):P2.0~P2.7P3口(8根):P3.0~P3.7P4口(8根):P4.0~P4.7P5口(2根):P5.4、P5.5。101/1501)I/O口的工作模式4種工作模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,輸入/高阻和開(kāi)漏模式。復(fù)位后為準(zhǔn)雙向口/弱上拉工作模式。每個(gè)口的工作模式由2個(gè)控制寄存器中的相應(yīng)位控制(PnM0和PnM1,n=0、1、2、3、4、5)。102/150例如,P0M0和P0M1用于設(shè)定P0口的工作模式,其中P0M0.7和P0M1.7用于設(shè)置P0.7的工作模式,P0M0.6和P0M1.6用于設(shè)置P0.6的工作模式,以此類推。PnM1[7:0]PnM0[7:0]I/O口模式00準(zhǔn)雙向口(傳統(tǒng)8051單片機(jī)I/O口模式),灌電流可達(dá)20mA,拉電流為270μA,由于制造誤差,實(shí)際為270uA~150uA01推挽輸入輸出(強(qiáng)上拉輸出,可達(dá)20mA,要加限流電阻,盡量少用)10僅為輸入(高阻)11開(kāi)漏(OpenDrain),內(nèi)部上拉電阻斷開(kāi),要外加上拉電阻表3-5I/O口工作模式設(shè)置103/150例如,若設(shè)置P1.7為開(kāi)漏模式,P1.6為強(qiáng)推挽輸入輸出模式,P1.5為高阻輸入模式,P1.4、P1.3、P1.2、P1.1和P1.0為弱上拉模式,則可以使用下面的代碼進(jìn)行設(shè)置:
MOVP1M1,#10100000BMOVP1M0,#11000000B104/150STC15F2K60S2單片機(jī)的每個(gè)I/O口在弱上拉時(shí)都能承受20mA的灌電流(最好還是使用限流電阻,如1KΩ)在強(qiáng)推挽輸出時(shí)都能輸出20mA的拉電流(也要加限流電阻)。整個(gè)芯片的工作電流推薦不要超過(guò)90mA。即從MCU-Vcc流入的電流不超過(guò)90mA,從MCU-GND流出的電流不超過(guò)90mA,整體流入/流出電流都不能超過(guò)90mA。105/1502)I/O口的復(fù)用功能P0口用作數(shù)據(jù)總線(D7~D0)或者地址總線低8位(A7~A0)。用作普通I/O。P1口用作普通I/O。復(fù)用為ADC轉(zhuǎn)換輸入、捕獲/比較/脈寬調(diào)制、SPI通信線、第二串口或者第二時(shí)鐘輸出,如表所示。106/150表3-6P1口的復(fù)用功能引腳復(fù)用功能P1.0ADC0/CCP1(捕獲/比較/脈寬調(diào)制通道1)/RxD2(串口2輸入)P1.1ADC1/CCP0(捕獲/比較/脈寬調(diào)制通道0)/TxD2(串口2輸出)P1.2ADC2/ECI(可編程計(jì)數(shù)器陣列定時(shí)器的外部時(shí)鐘輸入)/SS(SPI從器件選擇)P1.3ADC3/MOSI(SPI主機(jī)輸出從機(jī)輸入)P1.4ADC4/MISO(SPI主機(jī)輸入從機(jī)輸出)P1.5ADC5/SCLK(SPI時(shí)鐘)P1.6ADC6/XTAL2(外接晶體引腳)/RxD_3(串口1輸入備用切換引腳)P1.7ADC7/XTAL1(外接晶體引腳)/TxD_3(串口1輸出備用切換引腳)107/150P2口用作地址總線的高8位輸出。用作通用I/O口使用。用于SPI和捕獲/比較/脈寬調(diào)制的備用切換端口引腳復(fù)用功能P2.0A8/RSTOUT_LOW(復(fù)位后輸出低電平引腳)P2.1A9/SCLK_2(SPI時(shí)鐘備用切換引腳)P2.2A10/MISO_2(SPI主機(jī)輸入從機(jī)輸出備用切換引腳)P2.3A11/MOSI_2(SPI主機(jī)輸出從機(jī)輸入備用切換引腳)P2.4A12//ECI_3(可編程計(jì)數(shù)器陣列定時(shí)器的外部時(shí)鐘輸入備用切換引腳)/SS_2(SPI從器件選擇備用切換引腳)P2.5A13/CCP0_3(捕獲/比較/脈寬調(diào)制通道0備用切換引腳)P2.6A14/CCP1_3(捕獲/比較/脈寬調(diào)制通道1備用切換引腳)P2.7A15/CCP2_3(捕獲/比較/脈寬調(diào)制通道2備用切換引腳)表3-7P2口的復(fù)用功能108/150P3口用作通用I/O口使用。可復(fù)用為外部中斷輸入、計(jì)數(shù)器輸入、時(shí)鐘輸出、第一串口和外部總線的讀/寫控制,如表所示。109/150表3-8P3口的復(fù)用功能端口引腳復(fù)用功能P3.0RXD(串口1輸入)//INT4(外部中斷4,只能下降沿中斷)/T2CLKO(T2的時(shí)鐘輸出)P3.1TXD(串口1輸出)/T2CLKO(T2的外部輸入)P3.2/INT0(外部中斷0輸入,既可上升沿中斷也可下降沿中斷)P3.3/INT1(外部中斷1輸入,既可上升沿中斷也可下降沿中斷)P3.4T0(定時(shí)器0外部輸入)/T1CLKOU(T1時(shí)鐘輸出)/ECI_2(可編程計(jì)數(shù)器陣列定時(shí)器的外部時(shí)鐘輸入備用切換引腳)P3.5T1(定時(shí)器1外部輸入)/T0CLKOU(T0時(shí)鐘輸出)/CCP0_32(捕獲/比較/脈寬調(diào)制通道0備用切換引腳)P3.6/INT2(外部中斷2輸入,只能下降沿中斷)/RxD_2(串口1輸入備用切換引腳)/CCP1_2(捕獲/比較/脈寬調(diào)制通道1備用切換引腳)P3.7/INT3(外部中斷3輸入,只能下降沿中斷)/TxD_2(串口1輸出備用切換引腳)/CCP2(捕獲/比較/脈寬調(diào)制通道2)/CCP2_2(捕獲/比較/脈寬調(diào)制通道2備用切換引腳)110/150P4口作通用I/O口使用。某些口線具有復(fù)用功能,可配置為SPI通信線、捕捉/比較/脈寬調(diào)制、第二串口線等。表3-9P4口的復(fù)用功能端口引腳復(fù)用功能P4.0MOSI_3(SPI主輸出從輸入備用切換引腳)P4.1MISO_3(SPI主輸入從輸出備用切換引腳)P4.2
(外部總線寫控制信號(hào))P4.3SCLK_3(SPI時(shí)鐘備用切換引腳)P4.4
(外部總線讀控制信號(hào))P4.5ALE(地址鎖存控制信號(hào),主要用于外部總線擴(kuò)展)P4.6RxD2_2(第二串口輸入備用切換引腳)P4.7TxD2_2(第二串口輸出備用切換引腳)111/150P5口P5.4/RST(復(fù)位腳)/MCLKO(內(nèi)部R/C振蕩時(shí)鐘輸出;輸出的頻率可為MCLK/1或MCLK/2)/SS_3(SPI接口的從機(jī)選擇信號(hào)備用切換引腳)。該引腳默認(rèn)為I/O口,可以通過(guò)ISP編程將其設(shè)置為RST(復(fù)位)引腳。P5.5沒(méi)有復(fù)用功能。112/1503)STC15F2K60S2單片機(jī)I/O口的結(jié)構(gòu)準(zhǔn)雙向口工作模式的結(jié)構(gòu)圖3-16準(zhǔn)雙向口工作模式的I/O位結(jié)構(gòu)113/150作為一個(gè)準(zhǔn)雙向口使用時(shí),輸入數(shù)據(jù)時(shí),應(yīng)先向口寫1,使T4截止,然后方可作高阻抗輸入。這是準(zhǔn)雙向口的主要特點(diǎn)。114/150推挽輸入輸出工作模式的結(jié)構(gòu)圖3-17推挽輸入輸出工作模式的I/O位結(jié)構(gòu)115/150推挽輸入輸出工作模式的下拉結(jié)構(gòu)與準(zhǔn)雙向口的下拉結(jié)構(gòu)相同,但當(dāng)鎖存器為“1”時(shí)可提供持續(xù)的強(qiáng)上拉。推挽工作模式一般用于需要更大驅(qū)動(dòng)電流的情況。工作于推挽輸入輸出模式時(shí),一個(gè)I/O位也帶有一個(gè)施密特觸發(fā)輸入以及一個(gè)干擾抑制電路。此時(shí),若輸出高電平,拉電流最大可達(dá)20mA;若輸出低電平,灌電流也可達(dá)20mA。116/150僅為輸入(高阻)工作模式的結(jié)構(gòu)輸入口帶有一個(gè)施密特觸發(fā)輸入以及一個(gè)干擾抑制電路。注意,僅為輸入(高阻)工作模式下,I/O口不提供20mA灌電流的能力。圖3-18僅為輸入(高阻)工作模式的I/O位結(jié)構(gòu)
117/150開(kāi)漏輸出工作模式的結(jié)構(gòu)圖3-19開(kāi)漏輸出工作模式的I/O位結(jié)構(gòu)118/150當(dāng)口線鎖存器為0時(shí),開(kāi)漏輸出關(guān)斷所有上拉場(chǎng)效應(yīng)管。當(dāng)作為一個(gè)邏輯輸出時(shí),這種配置方式必須有外部上拉電阻,即通過(guò)電阻外接到Vcc。這種方式的下拉結(jié)構(gòu)與準(zhǔn)雙向口模式的下拉結(jié)構(gòu)相同。開(kāi)漏端口帶有一個(gè)施密特觸發(fā)輸入以及一個(gè)干擾抑制電路。這種工作模式下,輸出低電平時(shí),灌電流也可達(dá)20mA。119/1501、P4口和P5口的使用對(duì)STC15F2K60S2單片機(jī)P4口和P5口的訪問(wèn),如同訪問(wèn)常規(guī)的P0/P1/P2/P3口一樣,并且均可按位尋址,P4的地址C0H,P5口的地址在C8H?!?.3單片機(jī)的I/O口的使用120/1502、上拉電阻的連接雖然作為準(zhǔn)雙向口使用時(shí),單片機(jī)內(nèi)部已經(jīng)集成了上拉場(chǎng)效應(yīng)管,但在實(shí)際應(yīng)用時(shí),一般情況下,最好還是外接上拉電阻。例如,當(dāng)外接的是SPI/I2C等漏極開(kāi)漏的電路時(shí)。121/150以P0.0為例,接上拉電阻的電路連接如圖所示。典型的上拉電阻的阻值為5.1K
或者10K
。圖3-20上拉電阻的連接方法122/1503、拉電流方式和灌電流方式STC15F2K60S2單片機(jī)的I/O口線作為輸出可以提供20mA的驅(qū)動(dòng)能力,在使用時(shí),可采用拉電流或灌電流方式。以P0.0控制發(fā)光二極管電路為例說(shuō)明,電路連接如圖所示。圖3-21拉電流方式和灌電流方式123/150采用灌電流方式時(shí),應(yīng)將單片機(jī)的I/O口設(shè)置為弱上拉/準(zhǔn)雙向口工作模式;采用拉電流方式時(shí),應(yīng)將單片機(jī)的I/O口設(shè)置為推挽/強(qiáng)上拉工作模式。在實(shí)際使用時(shí),應(yīng)盡量采用灌電流方式,這樣可以提高系統(tǒng)的負(fù)載能力和可靠性。有特別需要時(shí),可以采取拉電流方式,如供電線路要求比較簡(jiǎn)單時(shí)。124/150使用時(shí)應(yīng)該特別注意圖中的限流電阻千萬(wàn)不能省略,否則,會(huì)毀壞I/O口。在按鍵掃描電路中的兩側(cè)需要各加300
的限流電阻,或者在編程時(shí)不要出現(xiàn)按鍵兩端的I/O口同時(shí)為低的情況。125/1504、典型的三極管控制電路單片機(jī)I/O引腳本身的驅(qū)動(dòng)能力有限,如果需要驅(qū)動(dòng)功率較大的器件,如小型繼電器或者固態(tài)繼電器,可以采用單片機(jī)I/O引腳控制三極管進(jìn)行輸出的方法。以P0.0為例。圖3-22典型的三極管控制電路126/150如果用弱上拉控制,建議加上拉電阻R1(3.3K
~10K
);如果不加上拉電阻R1,建議R2的值在15K
以上,或用強(qiáng)推挽輸出。當(dāng)需要驅(qū)動(dòng)的功率器件較多時(shí),建議采用ULN2008,其內(nèi)部采用達(dá)林頓結(jié)構(gòu),是專門用來(lái)驅(qū)動(dòng)繼電器的芯片,甚至在芯片內(nèi)部做了一個(gè)消去線圈反電動(dòng)勢(shì)的二極管。ULN2008的輸出端允許通過(guò)IC電流200mA,飽和壓降VCE約為1V左右,耐壓BVCEO約為36V。輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開(kāi)路輸出,輸出電流大,可以直接驅(qū)動(dòng)繼電器或固體繼電器(SSR)。ULN2008可以驅(qū)動(dòng)8個(gè)繼電器。127/1505、I/O外部狀態(tài)的輸入存在問(wèn)題:當(dāng)I/O口工作于準(zhǔn)雙向口時(shí),由于STC15F2K60S2單片機(jī)是1個(gè)時(shí)鐘周期(1T)的8051單片機(jī),速度很快,如果通過(guò)指令執(zhí)行由低變高指令后立即讀外部狀態(tài),此時(shí)由于實(shí)際輸出還沒(méi)有變高,有時(shí)可能讀入的狀態(tài)不對(duì)。解決方法:在軟件設(shè)置由低變高后加1到2個(gè)空操作指令延時(shí),然后再讀I/O口的狀態(tài)。128/1506、P1.7/XTAL1與P1.6/XTAL2的特別說(shuō)明STC15F2K60S2系列單片機(jī)的所有I/O口上電復(fù)位后均為準(zhǔn)雙向口/弱上拉模式。但是由于P1.7和P1.6口還可以分別作外部晶體或時(shí)鐘電路的引腳XTAL1和XTAL2,所以P1.7/XTAL1和P1.6/XTAL2上電復(fù)位后的模式不一定就是準(zhǔn)雙向口/弱上拉模式。當(dāng)P1.7和P1.6口作為外部晶體或時(shí)鐘電路的引腳XTAL1和XTAL2使用時(shí),P1.7/XTAL1和P1.6/XTAL2上電復(fù)位后的模式是高阻輸入。129/150每次上電復(fù)位時(shí),單片機(jī)對(duì)P1.7/XTAL1和P1.6/XTAL2的工作模式按如下步驟進(jìn)行設(shè)置首先,單片機(jī)短時(shí)間(幾十個(gè)時(shí)鐘)會(huì)將P1.7/XTAL1和P1.6/XTAL2設(shè)置成高阻輸入;然后,單片機(jī)會(huì)自動(dòng)判斷上一次用戶是將P1.7/XTAL1和P1.6/XTAL2設(shè)置成普通I/O口還是XTAL1/XTAL2;如果上一次用戶是將P1.7/XTAL1和P1.6/XTAL2設(shè)置成普通I/O口,則單片機(jī)會(huì)將P1.7/XTAL1和P1.6/XTAL2上電復(fù)位后的模式設(shè)置成準(zhǔn)雙向口/弱上拉;如果上一次用戶是將P1.7/XTAL1和P1.6/XTAL2設(shè)置成XTAL1/XTAL2,則單片機(jī)會(huì)將P1.7/XTAL1和P1.6/XTAL2上電復(fù)位后的模式設(shè)置成高阻輸入。130/1507、管腳P5.4/RST的特別說(shuō)明P5.4/RST即可作普通I/O使用,也可作復(fù)位管腳。當(dāng)用戶將P5.4/RST設(shè)置成普通I/O口用時(shí),其上電后為準(zhǔn)雙向口/弱上拉模式。每次上電時(shí),單片機(jī)會(huì)自動(dòng)判斷上一次用戶是將P5.4/RST設(shè)置成普通I/O口還是復(fù)位腳。如果上一次用戶是將P5.4/RST設(shè)置成普通I/O口,則單片機(jī)會(huì)將P5.4/RST上電后的模式設(shè)置成準(zhǔn)雙向口/弱上拉。如果上一次用戶是將P5.4/RST設(shè)置成復(fù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度招投標(biāo)合同監(jiān)管政策與執(zhí)行力度分析
- 2025年度城市綜合體腳手架施工安全管理合同范本
- 2025年度家庭土地承包經(jīng)營(yíng)權(quán)租賃合同范本
- 2025年度農(nóng)業(yè)科技項(xiàng)目合同委托授權(quán)管理細(xì)則
- 2025年度灌溉系統(tǒng)智能化管理系統(tǒng)研發(fā)與應(yīng)用合同范本
- 2025年度水產(chǎn)品批發(fā)市場(chǎng)租賃合同
- 2025年度汽車抵押貸款合同范本(全新修訂)
- 2025年度腳手架租賃與現(xiàn)場(chǎng)監(jiān)督維護(hù)合同
- 2025年度建筑租賃合同(含可再生能源利用)
- 2025年度建筑公司環(huán)保施工管理服務(wù)合同模板
- 項(xiàng)目工程質(zhì)量管理體系
- 員工積分考核管理辦法
- 四川省成都市溫江區(qū)2023-2024學(xué)年四年級(jí)下學(xué)期期末語(yǔ)文試卷
- 北京能源集團(tuán)有限責(zé)任公司招聘筆試題庫(kù)2024
- 消防改造期間消防應(yīng)急預(yù)案
- 2024中國(guó)婦科臨床實(shí)踐指南-卵巢癌
- 2024-2030年中國(guó)靶機(jī)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 2024過(guò)敏性休克搶救指南(2024)課件干貨分享
- 09BD13建筑物防雷裝置
- 醫(yī)療行業(yè)提高醫(yī)院服務(wù)質(zhì)量的改進(jìn)方案三篇
- 預(yù)應(yīng)力空心方樁打樁工程監(jiān)理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論