單片機(jī)期末復(fù)習(xí)14dpj_第1頁
單片機(jī)期末復(fù)習(xí)14dpj_第2頁
單片機(jī)期末復(fù)習(xí)14dpj_第3頁
單片機(jī)期末復(fù)習(xí)14dpj_第4頁
單片機(jī)期末復(fù)習(xí)14dpj_第5頁
已閱讀5頁,還剩130頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、內(nèi)中斷振蕩器和時(shí)序OSC程 序 存 儲(chǔ) 器4KB ROM數(shù) 據(jù) 存 儲(chǔ) 器256B RAM/SFR216位定時(shí)器/計(jì)數(shù)器64KB總線擴(kuò)展控 制 器可編程I/O可編程全雙工串行口8051CPU外部時(shí)鐘源外部事件計(jì)數(shù)外中斷控制并行口串行通訊PSWAccB 寄存寄存 器器CYACF0RS1RS0OV-PPSW 控制器寄存器包括程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、堆棧指針寄存器、數(shù)據(jù)指針寄存器和時(shí)鐘電路等。 n16位專用寄存器(,由DPH和DPL組成。提供對(duì)外部RAM(I/O)的訪問,擴(kuò)展地址空間最大為216=64KB。程序存儲(chǔ)器空間數(shù)據(jù)存儲(chǔ)器空間片內(nèi)程序存 儲(chǔ) 器空 間片外程序存 儲(chǔ) 器

2、空 間片內(nèi)數(shù)據(jù)存 儲(chǔ) 器空 間片外程序存 儲(chǔ) 器空 間64KB片外數(shù)據(jù)存儲(chǔ)器地址空間,地址也從0000HFFFFH編址(16位地址) 256B數(shù)據(jù)存儲(chǔ)器地址空間(8位地址) SFRRAM7F00FF808051片內(nèi)存儲(chǔ)器4KBROMEA=100000FFF64KBROMEA=000000FFF1000FFFF000064KBRAM(I/O)FFFF片外擴(kuò)展存儲(chǔ)器 引腳EA1(接高電平),PC在0000H0FFFH范圍內(nèi)執(zhí)行片內(nèi)ROM; 引腳EA0(接地),8051片內(nèi)ROM不起作用,CPU只能從片外ROM/EPROM中取指令,地址可以從0000H開始編址。 8031片內(nèi)不帶ROM,所以使用時(shí)必

3、須使EA0,這樣才能從片外擴(kuò)展的EPROM中取指令。 需要指出的是:8051從片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器取指時(shí)執(zhí)行速度相同。 程序存儲(chǔ)器的0000H0002H單元被保留用于程序的起始。從0003H0032H單元被保留專用于中斷服務(wù)程序 數(shù)據(jù)存儲(chǔ)器在物理上和邏輯上分為兩個(gè)地址空間內(nèi)部數(shù)據(jù)存儲(chǔ)器、外部數(shù)據(jù)存儲(chǔ)器。訪問內(nèi)部數(shù)據(jù)存儲(chǔ)器用MOV指令;訪問外部數(shù)據(jù)存儲(chǔ)器用MOVX指令。 片內(nèi)數(shù)據(jù)存儲(chǔ)器分為兩個(gè)部分: 00H7FH(0127)單元組成的低128字節(jié)的RAM區(qū); 80HFFH單元組成的特殊功能寄存器(SFR)。用戶RAM區(qū)(堆棧、數(shù)據(jù)緩沖)位尋址區(qū)(位地址00H7FH)R7 第3組 R0

4、工作寄存器區(qū) R7 第2組 R0 工作寄存器區(qū)R7 第1組 R0 工作寄存器區(qū)R7 第0組 R0 工作寄存器區(qū)00H07H08H0FH10H17H18H1FH20H2FH30H7FHB* 特 ACC* 殊 PSW* 功 IP* 能 P3* 寄 IE* 存 P2* 器 SBUF 區(qū) SCON* SFR P1* TH1 TH0 TL1 TL0 TMOD TCON* PCON DPH DPL SP P0* 81H82H83H87H88H89H8AH8BH8CH8DH90H98H99HA0HA8HB0HB8HD0HE0HF0H80HFFH 00H1FH地址安排為四組工作寄存器區(qū),每組有8個(gè)工作寄存器(

5、R0R7),占32個(gè)單元; 從20H2FH共16個(gè)字節(jié)單元中,共包含了128位既可位尋址又可字節(jié)尋址; 30H7FH共80個(gè)字節(jié)單元為字節(jié)尋址的內(nèi)部RAM區(qū)。 由此可見,低128RAM分為三個(gè)部分:工作寄存器區(qū);位尋址RAM區(qū);字節(jié)尋址RAM區(qū)。不用的工作寄存器單元,可作RAM用,不用的位尋址單元可進(jìn)行字節(jié)尋址的RAM用。 在單片機(jī)系統(tǒng)的實(shí)際應(yīng)用中,常把單片機(jī)的復(fù)位分為冷啟動(dòng)和熱啟動(dòng)。 70單字節(jié)指令(49條)7070雙字節(jié)指令(45條)三字節(jié)指令(17條)寄存器尋址直接尋址寄存器間接尋址立即尋址基址寄存器加變址寄存器間接尋址相對(duì)尋址位尋址 無條件轉(zhuǎn)移類指令 條件轉(zhuǎn)移類指令 循環(huán)轉(zhuǎn)移類指令 子

6、程序調(diào)用類指令短調(diào)用指令A(yù)CALLaddr11;(PC)+2PC (SP)+1 SP (PC 07) (SP) (SP)+1 SP (PC 815) (SP) addr 010 (PC 010) (PC 1115)不變 該指令提供低11位目標(biāo)地址,被調(diào)子程序被限制在以當(dāng)前PC值為首地址的2K字節(jié)地址空間內(nèi)調(diào)用。高5位地址不變。不影響標(biāo)志位長(zhǎng)調(diào)用指令LCALLaddr16;(PC)+3PC (SP)+1 SP (PC 07) (SP) (SP)+1 SP (PC 815) (SP) addr 015 (PC) LCALL提供16位目標(biāo)地址,以調(diào)用64K字節(jié)范圍內(nèi)所指定的子程序。 不影響標(biāo)志位 短

7、調(diào)用指令為雙字節(jié)指令,用于目標(biāo)地址在當(dāng)前指令的2K字節(jié)范圍內(nèi)的調(diào)用。優(yōu)點(diǎn):可節(jié)省一個(gè)字節(jié)的存儲(chǔ)單元缺點(diǎn):被調(diào)用子程序的存放區(qū)域受到限制 長(zhǎng)調(diào)用指令為三字節(jié)指令,可調(diào)用64K字節(jié)存儲(chǔ)空間的任一目標(biāo)地址。優(yōu)點(diǎn):可在64K字節(jié)存儲(chǔ)空間內(nèi)任意存放,為編程帶來方便缺點(diǎn):與短調(diào)用指令相比,指令多占用了一個(gè)字節(jié)的存儲(chǔ)單元。 返回類指令子程序返回指令 RET;(SP)(PC815) (SP) -1 (SP) (SP)(PC07) (SP) -1 (SP)中斷服務(wù)程序返回指令 RETI;(SP)(PC815) (SP) -1 (SP) (SP)(PC07) (SP) -1 (SP) RETI為專用于中斷服務(wù)程序

8、的返回指令,除正確返回中斷斷點(diǎn)處繼續(xù)往下執(zhí)行主程序外,并告知中斷系統(tǒng),表示已結(jié)束中斷服務(wù)程序的執(zhí)行,恢復(fù)中斷邏輯以接受新的中斷請(qǐng)求,如果在執(zhí)行RETI指令時(shí)已有一個(gè)同級(jí)或較低級(jí)中斷請(qǐng)求,或者正在執(zhí)行RETI指令時(shí)有高級(jí)中斷提出請(qǐng)求, 轉(zhuǎn)移類指令 無條件轉(zhuǎn)移指令 短轉(zhuǎn)移指令:AJMPaddr11; (PC) + 2 PC addr11 PC 100 (PC 1511)不變長(zhǎng)轉(zhuǎn)移指令: LJMP addr16; addr16 PC 相對(duì)轉(zhuǎn)移指令SJMPrel; (PC) + 2 PC (PC) + rel PC 間接轉(zhuǎn)移指令JMPA + DPTR; (A) + (PC) PC 空操作指令NOP;

9、(PC) + 1 (PC)(PC)地址 程序存儲(chǔ)器 AJMP addr11+22KB程序轉(zhuǎn)移范圍64KB(PC) 地址 0000H程序存儲(chǔ)器 AJMP addr11FFFFH+2+1+3程序轉(zhuǎn)移范圍SJMP程序存儲(chǔ)器地址 (PC)+2rel128+127程序轉(zhuǎn)移范圍126+129SJMP$HERE:SJMPHERE256B地址 (PC)程序存儲(chǔ)器JMP A + DPTR(DPTR)轉(zhuǎn)向以DPTR內(nèi)容為首地址的256字節(jié)范圍內(nèi)中斷響應(yīng)的條件: 有中斷源發(fā)出中斷請(qǐng)求; EA1,即CPU開中斷; 申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽 ; 無同級(jí)或高優(yōu)先級(jí)中斷正在服務(wù)中; 當(dāng)前的指令已執(zhí)

10、行到最后一個(gè)機(jī)器周期并已結(jié)束 ; 若現(xiàn)行指令為RETI或者是訪問IE或IP指令時(shí),該指令以及緊接著的另一條指令已經(jīng)執(zhí)行完。 中斷響應(yīng)過程S6P2S5M1M2M4M3中斷有效中斷鎖存中斷查詢長(zhǎng)調(diào)用到中斷矢量地址中斷服務(wù)程序M5振蕩器12分頻TFxTLx THxC/T=0T1引腳C/T=1TRXINTXGATE定時(shí)定時(shí)/計(jì)數(shù)器控制與狀態(tài)寄存器計(jì)數(shù)器控制與狀態(tài)寄存器用于T1用于T0TOMDTCON 工作方式1是16位的定時(shí)/計(jì)數(shù)方式,將M1M0設(shè)為01即可,其它特性與工作方式0相同。 工作方式工作方式0 0:13位定時(shí)/計(jì)數(shù)方式,因此,最多可以計(jì)到213,也就是8192次。定時(shí)工作方式時(shí),其定時(shí)時(shí)間

11、的計(jì)算:t=(213-Tx初值)振蕩周期12工作方式工作方式1 1:16位定時(shí)/計(jì)數(shù)方式,因此,最多可以計(jì)到216,也就是65536次。定時(shí)工作方式時(shí),其定時(shí)時(shí)間的計(jì)算: t=(216-Tx初值)振蕩周期12 工作方式工作方式2 2和工作方式和工作方式3 3:都是8位的定時(shí)/計(jì)數(shù)方式,因此,最多可以計(jì)到28,也說是256次。定時(shí)工作方式時(shí),其定時(shí)時(shí)間的計(jì)算:t=(28-Tx初值)振蕩周期12 根據(jù)應(yīng)用要求,通過程序初始化,正確設(shè)置控制字,正確計(jì)算和設(shè)置計(jì)數(shù)初值;編寫中斷復(fù)位程序;適時(shí)設(shè)置控制位等,通常情況下設(shè)置順序大致如下:工作方式控制字(TMOD)的設(shè)置;計(jì)數(shù)初值的計(jì)算及裝入TLx、THx;

12、中斷允許位、TRx的設(shè)置等。MCS-51的定時(shí)/計(jì)數(shù)器的應(yīng)用編程需考慮:(1)初始化程序 START:MOVSP, 60H ;設(shè)置堆棧區(qū)域 MOVTMOD,10H ;選擇T1、定時(shí)模式,方式1 MOVTHl, 0D8H ;設(shè)置高字節(jié)初值 MOVTLl, 0FOH ;設(shè)置低字節(jié)初值開中斷 SETBEA ; SETBET1 ; ;其它初始化等主程序 MOV B,01H ;將循環(huán)初值保存在B中 SETBTRl ;啟動(dòng)定時(shí)計(jì)數(shù)器1(T1) ;繼續(xù)主程序 開中斷(2)中斷服務(wù)子程序INT1: ; ;MOV TL1,#0F0H ;MOV TH1,#0D6H ;MOV A,B ;保存在B中值送ARLA ;A

13、內(nèi)容循環(huán)左移一位MOV P1,A ;A內(nèi)容送P1口輸出MOV B,A ;循環(huán)內(nèi)容送B保存中斷結(jié)束處理, 如保護(hù)參數(shù)出棧等 ; ;RETI ;中斷結(jié)束返回中斷初值處理,如參數(shù)進(jìn)棧保護(hù)等重新置初值中斷結(jié)束處理,如保護(hù)參數(shù)出棧等TMOD控制著T0和T1的方式,在初始化T0和T1中間的一個(gè)Timer時(shí),其設(shè)置可能影響到另外一個(gè)定時(shí)器的工作方式,解決的辦法時(shí)兩個(gè)定時(shí)器一起進(jìn)行設(shè)置,或采用以下方法向TMOD送數(shù):MOVA,TMODANLA,#0FHORLA,#10HMOVTMOD,ATMOD初始狀初始狀態(tài)讀入態(tài)讀入AT1、定時(shí)模式,方式、定時(shí)模式,方式1設(shè)置高設(shè)置高4位,低位,低4位保持不變位保持不變80

14、51單片機(jī)的通訊方式 :并行通訊:數(shù)據(jù)的各位同時(shí)發(fā)送或接收。串行通訊:數(shù)據(jù)一位一位順序發(fā)送或接收 串行通訊方式:異步通訊同步通訊異步通訊中與外設(shè)的兩項(xiàng)規(guī)定:雙方能夠在對(duì)同一種0和1的串理解成同一種意義。原則上字符格式可以由通訊的雙方自由制定,但從通用、方便的角度出發(fā),一般還是使用一些標(biāo)準(zhǔn)為好,如采用ASCII標(biāo)準(zhǔn)。 :數(shù)據(jù)傳送的速率。定義每秒鐘傳送的二進(jìn)制數(shù)的位數(shù)。奇偶位停止位 1停止位2起始位1345678數(shù)據(jù)位選擇位2例:數(shù)據(jù)傳送速率是120字符/秒,每個(gè)字符格式包含十個(gè)代碼位(一個(gè)起始位、一個(gè)終止位、8個(gè)數(shù)據(jù)位),這時(shí)傳送的波特率為:10120位/秒1200波特(bps)每一位代碼的傳送

15、時(shí)間Td為波特率的倒數(shù):Td1/12000.833ms通訊方向: 在串行通訊中,把通訊接口只能發(fā)送或接收的單向傳送方法叫單工傳送;接收器乙發(fā)送器甲 數(shù)據(jù)在甲乙兩機(jī)之間的雙向傳遞,稱之為雙工傳送; 雙工傳送方式中又分為半雙工傳送和全雙工傳送半雙工傳送是兩機(jī)之間不能同時(shí)進(jìn)行發(fā)送和接收,任一時(shí)刻,只能發(fā)或者只能收信息。 接收器甲站數(shù)據(jù)流接收器乙站發(fā)送器發(fā)送器接收器接收器數(shù)據(jù)流發(fā)送器發(fā)送器甲站乙站全雙工方式2 2MCS-51MCS-51單片機(jī)的串行接口結(jié)構(gòu)單片機(jī)的串行接口結(jié)構(gòu) MCS-51單片機(jī)通過引腳RXD(P3.0,串行數(shù)據(jù)接收端)和引腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通訊。SBUF是串行

16、口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會(huì)出現(xiàn)沖突,因?yàn)樗鼈儍蓚€(gè)一個(gè)只能被CPU讀出數(shù)據(jù),一個(gè)只能被CPU寫入數(shù)據(jù)。 串行口的控制與狀態(tài)寄存器串行口的控制與狀態(tài)寄存器 51串行口設(shè)有兩個(gè)控制寄存器:串行控制寄存器SCON和波特率選擇特殊功能寄存器PCON。2)波特率選擇特殊功能寄存器PCON1) 串行控制寄存器SCON 串行口的工作方式串行口的工作方式 1) 方式02)方式13) 方式24) 方式3波特率的設(shè)置串口應(yīng)用編程帶奇偶校驗(yàn)SIN S/L GND Vcc976H G F E D C B AQHHQ74LS165543141312118051RXDTXDP

