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

下載本文檔

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

文檔簡介

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

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

3、須使EA0,這樣才能從片外擴展的EPROM中取指令。 需要指出的是:8051從片內(nèi)程序存儲器和片外程序存儲器取指時執(zhí)行速度相同。 程序存儲器的0000H0002H單元被保留用于程序的起始。從0003H0032H單元被保留專用于中斷服務(wù)程序 數(shù)據(jù)存儲器在物理上和邏輯上分為兩個地址空間內(nèi)部數(shù)據(jù)存儲器、外部數(shù)據(jù)存儲器。訪問內(nèi)部數(shù)據(jù)存儲器用MOV指令;訪問外部數(shù)據(jù)存儲器用MOVX指令。 片內(nèi)數(shù)據(jù)存儲器分為兩個部分: 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個工作寄存器(

5、R0R7),占32個單元; 從20H2FH共16個字節(jié)單元中,共包含了128位既可位尋址又可字節(jié)尋址; 30H7FH共80個字節(jié)單元為字節(jié)尋址的內(nèi)部RAM區(qū)。 由此可見,低128RAM分為三個部分:工作寄存器區(qū);位尋址RAM區(qū);字節(jié)尋址RAM區(qū)。不用的工作寄存器單元,可作RAM用,不用的位尋址單元可進行字節(jié)尋址的RAM用。 在單片機系統(tǒng)的實際應(yīng)用中,常把單片機的復(fù)位分為冷啟動和熱啟動。 70單字節(jié)指令(49條)7070雙字節(jié)指令(45條)三字節(jié)指令(17條)寄存器尋址直接尋址寄存器間接尋址立即尋址基址寄存器加變址寄存器間接尋址相對尋址位尋址 無條件轉(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)志位長調(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)點:可節(jié)省一個字節(jié)的存儲單元缺點:被調(diào)用子程序的存放區(qū)域受到限制 長調(diào)用指令為三字節(jié)指令,可調(diào)用64K字節(jié)存儲空間的任一目標(biāo)地址。優(yōu)點:可在64K字節(jié)存儲空間內(nèi)任意存放,為編程帶來方便缺點:與短調(diào)用指令相比,指令多占用了一個字節(jié)的存儲單元。 返回類指令子程序返回指令 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、的返回指令,除正確返回中斷斷點處繼續(xù)往下執(zhí)行主程序外,并告知中斷系統(tǒng),表示已結(jié)束中斷服務(wù)程序的執(zhí)行,恢復(fù)中斷邏輯以接受新的中斷請求,如果在執(zhí)行RETI指令時已有一個同級或較低級中斷請求,或者正在執(zhí)行RETI指令時有高級中斷提出請求, 轉(zhuǎn)移類指令 無條件轉(zhuǎn)移指令 短轉(zhuǎn)移指令:AJMPaddr11; (PC) + 2 PC addr11 PC 100 (PC 1511)不變長轉(zhuǎn)移指令: LJMP addr16; addr16 PC 相對轉(zhuǎn)移指令SJMPrel; (PC) + 2 PC (PC) + rel PC 間接轉(zhuǎn)移指令JMPA + DPTR; (A) + (PC) PC 空操作指令NOP;

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

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

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

12、中斷允許位、TRx的設(shè)置等。MCS-51的定時/計數(shù)器的應(yīng)用編程需考慮:(1)初始化程序 START:MOVSP, 60H ;設(shè)置堆棧區(qū)域 MOVTMOD,10H ;選擇T1、定時模式,方式1 MOVTHl, 0D8H ;設(shè)置高字節(jié)初值 MOVTLl, 0FOH ;設(shè)置低字節(jié)初值開中斷 SETBEA ; SETBET1 ; ;其它初始化等主程序 MOV B,01H ;將循環(huán)初值保存在B中 SETBTRl ;啟動定時計數(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é)束處理, 如保護參數(shù)出棧等 ; ;RETI ;中斷結(jié)束返回中斷初值處理,如參數(shù)進棧保護等重新置初值中斷結(jié)束處理,如保護參數(shù)出棧等TMOD控制著T0和T1的方式,在初始化T0和T1中間的一個Timer時,其設(shè)置可能影響到另外一個定時器的工作方式,解決的辦法時兩個定時器一起進行設(shè)置,或采用以下方法向TMOD送數(shù):MOVA,TMODANLA,#0FHORLA,#10HMOVTMOD,ATMOD初始狀初始狀態(tài)讀入態(tài)讀入AT1、定時模式,方式、定時模式,方式1設(shè)置高設(shè)置高4位,低位,低4位保持不變位保持不變80

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

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

16、口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會出現(xiàn)沖突,因為它們兩個一個只能被CPU讀出數(shù)據(jù),一個只能被CPU寫入數(shù)據(jù)。 串行口的控制與狀態(tài)寄存器串行口的控制與狀態(tài)寄存器 51串行口設(shè)有兩個控制寄存器:串行控制寄存器SCON和波特率選擇特殊功能寄存器PCON。2)波特率選擇特殊功能寄存器PCON1) 串行控制寄存器SCON 串行口的工作方式串行口的工作方式 1) 方式02)方式13) 方式24) 方式3波特率的設(shè)置串口應(yīng)用編程帶奇偶校驗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利用串行口擴展并行輸入口8051RXDTXDP1.0利用串行口擴展并行輸出口10981,2143456111213QA QB QC QD QE QF QG QHA,B74LS164VccGNDCPQA QB QC QD QE QF QG QHA,B74LS16498VccGND1,21434561011121377CP 在51串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時器T1的溢出率控制。

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

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

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

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

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

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

24、單片機對I I2 2C C總線的控制程序總線的控制程序根據(jù)根據(jù)I I2 2C C總線對總線對SDASDA和和SCLSCL在各個時段的時在各個時段的時序要求,寫出起始、停止、送應(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系列單片機的片外總線結(jié)構(gòu) 2)51系列單片機的系統(tǒng)并行擴展能力 由于地址總線寬度為16位,在片外可擴展的存儲器最大容量為64KB,地址為0000HFFFFH。片外數(shù)據(jù)存儲器與程序存儲器的操作使用

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

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

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

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

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

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論