第09章單片機(jī)應(yīng)用系統(tǒng)資源擴(kuò)展習(xí)題解答_第1頁
第09章單片機(jī)應(yīng)用系統(tǒng)資源擴(kuò)展習(xí)題解答_第2頁
第09章單片機(jī)應(yīng)用系統(tǒng)資源擴(kuò)展習(xí)題解答_第3頁
第09章單片機(jī)應(yīng)用系統(tǒng)資源擴(kuò)展習(xí)題解答_第4頁
第09章單片機(jī)應(yīng)用系統(tǒng)資源擴(kuò)展習(xí)題解答_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第09章單片機(jī)應(yīng)用系統(tǒng)資源擴(kuò)展習(xí)題解答一、填空題1. 8051單片機(jī)擴(kuò)展IO I I時(shí)占用片外 數(shù)據(jù)存儲(chǔ)器的地址。2. 8051單片機(jī)尋址外設(shè)端I I時(shí)用寄存器間址尋址方式。3. 8051單片機(jī)PSEN控制 程序存儲(chǔ)器讀操作。4. 8051單片機(jī)訪問片外存儲(chǔ)器時(shí)利用ALE信號(hào)鎖存來自P0 I I的低八位地址信號(hào)。5. 12根地址線町選_4K個(gè)存儲(chǔ)單元,32KB存儲(chǔ)單元需要15根地址線。6.欲增加8KBX8位的RAM區(qū),請(qǐng)問選用Intel 2114 (1KBX 4位)需購16片;若 改用Intel6116C2KBX8位)需購4片,若改用Intel 6264 (1KBX8位)需購_8片。一7. 7

2、4LS164是 串入并出轉(zhuǎn)換芯片,74LS165是 并入串出轉(zhuǎn)換芯片。8. 74LS138是具有3個(gè)輸入端的譯碼器芯片,其輸出作為片選信號(hào)時(shí),最多可以選中_8塊芯片。9. 74LS273通常用來作簡(jiǎn)單 輸出接I】擴(kuò)展:而74LS244則常用來作簡(jiǎn)單輸入接II擴(kuò)展。10.片選方式通常有3種形式:線選法、部分譯碼器法、全譯碼法二、簡(jiǎn)答題1.簡(jiǎn)述單片機(jī)并行擴(kuò)展外部存儲(chǔ)器時(shí)三總線連接的基本原則。答:P0II提供數(shù)據(jù)線,P0、P2【l提供地址線,低位用于片內(nèi)選擇,高位用做片選信號(hào), 用侖控制程序存儲(chǔ)器的讀操作,用而和顧控制數(shù)據(jù)存儲(chǔ)器或I/O端I I的讀寫。2.什么是全譯碼?什么是部分譯碼?什么是線選法?

3、有什么特點(diǎn)?答:(1)全譯碼法:先將擴(kuò)展芯片的地址線與單片機(jī)的地址總線從低位開始順次相連后, 剩余的高位地址線的全部經(jīng)譯碼后連接到各擴(kuò)展芯片的片選線上。全譯碼法擴(kuò)展芯片的地址 空間是唯一確定的,不會(huì)有地址重疊。但譯碼電路相對(duì)復(fù)雜。(2)部分譯碼法: 與全譯碼法類似, 先將擴(kuò)展芯片的地址線與單片機(jī)的地址總線從低位開 始順次相連后,剩余的高位地址線的一部分經(jīng)譯碼后連接到各擴(kuò)展芯片的片選線上。部分譯 碼使存儲(chǔ)器芯片的地址空間也有重疊, 但硬件上比全譯碼法簡(jiǎn)單, 重疊情況與線選法相比較 又有所改進(jìn)。(3)線選法: 先將擴(kuò)展芯片的地址線與單片機(jī)的地址總線從低位開始順次相連后, 剩余的 高位地址線的一根或

4、幾根直接連接到各擴(kuò)展芯片的片選線上。線選法的優(yōu)點(diǎn)是簡(jiǎn)單明了,不 需增加額外電路。缺點(diǎn)是存儲(chǔ)空間不連續(xù),存在地址重疊現(xiàn)象。適用于擴(kuò)展存儲(chǔ)容量較小的場(chǎng)合。3.畫出利用線選法,用3片2764A擴(kuò)展24KX8位EPROM的電路圖。分析每個(gè)芯片的地址范闈。答:電路如圖所示U2地址:COOOHDFFFHU3地址:AOOOHBFFFHU4地址:6000H7FFFH4.采用2114芯片在8031片外擴(kuò)展1 KB數(shù)據(jù)存儲(chǔ)器,并分析地址范圍。 答:電路如圖所示。U10P2WA8P2.1JA9P22W10P23W11P24JA17P27M3P2&XM4P2.7AM5PI DPI 1PI 2PI 3PI 4P