17、1.04+5V15281610SIN S/L GND Vcc976H G F E D C B AQHHQ74LS16554314131211+5V168215410利用串行口擴(kuò)展并行輸入口8051RXDTXDP1.0利用串行口擴(kuò)展并行輸出口10981,2143456111213QA QB QC QD QE QF QG QHA,B74LS164VccGNDCPQA QB QC QD QE QF QG QHA,B74LS16498VccGND1,21434561011121377CP 在51串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時(shí)器T1的溢出率控制。

18、 1)方式0: 波特率OSCf1212)方式2:波特率除與fosc有關(guān)外,還與SMOD位有關(guān)基本式為OSCSMODf642當(dāng)SMOD1時(shí),波特率OSCf642當(dāng)SMOD0時(shí),波特率OSCf641并行擴(kuò)展法是指利用單片機(jī)的三組總線(AB、DB、CB)進(jìn)行的系統(tǒng)擴(kuò)展 串行擴(kuò)展法是指利用SPI(Serial Peripheral Interface)三線總線和I2C雙總線的串行系統(tǒng)擴(kuò)展。 對(duì)于單片機(jī)系統(tǒng)擴(kuò)展的方法有并行擴(kuò)展法和串行擴(kuò)展法兩種 :芯片的串行接口與總線目前單片機(jī)應(yīng)用系統(tǒng)中使用的串行擴(kuò)展總線主要有Mmorola公司的串行外圍接口SPIQSP1,NS公司的Microwireplus串行同步雙

