首先,我们必须知道外扩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
上一篇:基于51单片机设计的简易电子琴
下一篇:在51单片机上输出一个周期是20ms,占空比为75%的矩形波
推荐阅读最新更新时间:2024-11-09 13:57