5、I5PI &PI7P3aiF:OP3.1JDCDP;亦而P3P3 4iT0P25fH_P3&殛P(guān)3.刃RD80C51d 皿2PEENOJE EAPOIfADIFOXAW旳4心P0%A8ro&AIfIf地址范I制:因?yàn)榈刂房偩€的高位P2 2P2 7均沒用上,共存著2=64個(gè)重復(fù)地址區(qū)間,每個(gè)區(qū)間的范闈為1K。0000H 03FFH, 0400H 07FFH, 0800H OBFFH, OCOOH OFFFHFCOOHFFFFH2764和6264芯片在8031片外分別擴(kuò)展24 KB程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。電路如圖所示外部ROMU2地址:COOOHDFFFHU3地址:AOOO

6、HBFFFHU4地址:6000H7FFFH外部RAM芯片U5、U6、U7的地址范圍分別與U2、U3、U4一致,但由于使用不同 的指令訪問,因此相互并無影響。三、Proteus仿真1.在Proteus F,完成9.7節(jié)內(nèi)容。5 采用答:w力*1.12FZFiiF5WitU?2W3-gFCMT*“an畧gc“c2VTtrazTTrazfFTrxc rajrrirszsCV:nEm*A2答:全自動(dòng)洗衣機(jī)控制器存儲(chǔ)器擴(kuò)展Proteus仿真隨著全自動(dòng)洗衣機(jī)功能的不斷豐富,需要的存儲(chǔ)器容量也不斷增加。當(dāng)單片機(jī)內(nèi)部存儲(chǔ) 器不夠用時(shí),就需要在外部擴(kuò)展。卞面介紹對(duì)全自動(dòng)洗衣機(jī)控制器擴(kuò)展一片AT24C02的方 法

7、,并在Proteu F仿真實(shí)現(xiàn)。用8051單片機(jī)的P1.0和P1.1模擬I2C總線,擴(kuò)展一片AT24C02,通過兩個(gè)獨(dú)立中斷 按鈕對(duì)AT24C02進(jìn)行讀寫控制。用一片并串轉(zhuǎn)換芯片4014擴(kuò)展一個(gè)8位數(shù)字量輸入電路,輸入8個(gè)撥碼開關(guān)的狀態(tài)。在PO I I擴(kuò)展8個(gè)LED發(fā)光二極管。當(dāng)讀按鍵按下時(shí),從4014芯片讀入8位撥碼開關(guān)的狀態(tài)信息,并寫入AT24C02芯片。當(dāng)寫按鍵按下時(shí),從AT24C02芯片中讀出剛才保存的8位撥碼開關(guān)狀態(tài)信息,并送PO I I顯示。電路如圖9-33所示。C語言參考程序代碼如下:#include#defiiie uchar unsigned chai#defiiie uni

8、t unsigned mt#defiiie DELAY.TIME 60#defiiie TRUE 1#defiiie FALSE 0#defiiie MYADDR 0 x08sbit SDA=P1AO;sbit SCL=P1A1;sbit SL=P1A7;sbit SD=P3、0;sbit CLK=P3T;圖9-33仿真電路原理圖包含頭文件,其中定義51特殊寄存器簡(jiǎn)化無符號(hào)變量聲明字定義延時(shí)時(shí)河常數(shù)定義布爾常量定義AT24C02內(nèi)部單元地址用P1.0模擬I2C總線的SDA用P1.1模擬I2C總線的SCL/4014工作方式控制I I定義串I I數(shù)據(jù)線RP3/*4014并轉(zhuǎn)串輸入子程序*/uclw