19、工通訊接口和Phitips公司的I2C BUS三種。SPI串行外設(shè)接口總線 SPI(Serial Peripheral Interface)總線 一種同步串行外設(shè)接口,用于MCU與各種外圍設(shè)備以串行方式進(jìn)行通信(8位數(shù)據(jù)同時(shí)同步地被發(fā)送和接收),系統(tǒng)可配置為主或從操作模式。從機(jī)選擇線SS(有的SPI接口芯片帶有中斷信號(hào)線INT或INT 、有的SPI接口芯片沒有主機(jī)輸出從機(jī)輸人數(shù)據(jù)線MOSI)。 SPI系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口。一般使用4條線:串行時(shí)鐘線(SCK)主機(jī)輸入從機(jī)輸出數(shù)據(jù)線MISO主機(jī)輸出從機(jī)輸人數(shù)據(jù)線MOSI外圍設(shè)備包括:簡(jiǎn)單的移位寄存器(用作并行輸入或輸

20、出口)至復(fù)雜的LCD顯示驅(qū)動(dòng)器或A/D轉(zhuǎn)換器等。1. SPI總線接口邏輯時(shí)序 51單片機(jī)串行擴(kuò)展SPI外設(shè)接口的方法 用一般I/O口線模擬SPI操作使用軟件模擬SPI的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和輸出。不同的串行接口外圍芯片,其時(shí)鐘時(shí)序是不同的。對(duì)于在時(shí)鐘上升沿輸入數(shù)據(jù)和在下降沿輸出數(shù)據(jù)的器件,一般取時(shí)鐘輸出P1.1的初態(tài)為1;在允許接口芯片后,置P1.1為0。P1.0模擬MCU的數(shù)據(jù)輸出端(MOSI),P1.1模擬SPI的SCK輸出端,P1.2模擬SPI的從機(jī)選擇端,P1.3模擬SPI的數(shù)據(jù)輸入端(MISO)。輸出輸出 輸入輸入對(duì)對(duì)2814,有:,有:P1.1常用于開關(guān)量I/O、A/D、D

