8051单片机外扩ROM

首先,我们必须知道外扩ROM的地址,因为8051单片机采用了统一编址,无论是什么样的外部设备,都有一个地址。在这里外扩一片2764(8KB的ROM)。具体的电路图按照如下方式连接。ALE锁存信号接锁存器373的LE端。PSEN信号接2764的选通端。


在这里我们可以看到片外ROM的地址是0000H——1FFFH.片内只有4KB的ROM,地址是0000H——0FFFH。我们写一段测试代码,代码的功能是让P1.0接的LED灯闪烁。我们的代码从1000H这个地址起,也就是说,放在了外部ROM中。代码如下。

;====================================================================
; Main.asm file generated by New Project wizard
;
; Created:   周五 4月 27 2018
; Processor: AT89C51
; Compiler:  ASEM-51 (Proteus)
;====================================================================

$NOMOD51
$INCLUDE (8051.MCU)

;====================================================================
; DEFINITIONS
;====================================================================

;====================================================================
; VARIABLES
;====================================================================

;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================

      ; Reset Vector
      org   0000h
      jmp   Start            ;跳到Start处

;====================================================================
; CODE SEGMENT
;====================================================================

      org   1000h
Start:	                    ;Start是从1000H这个地址单元开始的,也就是在外部ROM中
here:
	LCALL Delay
	cpl p1.0
	ljmp here
	org 1100h           ;延时程序在1100H地址起
Delay:	mov r7,#0ffh
loop2:	mov r6,#0a0h
loop1:	nop
		nop
		nop
		djnz r6,loop1
		djnz r7,loop2
		ret
      ; Write your code here
Loop:	
      jmp Loop

;====================================================================
      END

我测试的是没有问题的,LED安装设想来闪烁。

猜你喜欢

转载自blog.csdn.net/zy010101/article/details/80642117