<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > EEPROM外部程序存儲器實驗

          EEPROM外部程序存儲器實驗

          作者: 時間:2012-10-20 來源:網(wǎng)絡 收藏

          一、實驗目的

          1.掌握單片機擴展外ROM的方法
          2.了解M的使用方法
          二、實驗說明
          MCS-51型單片機芯片中,8031片內(nèi)無ROM,必須擴展外ROM;80C51片內(nèi)雖有4KB掩膜ROM,但寫入程序時需由生產(chǎn)商一次性輸入,使用起來很不方便;芯片內(nèi)有4KB M,若片內(nèi)ROM不夠用,也需擴展片外ROM。
          一、實驗目的
          1、了解8155芯片結(jié)構(gòu)及接口方式
          2、掌握8155輸入、輸出的編程方法
          二、實驗說明
          1、本實驗利用8155可編程并行口芯片,實現(xiàn)數(shù)據(jù)的輸入、輸出。實驗中8155的PA口、PB口作為輸出口。與8255比,8155具有更強的功能,因為它除能提供并行接口外還包括有256字節(jié)RAM存儲器和14位定時器/計數(shù)器。8155具有三個可編程I/O口,其中PA、PB為八位口,PC口為6位口。PA口、PB口為通用的輸入輸出口,主要用于數(shù)據(jù)的I/O傳送,他們都是數(shù)據(jù)口,因此只有輸入輸出兩種工作方式。
          2、了解實驗用到的芯片引腳及功能:
          8155是一種可編程多功能接口芯片,功能豐富,使用方便,特別適合于擴展少量RAM和定時器/計數(shù)器的場合。其部
          分引腳功能如下:
          (1) AD0~AD7——地址/數(shù)據(jù)總線,雙向三態(tài)。
          1)8155有256字節(jié)靜態(tài)RAM,每一字節(jié)均有相應地址,
          輸入輸出數(shù)據(jù)均通過AD0~AD7口傳送。
          2)8155內(nèi)部有6個寄存器:A口,B口,C口,命令狀
          態(tài)寄存器,定時/計數(shù)器低8位,定時/計數(shù)器高6位加2位
          輸出信號形式,6個寄存器有各自相應的地址。地址及寫入或
          讀出的數(shù)據(jù)均通過AD0~AD7傳送。
          3)AD0~AD7傳送數(shù)據(jù)的方向由RD,WR信號控制。
          (2) CE——片選信號,輸入,低電平有效。
          (3) WR——寫信號,輸入,低電平有效。
          (4) RD——讀信號,輸入,低電平有效。
          (5) PA0~PA7——A口8位通用I/O線。
          (6) PB0~PB7——B口8位通用I/O線。
          (7) PC0~PC5——C口6位I/O線既可作通用I/O口,又可作A口和B口工作于選通方式下的控制信號。
          (8) IO/M——I/O與RAM選擇信號。8155內(nèi)部I/O口與RAM是分開編址的,因此要使用控制信號進行區(qū)分。IO/M=0,對RAM進行讀寫;IO/M=1,對I/O進行和計數(shù)器進行讀寫。
          3、本實驗8155的端口地址由單片機的P0口和P2.7以及P2.0決定??刂瓶诘牡刂窞?F00H;PA口的地址為7F01H;PB口的地址為7F02H。
          三、實驗內(nèi)容及步驟
          本實驗分兩種情況來進行:(一) PA口作為輸出口。 (二) PA口作為輸出口,PB口作為輸入口。
          (一)PA口作為輸出口,接八位邏輯電平顯示,程序功能使發(fā)光二極管單只從右到左輪流循環(huán)點亮。
          1、單片機最小應用系統(tǒng)的 P0口接8155的D0~D7口,8155的PA0~PA7接八位邏輯電平顯示JD10,單片機最小應用系統(tǒng)的P2.0、P2.7、RD、WR、ALE分別接8155的IO/M、CE、RD、WR、ALE,RESET接上最小系統(tǒng)的復位電路的RESET。
          2、用串行數(shù)據(jù)通信線連接計算機與仿真器,把仿真器插到模塊的鎖緊插座中,請注意仿真器的方向:缺口朝上。
          3、打開Keil uVision2仿真軟件,首先建立本實驗的項目文件,接著添加 8155_A.ASM源程序,進行編譯,直到編譯無誤。
          4、進行軟件設置,選擇硬件仿真,選擇串行口,設置波特率為38400。
          5、也可以把源程序編譯成可執(zhí)行文件,把可執(zhí)行文件用ISP燒錄器燒錄到89S52/89S51芯片中運行。(ISP燒錄器的使用查看附錄二)
          (二)PA口作為輸出口,PB口作為輸入口,PA口讀入鍵信號送八位邏輯電平顯示模塊顯示。
          1、單片機最小應用系統(tǒng)的 P0口接8155的D0~D7口,8155的PA0~PA7接八位邏輯電平顯示,PB0~PB7口接查詢式鍵盤模塊,單片機最小應用系統(tǒng)的P2.0、P2.7、RD、WR、ALE分別接8155的IO/M、CE、RD、WR、ALE,RESET接上復位電路的RESET。
          2、打開8155_B.ASM源程序,編譯無誤后,全速運行程序。按查詢式鍵盤各鍵,觀察發(fā)光二極管的亮滅情況,發(fā)光二極管與按鍵相對應,按下為點亮,松開為熄滅。
          5、也可以把源程序編譯成可執(zhí)行文件,把可執(zhí)行文件用ISP燒錄器燒錄到89S52/89S51芯片中運行。(ISP燒錄器的使用查看附錄二)
          四、流程圖及源程序

          8155工作方式
          8155PB口
          8155PA口
          8155工作方式
          8155PA口
          數(shù)據(jù)左移
          延 時

          源程序如下:
          (一)PA口輸出:org       0hporta    equ    7F01h       ;A口Portb    equ    7F02h       ;B口caddr    equ    7F00h       ;控制字地址mov      a,#03h             ;方式0,PA、PB輸出mov      dptr, #caddrmovx     @dptr, aLoop:mov     a, #0FEhmov     r2, #8Output:mov     dptr, #portamovx    @dptr, acall    Delayrl      adjnz    r2, Outputljmp    LoopDelay:mov     r6, #0mov     r7, #0DelayLoop:djnz    r6, DelayLoopdjnz    r7, DelayLoopretend(二)PA口輸出,PB口輸入ORG     0mode    equ   01h          ;方式0,PA輸出,PB輸入PortA   equ   7F01h        ;A口PortB   equ   7F02h        ;B口CAddr   equ   7F00h        ;控制字地址SJMP   STARTorg     30h          mov     a, #modemov     dptr, #caddrmovx    @dptr, aSTART:mov     dptr, #PortBmovx    a, @dptr             ;讀入B口mov     dptr, #PortAmovx    @dptr, a             ;輸出到A口call   delaySjmp    STARTend 
          五、思考題
          試用8155PA口作為輸出口,PB作為輸入口,PC作為輸入口完成8155的輸入、輸出實驗(其中PA口LED數(shù)碼顯示,PB接撥斷開關(guān),PC接查詢式鍵盤實驗模塊)。


          關(guān)鍵詞: EEPRO 程序存儲器 89C51

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();