21、/A、時(shí)鐘、顯示及打印功能等。串行時(shí)鐘芯片串行時(shí)鐘芯片(2) 利用89C51串行口方式串行口方式0實(shí)現(xiàn)SPI操作I2C總線總線I2C(Inter-Integrated Circuit)總線是PHILIPS公司推出的同步串行數(shù)據(jù)傳輸總線。在很多器件上都配備有I2C總線接口,使用時(shí)一般需要通過I2C總線進(jìn)行控制。1. I2C總線的概念是一種具有自動(dòng)尋址、高低速設(shè)備同步和仲裁等功能的高性能串行總線,能夠?qū)崿F(xiàn)完善的全雙工數(shù)據(jù)傳輸,是總線中使用信號(hào)線數(shù)量較少的。I2C總線只有只有兩根信號(hào)線: 數(shù)據(jù)線數(shù)據(jù)線SDASDA和時(shí)鐘線時(shí)鐘線SCLSCL。總線傳輸速率 100 kb/s(改進(jìn)后的規(guī)范為400 kb/

22、s),總線的長(zhǎng)度可高達(dá)25英尺 。進(jìn)入I2C總線系統(tǒng)中的設(shè)備都帶有I2C總線接口,符合I2C總線的電氣規(guī)范,I2C總線上所有節(jié)點(diǎn)的串行數(shù)據(jù)線SDA和時(shí)鐘線SCL分別與總線的SDA和SCL相連。各節(jié)點(diǎn)供電可以不同,但需共地,SDA和SCL需分別接上拉電阻。應(yīng)答信號(hào):應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障 I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào),它們分別是:開始信號(hào)

