EEPROM外部程序存储器实验

发布者:小牛队最新更新时间:2012-10-20 来源: 21ic 关键字:EEPRO  程序存储器  89C51 手机看文章 扫描二维码
随时随地手机看文章

一、实验目的

1.掌握89C51单片机扩展外ROM的方法
2.了解EEPROM的使用方法
 
二、实验说明
MCS-51型单片机芯片中,8031片内无ROM,必须扩展外ROM;80C51片内虽有4KB掩膜ROM,但写入程序时需由生产商一次性输入,使用起来很不方便;89C51芯片内有4KB EEPROM,若片内ROM不够用,也需扩展片外ROM。
 
一、实验目的
1、了解8155芯片结构及接口方式
2、掌握8155输入、输出的编程方法
 
二、实验说明
1、本实验利用8155可编程并行口芯片,实现数据的输入、输出。实验中8155的PA口、PB口作为输出口。与8255比,8155具有更强的功能,因为它除能提供并行接口外还包括有256字节RAM存储器和14位定时器/计数器。8155具有三个可编程I/O口,其中PA、PB为八位口,PC口为6位口。PA口、PB口为通用的输入输出口,主要用于数据的I/O传送,他们都是数据口,因此只有输入输出两种工作方式。
2、了解实验用到的芯片引脚及功能:
8155是一种可编程多功能接口芯片,功能丰富,使用方便,特别适合于扩展少量RAM和定时器/计数器的场合。其部
分引脚功能如下:
(1) AD0~AD7——地址/数据总线,双向三态。
1)8155有256字节静态RAM,每一字节均有相应地址,
输入输出数据均通过AD0~AD7口传送。
2)8155内部有6个寄存器:A口,B口,C口,命令状
态寄存器,定时/计数器低8位,定时/计数器高6位加2位
输出信号形式,6个寄存器有各自相应的地址。地址及写入或
读出的数据均通过AD0~AD7传送。
3)AD0~AD7传送数据的方向由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内部I/O口与RAM是分开编址的,因此要使用控制信号进行区分。IO/M=0,对RAM进行读写;IO/M=1,对I/O进行和计数器进行读写。  
3、本实验8155的端口地址由单片机的P0口和P2.7以及P2.0决定。控制口的地址为7F00H;PA口的地址为7F01H;PB口的地址为7F02H。
 
三、实验内容及步骤
本实验分两种情况来进行:(一) PA口作为输出口。 (二) PA口作为输出口,PB口作为输入口。
(一)PA口作为输出口,接八位逻辑电平显示,程序功能使发光二极管单只从右到左轮流循环点亮。
1、单片机最小应用系统的 P0口接8155的D0~D7口,8155的PA0~PA7接八位逻辑电平显示JD10,单片机最小应用系统的P2.0、P2.7、RD、WR、ALE分别接8155的IO/M、CE、RD、WR、ALE,RESET接上最小系统的复位电路的RESET。
2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 8155_A.ASM源程序,进行编译,直到编译无误。
4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)
 (二)PA口作为输出口,PB口作为输入口,PA口读入键信号送八位逻辑电平显示模块显示。
1、单片机最小应用系统的 P0口接8155的D0~D7口,8155的PA0~PA7接八位逻辑电平显示,PB0~PB7口接查询式键盘模块,单片机最小应用系统的P2.0、P2.7、RD、WR、ALE分别接8155的IO/M、CE、RD、WR、ALE,RESET接上复位电路的RESET。
2、打开8155_B.ASM源程序,编译无误后,全速运行程序。按查询式键盘各键,观察发光二极管的亮灭情况,发光二极管与按键相对应,按下为点亮,松开为熄灭。
5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)
四、流程图及源程序
 

8155工作方式
8155PB口
8155PA口
 
 
8155工作方式
8155PA口
数据左移
 
延 时
 
 

源程序如下:
(一)PA口输出:
      org       0h
      porta    equ    7F01h       ;A口
      Portb    equ    7F02h       ;B口
      caddr    equ    7F00h       ;控制字地址
      mov      a,#03h             ;方式0,PA、PB输出
      mov      dptr, #caddr
       movx     @dptr, a
Loop:
       mov     a, #0FEh
       mov     r2, #8
Output:
       mov     dptr, #porta
       movx    @dptr, a
       call    Delay
       rl      a
       djnz    r2, Output
       ljmp    Loop
Delay:
       mov     r6, #0
       mov     r7, #0
DelayLoop:
       djnz    r6, DelayLoop
       djnz    r7, DelayLoop
       ret
       end
(二)PA口输出,PB口输入
       ORG     0
       mode    equ   01h          ;方式0,PA输出,PB输入
       PortA   equ   7F01h        ;A口
       PortB   equ   7F02h        ;B口
       CAddr   equ   7F00h        ;控制字地址
       SJMP   START
org     30h          
   mov     a, #mode
       mov     dptr, #caddr
       movx    @dptr, a
START:mov     dptr, #PortB
       movx    a, @dptr             ;读入B口
       mov     dptr, #PortA
       movx    @dptr, a             ;输出到A口
       call   delay
       Sjmp    START
       end 
 
五、思考题
试用8155PA口作为输出口,PB作为输入口,PC作为输入口完成8155的输入、输出实验(其中PA口LED数码显示,PB接拨断开关,PC接查询式键盘实验模块)。
关键字:EEPRO  程序存储器  89C51 引用地址:EEPROM外部程序存储器实验