9、 get_input()uclw dat;聲明RAM變屋,用于存放轉(zhuǎn)換后的8位數(shù)據(jù)SL=1;置4014于并行輸入工作方式CLK=0;串行1 1未啟動(dòng)之前,P3.1上無同步移位脈沖CLK=1;并行置數(shù),軟件產(chǎn)生一個(gè)脈沖上升沿SL=0;置4014于串行移位工作方式SCON=OxlO;串丨1工作方式0,允許接收ES=0;關(guān)中斷while (RI=0);查詢接收中斷標(biāo)志位RI=0;/全部接收完成,清零標(biāo)志位dat=SBUF;將轉(zhuǎn)換后的數(shù)據(jù)送datSL=1;置4014于并行輸入工作方式xeturn(dat);返回dat值/* pc相關(guān)子函數(shù) */-延時(shí)函數(shù)-void DELAY(umt t)輸入定時(shí)時(shí)間

10、t,無輸出while(t!=0)t-;當(dāng)t不為0時(shí)自減1/* I2C_Stan ()函數(shù)的作用:產(chǎn)生I2C總線啟動(dòng)信號(hào),當(dāng)SCL為高電平時(shí)使SDA產(chǎn)生 一個(gè)由高至低的電平跳變*/void I2C_Start(void)無輸入變量,無返回值SDA=1;置SDA口高電平SCL=1;置SCL口高電平DELAY(DELAY_TIME);/延時(shí),讓SCL,SDA高電平持續(xù)一段時(shí)間SDA=0;使SDA口輸出低電平DELAY(DELAY_TIME);延時(shí),讓SDA低電平持續(xù)一段時(shí)間SCL=O;使SCL 1 1輸出低電平DELAY(DELAY_TIME);延時(shí),為傳輸數(shù)據(jù)做準(zhǔn)備/* I2C_Stop ()函數(shù)

11、的作用:產(chǎn)生I2C總線停止信號(hào),當(dāng)SCL為高電平時(shí)使SDA產(chǎn)生一個(gè)由低至高的電平跳變*/void I2C_Stop(void)/無輸入變量,無返回值SDA=0;使SDA 1 1輸出低電平SCL=1;置SCL 1 1高電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間SDA=1;置SDA 1 1高電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間SCL=O;使SCL 1 1輸出低電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間/* SEND_O ()函數(shù):發(fā)送位數(shù)據(jù)“0篤在SCL為高電平時(shí)使SDA信號(hào)為低*/void SEND_0(void)無輸入變量,無返

12、回值SDA=0;使SDA 1 1輸出低電平SCL=1;置SCL 1 1高電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間SCL=O;使SCL丨1輸出低電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間SEND()函數(shù):發(fā)送位數(shù)據(jù)“1”,在SCL為高電平時(shí)使SDA信號(hào)為高*/void SEND_l(void)無輸入變量,無返回值SDA=1;置SDA 1 1高電平SCL=1;置SCL 1 1高電平DELAY(DELAY_TIME);/延時(shí),電平持續(xù)一段時(shí)間SCL=0;使SCL丨1輸出低電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間/* Check.Ackn

13、owledgeQ函數(shù)為ACK檢驗(yàn)函數(shù):每發(fā)送完一個(gè)字節(jié)數(shù)據(jù)后檢驗(yàn)ACK應(yīng)答 信號(hào),返回0表示無應(yīng)答,返回1則表示有應(yīng)答*/bit Check_Ackiiowledge(void)無輸入變量,返回一個(gè)布爾值(0或1)SDA=1;置SDA 1 1高電平SCL=1;置SCL丨1高電平DELAY(DELAY_TIME/2);短延時(shí),電平持續(xù)一段時(shí)間F0=SDA;讀入SDA的狀態(tài)保存至PSW中的F0用戶標(biāo)志位DELAY(DELAY_TIME/2);短延時(shí),電平持續(xù)一段時(shí)間SCL=0;使SCL丨1輸出低電平DELAY(DELAY_TIME);延時(shí),電平持續(xù)一段時(shí)間if(FO=l)根據(jù)F0的值返回布爾變量值

14、return FALSE;/SDA為1,則無應(yīng)答信號(hào),返回0return TRUE;/SDA為0,表示收到應(yīng)答,返回1/* WnteI2CBvte ()函數(shù)的作用:向I2C總線寫一個(gè)字節(jié)5*7void WriteI2CBvte(chai- b)reentiant輸入1字節(jié)數(shù)據(jù)b,無返回值,函數(shù)門J重入char 1;聲明變量1,用于循壞計(jì)數(shù)fbr(i=0;i8;i+)8次循環(huán)if(bi)&0 x80)逐一判斷輸入數(shù)據(jù)各位的值SEND_10;若位值為1,向總線發(fā)送位數(shù)據(jù)“1”else否則SEND.OQ;位值為0,向總線發(fā)送位數(shù)據(jù)“0”/*從I2C總線讀一個(gè)字節(jié)犁char ReadI2CBy

15、te(void)reentrant無輸入,返回8位數(shù)據(jù),函數(shù)可重入聲明兩個(gè)變量:b用于數(shù)據(jù)接收緩沖,1用于循環(huán)控制循環(huán)8次置SDA I I高電平置SCL I I高電平延時(shí)將SDA值讀至PSW的F0位延時(shí)使SCL I I輸出低電平如果位值為1將“1”移入緩沖區(qū)的最低位b左移1位/左移后b的最低位置1否則,位值為0, “0”移入緩沖區(qū)的最低位/b左移1位,低位填0下一次循環(huán)返回b的值函數(shù)調(diào)用返回/*以下為讀寫AT24C02的函數(shù)*/void Write_One_Byte(chai addr.chai- thedata)向AT24C02的addr單元寫數(shù)據(jù)tliedatabit acktemp=l;

16、定義位變acktemp,用于存放ACK檢驗(yàn)結(jié)果,初始為1char b=Oj;fbr(i=0;i5LWOLED7 .ro1U1U01234 5 6 7 DDDDDDD DQIQOQ1W3Q49Q0Q7AIo 十5 *仃12 3 456 7 Q Q QQ Q Q Q Q ffCJls:0 12 3 4 5 6 7DDDDDDD D圖9-28 I/O口擴(kuò)展1.芯片及連線在圖9-28中采用的芯片為74LS244、74LS273。其中,74LS244為8位緩沖驅(qū)動(dòng)器(三 態(tài)輸出),庚、巨為低電平有效使能端。74LS273為8D觸發(fā)器,阪 為低電平有效的清零端,當(dāng)帀=0時(shí),輸出全為0且與其它輸入端無關(guān);C

17、P端是時(shí)鐘信號(hào),當(dāng)CP由低電平向 高電平跳變時(shí),D端輸入數(shù)據(jù)傳送到Q輸出端。P0丨I作為雙向8位數(shù)據(jù)線,既能夠從74LS244輸入數(shù)據(jù),又能夠從74LS273輸出數(shù)據(jù)。輸入控制信號(hào)由P2.0和而相“或,后形成。當(dāng)二者都為0時(shí),74LS244的控制端有效,選通74LS244,外部的信息輸入到P0數(shù)據(jù)總線上。當(dāng)與74LS244相連的按鍵都沒有按下時(shí),輸 入全為1,若按卞某鍵,則他所在線輸入為0。輸出控制信號(hào)由P2.0和顧相“或”后形成。當(dāng)二者都為0后,74LS273的控制端有效,選通74LS273, P0上的數(shù)據(jù)鎖存到74LS273的輸出端,控制發(fā)光二極管LED,當(dāng)某線輸出 為0時(shí),相應(yīng)的LED發(fā)

18、光。2.I/O口地址確定因?yàn)?4LS244和74LS273都是在P2.0為0時(shí)被選通的,所以二者的I I地址都為FEFFH(這個(gè)地址不是唯一的,只要保證P2.0=0,其它地址位無關(guān)),即占有相同的地址空間。但是由于分別由而和顧控制,而這兩個(gè)信號(hào)不可能同時(shí)為0(執(zhí)行輸入指令,如MOVX A, DPTR或MOVX A, Ri時(shí),而有效;執(zhí)行輸出指令,如MOVX DPTR, A或MOVX R1, A時(shí),顧有效),所以邏輯上二者不會(huì)發(fā)生沖突。3.編程應(yīng)用下面的匯編程序?qū)崿F(xiàn)的功能是按下任意鍵,對(duì)應(yīng)的LED發(fā)光。ORG 0000HLJMP LOOPORG 01 OOHLOOP: MOV DPTR. #0FEFFHMOVX A, DPTRMOVX DPTR. ASJNIP LOOPEND;00H單元存儲(chǔ)轉(zhuǎn)移指令;轉(zhuǎn)至LOOP程序段;0100H開始存放主程序;數(shù)據(jù)指針指向IO I I地址;從74LS244讀入數(shù)據(jù)74LS2

溫馨提示

  • 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)論