23、、結(jié)束信號(hào)和應(yīng)答信號(hào)。 開始信號(hào):開始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。結(jié)束信號(hào):結(jié)束信號(hào):SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。模擬I2C總線 51單片機(jī)與單片機(jī)與I2C總線的接口總線的接口 51 51單片機(jī)不帶單片機(jī)不帶I I2 2C C接口,若需控制接口,若需控制I I2 2C C總線總線時(shí),可選擇兩個(gè)時(shí),可選擇兩個(gè)I/OI/O口線,在軟件中分別定義口線,在軟件中分別定義成成SCLSCL和和SDASDA。(1) 單片機(jī)與單片機(jī)與I2C總線的硬件連接總線的硬件連接 51單片機(jī)與單片機(jī)與I2C總線的接口總線的接口(2 2)5151單片機(jī)對(duì)

24、單片機(jī)對(duì)I I2 2C C總線的控制程序總線的控制程序根據(jù)根據(jù)I I2 2C C總線對(duì)總線對(duì)SDASDA和和SCLSCL在各個(gè)時(shí)段的時(shí)在各個(gè)時(shí)段的時(shí)序要求,寫出起始、停止、送應(yīng)答位、送非應(yīng)序要求,寫出起始、停止、送應(yīng)答位、送非應(yīng)答位、檢查應(yīng)答位、發(fā)送一字節(jié)、接收一字節(jié)、答位、檢查應(yīng)答位、發(fā)送一字節(jié)、接收一字節(jié)、發(fā)送發(fā)送N N字節(jié)數(shù)據(jù)、接收字節(jié)數(shù)據(jù)、接收N N字節(jié)數(shù)據(jù)的子程序。字節(jié)數(shù)據(jù)的子程序。1) 51系列單片機(jī)的片外總線結(jié)構(gòu) 2)51系列單片機(jī)的系統(tǒng)并行擴(kuò)展能力 由于地址總線寬度為16位,在片外可擴(kuò)展的存儲(chǔ)器最大容量為64KB,地址為0000HFFFFH。片外數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器的操作使用