上一篇:单片机之秒表汇编程序
下一篇:ADC0809模数转换器的使用详解与程序

推荐阅读最新更新时间:2024-03-16 13:10

stm32系统存储器中自举程序和flash中bootloader的区别
stm32的系统存储器中烧写了ST的自举程序并被锁死,防止用户擦写。此自举程序用于在应用编程,例如正点原子的usb转串口硬件和flymcu软件,通过它们就可以将程序烧写至flash。 而大多数人说的bootloader是指自己编写的bootloader程序并被烧写至flash的起始位置(stm32为0x8000000),通过此程序更新app程序。
[单片机]
使用89C51芯片外扩一片E2PROM2864电路图设计
使用89C51芯片外扩一片E2PROM2864,要求2864兼作程序存储器和数据存储器,且首地址为8000H。要求: (1)确定2864芯片的末地址; (2)画出2864片选端的地址译码电路; (3)画出该应用系统的硬件连接电路。 内容来自单片机之家www.dpj100.com 图片1
[单片机]
使用<font color='red'>89C51</font>芯片外扩一片E2PROM2864电路图设计
利用单片机实现远程数据传送
  1 引言   我国中大型石油化工企业大都采用小电流接地系统来供电,电力系统较为庞大。这类系统一般拥有几座乃至十几座35kV级的总降压站,几十座6~10kV级的高压配电室,分布范围较广,有的变电站离开总调有十几km之远。因此,各变电站的电量参数(电压、电流、相位、功率因数等)的准确、可靠传送,对总调及时决策、对提高供电质量和确保电力运行安全尤为重要。这里,我们采用单片微型计算机控制调制解调器进行远程实时数据传送,获得了满意的效果。   2 硬件系统设计   系统网络图如图1所示。本系统的上位机采用PII微机,通过MODEM←→交换网←→MODEM与作为下位机的单片机系统相连接。电力传感器采集的数据信号输入单片机系统,经软件
[单片机]
利用单片机实现远程数据传送
89c51引脚图管脚图 引脚功能说明
89c51引脚图管脚图 引脚功能说明 89C51外部引脚图:(可以直接拷入ASM程序文件中,作注释使用,十分方便) ; ┏━┓┏━┓ ; P1.0 ┫1 ┗┛40┣ Vcc ; P1.1 ┫2 39┣ P0.0 ; P1.2 ┫3 38┣ P0.1 ; P1.3 ┫4 37┣ P0.2 ; P1.4 ┫5 36┣ P0.3 ; P1.5 ┫6 35┣ P0.4 ; P1.6 ┫7 34┣
[单片机]
在8031单片机上扩展4KB EPROM程序存储器
扩展程序 存储器 常用的芯片是EPROM(Erasable Programmable Read Only Memory)型(紫外线可擦除型), 如2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。另外,还有+5 V电可擦除EEPROM,如2816(2K×8)、2864(8K×8)等等。 紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。 如果程序总量不超过4
[单片机]
在8031单片机上扩展4KB EPROM<font color='red'>程序</font><font color='red'>存储器</font>
89C51单片机做示波器,读取波形代码
上两周主要在探索单片机实时采集AD值并用串口发送到电脑端处理。虽然原理比简单,但由于个人理论功底还有所欠缺,再加上前期目标还不清晰,所以花的时间还是有点多。 刚开始在很长一段时间内串口读不到AD采集的电压值,但在单独调试串口时却是好的。经过很长时间的测试才发现串口中断也定时中断同时打开,导致程序跑飞。后来改中断方式为查询方式,避免了这个问题。后来又遇到了串口波特率一致问题。软件问题都一一解决后,终于能读到数据。画出波形: 正弦信号:幅值2V,偏执1V 无论怎么改变采集信号的频率,发现波形还是这样。再三检查程序确认没有问题时仔细阅读AD的芯片资料后,发现手上这款PCF8591芯片内部自带了峰值保持电路,也就是正弦信号理
[单片机]
<font color='red'>89C51</font>单片机做示波器,读取波形代码
89C51单片机的P0~P3端口进行输入时为什么要设置为1?
89C51 单片机 的P0~P3口不是标准意义的双向口 ,他只是准双向口, 你可以对照着P0口的 结构图 看这段话,向端口写1,就是向锁存器写1, 也就是让其口输出FF,为什么,是这样的,给锁存器写1,那么锁存器 的反向端就输出0,那么和它相接的MOS管也就在截止状态,也就是呈高 阻态,这样P0口上数据就会从读引脚的三态 缓冲器 上正确的输入,如果 不写1,那么锁存器上次锁存的可能为0,那么反向端有可能出现1,这样 和反向端相接的MOS管就倒通,也就是直接拉到地,那么不管你P0口上输 入什么信号都会拉成低 电平 ,输入就错了 双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需 要对其置1,否则若前一位为低电平,后
[单片机]
<font color='red'>89C51</font>单片机的P0~P3端口进行输入时为什么要设置为1?
89C51单片机的I/O 口模拟串行通信实现
目前普遍采用的MCS51 和PIC 系列单片机通常只有一个(或没有)UART异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通信系统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩展一片8251 或 8250 通用同步/异步接收发送芯片(USART),需额外占用单片机I/O 资源。 MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS5
[单片机]
<font color='red'>89C51</font>单片机的I/O 口模拟串行通信实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved