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