25、不同的指令和控制信號(hào),允許兩者的地址重復(fù),故片外可擴(kuò)展的數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器分別為64KB。 片外數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器的操作指令不同(片外RAM只能用MOVX指令),允許兩者地址重復(fù),亦即外部擴(kuò)展數(shù)據(jù)存儲(chǔ)器地址可從0000H開始。 為了配置外圍設(shè)備而需要擴(kuò)展的IO口,可與片外數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址,不再另外提供地址線。因此,在應(yīng)用系統(tǒng)要大量配置外圍設(shè)備以及擴(kuò)展較多IO口時(shí),要占去大量的RAM地址。 片外程序存儲(chǔ)器與片內(nèi)程序存儲(chǔ)器采用相同的操作指令,片內(nèi)與片外程序存儲(chǔ)器的選擇靠硬件結(jié)構(gòu)實(shí)現(xiàn)。 當(dāng)EA0時(shí),不論片內(nèi)有無程序存儲(chǔ)器,此時(shí)只使用片外程序存儲(chǔ)器,片外程序存儲(chǔ)器的地址應(yīng)從000OH開始

26、設(shè)置;當(dāng)EA1時(shí),前4KB地址0000H 0FFFH為片內(nèi)程序存儲(chǔ)器所有,片外擴(kuò)展的程序存儲(chǔ)器的地址只能從1000H開始設(shè)置。 1片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí)的總線功能和讀、寫操作時(shí)序 5l單片機(jī)對(duì)片外數(shù)據(jù)存儲(chǔ)器讀、寫操作的指令如下有兩組: MOVX A,Ri ;片外RAM(A) 讀(RD)操作MOVX Ri,A ;(A)片外RAM 寫(WR)操作 這組指令由于Ri只能提供8位地址,因此,僅能擴(kuò)展256個(gè)字節(jié)的片外RAM; MOVX A,DPTR ;片外RAM(A) 讀(RD)操作 MOVX DPTR,A ;(A)片外RAM 寫(WR)操作這四條指令都是單字節(jié)雙周期指令。 2擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器的硬件電

