强烈建议用户尽可能不要考虑外扩程序存储器,如果非扩不可,可以仿照下图所示电路进行扩展
图中P0口输出外部ROM的低8位地址信号,P2口输出高8位地址信号;ALE端输出地址锁存信号,/PSEN输出程序存储器输出使能信号。
两个模块
P89V51RD2单片机内部有64K用户ROM区和8K BOOT ROM区两个模块
两个模块在物理上是分开的,尽管地址重合,但一般不会发生冲突。
用户程序存储区
P89V51RD2内部有64K Flash ROM,不需要用户再进行ROM扩展
地址范围:0000H~FFFFH
其内部分配和其他51系列单片机是相同的
Flash ROM可以反复擦除和下载程序
擦除和编程的方法
并行编程器
ISP (在系统编程:In-System Program)
直接调用单片机BOOTROM区的IAP 函数
IAP (在应用编程:In-Application Program)
一般情况下优先使用ISP方式,更方便、更快捷
关于BOOT ROM区
存储介质:Flash Memory
容量:8K字节
存储内容:ISP引导程序和IAP函数
这些程序出厂时已经由PHILIPS已经写入,用户可以对其修改,但建议一般用户不要试图修改它。
单片机在复位后会等待400ms,如果在此期间用户在上位计算机上运行了FlashMagic等类似ISP软件,且串口通信正常,单片机将进入BOOT ROM区运行ISP引导程序;否则,单片机在400ms以后将自动从用户ROM区0000H单元开始运行用户程序
关于ISP
ISP 在系统编程:In-System Program,指用户不必把单片机从目标板上取下来,在特定的软件配合下直接通过串口(或其他端口)就可以对单片机进行读取、擦除、设置和程序下载等操作,从而取代了并行编程器的很多功能。
现在越来越多的单片机都具有ISP功能。
PHILIPS提供的单片机ISP软件是FlashMagic,通过串口完成ISP操作。
关键字:51单片机 外扩ROM 程序存储器
引用地址:
51单片机外扩ROM方法介绍
推荐阅读最新更新时间:2024-03-16 13:04
51单片机的启动文件内容
在我们使用kei c51创建一个 51单片机 项目时,会有如下图所示的提示: keil 创建新项目时,提示是否添加启动文件 一般情况下,需要选择“是”。当然,也可以选择不加。那么,这个启动文件的作用是什么?什么情况下需要加,什么情况下可以不加? 今天我们就来详细了解一下这个启动文件的内容,看明白这个内容后,我们就会有种恍然大悟的感觉:“哦,原来是这样啊!” 启动代码第一段 ▼以下是启动代码原文第一段: $NOMOD51 ;------------------------------------------------------------------------------ ; This file is
[单片机]
基于51单片机的多点8路温度采集系统
硬件设计 仿真图1: 总共有8路温度采集点,基于DS18B20,LCD1602以轮询的方式显示 程序设计 #include AT89X52.h #include Intrins.h #define DATA P1 //1602驱动端口 //ROM操作命令 #define READ_ROM 0x33 //读ROM #define SKIP_ROM 0xCC //跳过ROM #define MATCH_ROM 0x55 //匹配ROM #define
[单片机]
跟我学51单片机(一):单片机最小系统组成与I/O输出控制
单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Study-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。通过讲述单片机原理、电路设计、应用开发软件工具、编写实验实例让读者全面接触单片机技术。教程编排上由浅入深,循序渐进,内容力求完整、实用、趣味并存,使读者在轻松愉快的学习过程中逐步提高单片机软硬件综合设计水平。 一、内容提要 本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原
[单片机]
基于51单片机的烟雾报警系统设计
一.系统概述 系统使用的模块有AT89C51单片机+MQ-2烟雾传感器+LCD1602显示屏+ADC0809数模转换器。 本设计采用51单片机为核心控制器,利用气体传感器MQ-2、ADC0809模数转换器、DS18B20温度传感器等实现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来实现火灾报警,智能化提示。 二.仿真概述 1.采用LCD1602实时显示当前的烟雾值和设置阈值。 2.烟雾浓度的报警值可以通过按键设定,按键可以对阈值进行加减。 3.当前烟雾值在正常范围时,小灯不亮。 4.当前烟雾超过上限值时,小灯亮。 三.程序设计 使用Keil
[单片机]
51单片机流水灯实验
上次我们完成了51单片机最小开发板的制作,这次我将在这块最小开发板上来进行一个简单的入门实验 流水灯实验。当你能让LED灯按照你的想法随意闪烁 时,那不只是视觉上的享受,你还会发现单片机是一个多么神奇的东西啊,它居然能按照人的意思来控制LED灯。这个实验完成后,你将会初步体会到单片机的魔 力,你将因它不可自拔。赶快来开始我们的实验吧! 51 单片机流水灯实验硬件电路设计 系统电路图主要包括电源部分 晶振电路 复位电路 发光二极管(LED灯) 电路原理图如下: 流水灯实验硬件电路制作 这个流水灯实验硬件电路的制作很简单,只需在51单片机上任选一组I/O口(这里选的是P2口)外接8个发光二级管即可。
[单片机]
51单片机开发的几点心得
1、 单片机 IO口上电后默认是高电平。(P1、P2、P3口内部上拉,若P0口未接上拉电阻的话,默认是高阻态) 2、单片机工作频率=晶振频率/12,即使用12MHz的晶振,实际工作频率为1MHz,一个机器周期为1us。 3、单片机常用11.0592MHz的晶振,主要是保证串口通信的同步。比如说在9600波特率下每位数据电平持续96个机器周期,因为是整数值,不会产生误差。若使用12MHz的晶振,高波特率下通信容易产生误码。 4、三极管的使用:在模拟电路中,输入为高频模拟信号时,三极管一般工作在放大模式下。在数字电路中,三极管一般作为开关用,工作在饱和模式下。 5、在单片机数据线和地址线复用的情况下必须使用锁存器,可在工作时锁
[单片机]
51单片机与串口通信代码
串口调试 1. 发送:向总线上发命令 2. 接收:从总线接收命令,并分析是地址还是数据。 3. 定时发送:从内存中取数并向主机发送. 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。 程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #i nclude reg51.h #i nclude stdio.h #i nclude string.h #define INBUF_LEN 4 //数据长度 unsigned char inbuf1 ; unsigned char
[单片机]