27、路 (1)擴(kuò)展2K8位片外數(shù)據(jù)存儲(chǔ)器 兩種訪問方法: 采用 “ MOVX A,DPTR ” 和 “ MOVX DPTR,A”指令訪問。 這時(shí)認(rèn)定全部P0、P2口的16根口線同時(shí)用來傳送地址信息。雖然,此處只使用了P2.2P2.0,但是P2.7P2.3卻不宜再作IO口線使用了。讀操作: MOV DPTR,#0000H MOVX A,DPTR寫操作: MOV DPTR,#0000H MOVX DPTR,A 采用 “ MOVX A, Ri ” 和 “ MOVXRi,A ” 指令訪問 這時(shí)用P2.2P2.0來傳送地址,而其余的P2.7P23仍保留IO口的功能。不過P2.2P2.0的高位地址需要通過程序

28、來設(shè)定。(2)擴(kuò)展16K8位片外數(shù)據(jù)存儲(chǔ)器 (3)擴(kuò)展更多片外數(shù)據(jù)存儲(chǔ)器 1. 分別擴(kuò)展片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器 完成輸入輸出口功能的擴(kuò)展,可以利用簡(jiǎn)單的TTL電路或CMOS電路,也可以使用一些結(jié)構(gòu)較為復(fù)雜的可編程接口芯片。 INTEL系列接口芯片有:可編程并行接口(8155、8255) 可編程通用同步異步通信接口(8251)可編程定時(shí)器計(jì)數(shù)器(8253)可編程中斷控制器(8259)可編程鍵盤顯示接口(8279)等。1利用 “ MOVXA, Ri ” 或 “ MOVXA,DPTR ” 擴(kuò)展輸入輸出口 將擴(kuò)展的IO口掛接在片外數(shù)據(jù)存儲(chǔ)器空間,即與片外RAM統(tǒng)一編址,所以IO口的輸入、輸出指

29、令就是片外數(shù)據(jù)存儲(chǔ)器的讀寫指令。 2擴(kuò)展簡(jiǎn)單的輸入輸出口方法 (1)無片外數(shù)據(jù)存儲(chǔ)器時(shí)的擴(kuò)展 (2)有片外數(shù)據(jù)存儲(chǔ)器時(shí)的擴(kuò)展 當(dāng)P1.00時(shí),選通片外數(shù)據(jù)存儲(chǔ)器6264,其地址范圍為0000H1FFFH; 當(dāng)P1.00時(shí),選通輸入口,口地址為0000H1FFFH范圍內(nèi)的任一地址。 鍵盤接口及處理程序 鍵開關(guān)狀態(tài)的可靠輸入 按鍵的消抖 鍵盤結(jié)構(gòu) 獨(dú)立式非編碼鍵盤 (a)、按鍵結(jié)構(gòu)(b)、按鍵的軟件結(jié)構(gòu)查詢方式的鍵盤程序(設(shè)IO為P1口)START: MOV A, 0FFH ;置輸入方式 MOV P1, A MOV A , P1 ;鍵狀態(tài)輸入 JNB ACC.0, P0 ;0號(hào)鍵按下轉(zhuǎn)JNB ACC.1,P1 ;1號(hào)鍵按下轉(zhuǎn)JNB ACC.2,P2 ; 2號(hào)鍵按下轉(zhuǎn)JNB ACC.3,P3 : 3號(hào)鍵按下轉(zhuǎn)JNB ACC.4,P4 ; 4號(hào)鍵按下轉(zhuǎn)JNB ACC.5,P5 ; 5號(hào)鍵按下轉(zhuǎn)使用擴(kuò)展IO口的獨(dú)立式按鍵電路 行列式鍵盤 一、工作原理鍵盤處理程序 判斷有無鍵按下 識(shí)別按鍵兩種方法:逐行(或列)掃描查詢法 線反轉(zhuǎn)法 二、單片機(jī)對(duì)非編碼鍵盤掃描的控制方式 三種方式 :程序控制掃描方式,即查詢方式 定時(shí)掃描方式,利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生中斷(例如l0ms),CPU響應(yīng)中斷后對(duì)鍵盤掃描

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論