程序描述:利用6264,扩展STC89C52的存储空间,使接在P1口的数码管从0到F循环显示。

部分接线图:

额外说明:

1、   由上图的接法可知6264存储空间为0x2000-0x3FFF。

2、   由于P0与P2口已被用作第二功能,所以切记不可以再当普通的I/O使用。

3、   程序中用到了关于‘AUXR’特殊功能寄存器的使用,不熟悉它的读者请自行参考STC89C52单片机手册。简言之,当AUXR=0x02时,可禁止物理上位于内部、逻辑上位于外部的EXTRAM的使用。当AUXR=0x00时,允许使用且上电时为允许。

4、   当然,高三位地址P2^7、P2^6、P2^5也可以不接138,直接悬空,此时直接把’CE1非’接地。由于6264总共有8KB的空间,所以地址可以从0x0000到0x1fff,只不过选取的各个地址间可能有重叠,这没多大关系。不过,建议最好把最低起始地址设为0x0100,这样可避免与EXTRAM地址00H-FFH重叠。

5、   下图是可以修改存储模式和片外RAM地址的对话框:

程序代码:

主程序

#include <reg52.h>

#include <intrins.h>

#include "delay.h"

#define uchar unsigned char

#define uint unsigned int

uchar codedpy_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,

0x88,0x83,0xc6,0xa1,0x86,0x8e};

sfr AUXR=0x8e;    //定义特殊功能寄存器AUXR

uchar xdata i;         //之后读者会发现变量 i 的存储类型是什么会影响最后结果

void main()

{

AUXR=0x02;                //之后读者会发现,是否注释掉此句,对最后结果很有影响

while(1)

{

for(i=0;i<16;i++)

{

P1=dpy_duan[i];

delay(65535);

}

}

}

经验总结:

下表格是我调试时得出的一些结论,请读者仔细看,最好自己亲自验证一下

1、‘Y’表示有数码管反应正常或6264起了作用;‘N’表示数码管没反应或6264未起作用。如YY表示数码管反应正常且6264起了作用。注意:这里的6264未起作用是指在此程序中相当于没用到,但一旦把程序写复杂了,内部RAM不能满足数据处理要求,则6264还是会起作用的。

2、这个表格结论是基于上面原理图及6264地址的规定如上面的图片option框中所示。

3、还有一种存储模式pdata我没调试,读者有兴趣可一试。

4、可以发现‘是否注释掉AUXR’只影响i 为pdata时的情况。那是因为,pdata是指外部数据存储器的前256字节,请注意,这个外部不是片外,而是在逻辑上是外部但物理上是内部的空间,即EXTRAM。当AUXR=0x02时,EXTRAM已被禁止,i 为pdata本身就不合理,所以数码管没反应;但未注释掉AUXR时,i 就有了可以存储的空间,故数码管有反应。同时,不管存储模式是data还是xdata,此空间不属于片外空间,故6264未起作用,即接了相当于没接。

5、在编译时可知道所写程序需要多少data空间,利用这一点可验证之。比如我这程序需要约9个data空间,所以当我在‘option for target ‘target 1’’框中的‘off-chip Xdata memory ’第一行的两个框中分别输入0x1FF7和9时,最后发现数码管显示的出错率很大;但稍微把这size扩大点的话,就好多了。

51单片机与6264通信探讨相关推荐

  1. 51单片机stc15w204s串口通信发数据接收数据串口中断发中文字符串完美运行软件延时发送一字节函数全注释

    这里写自定义目录标题 KEIL自己先调试通了然后再说下面的事 51单片机stc15w204s串口通信直接上文件 KEIL自己先调试通了然后再说下面的自己看看就可 KEIL自己先调试通了然后再说下面的事 ...

  2. MATLAB与51单片机进行串口通信详解

    目录 一.51单片机与电脑进行串口通信 二.MATLAB串口通信函数 三.串口属性 四.示例Demo 4.1 MATLAB接收单片机发来的数据 4.2 MATLAB向单片机发送数据控制LED 五.总结 ...

  3. 简单双机通信java_完整版)51单片机实现双机通信(自己整理的

    <完整版)51单片机实现双机通信(自己整理的>由会员分享,可在线阅读,更多相关<完整版)51单片机实现双机通信(自己整理的(6页珍藏版)>请在人人文库网上搜索. 1.PjfAl ...

  4. 51单片机c语言485通讯案例,485通讯协议程序怎么写(51单片机的485通信程序案例)...

    RS-485总线接口是一种常用的串口,具有网络连接方便.抗干扰性能好.传输距离远等优点.RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检测到低达20 ...

  5. Proteus仿真stm32和51单片机,串口通信调试过程记录

    前言 本文所用Proteus版本为8.10,主要内容为在Proteus中仿真stm32和51单片机进行串口通信,记录了仿真过程中遇到的问题和解决办法.        这里要注意的是,在Proteus中 ...

  6. 51单片机与PC通信

    本博客以广西大学电气工程学院陈柏轩老师编写的单片机原理与应用实验指导书为基础,建立在读者对51单片机的基本编程软件与烧录软件较为熟悉的基础上撰写. 实现51单片机与PC通信: 1.基于查询法实现通信: ...

  7. 基于新塘51单片机的485通信

    基于新塘51单片机的485通信 序言 最近有一个项目用新塘的51FB9A单片机做时控开关(上位机控制)控制继电器,但是我原来也没整过485啊,本来以为这玩意很难.没想到才了一些坑之后还觉得挺简单的.这 ...

  8. 51单片机之串口通信

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.串口介绍 二.电路 三.寄存器 四.串口通信操作流程 前言 2022.9.14的学习记录.` 一.串口介绍 串口是 ...

  9. 【51单片机多机通信】主机控制从机1步进电机、从机2超声波测距(主机可集中显示步进电机的转速、转向、启停状态以及超声波测距结果)

    一.设计目标 使用三个51单片机,实现多机通信. 二.实现功能 1号单片机可遥控2.3号单片机.超声波测距等: 1号单片机可集中显示步进电机的转速.转向.启停状态以及超声波测距结果. 三.硬件原理 5 ...

最新文章

  1. 模型类序列化器ModelSerializer
  2. 怎么用python自动注册_python selenium自动化(二)自动化注册流程
  3. TCP传输的单个报文最大字节(MSS和MTU)
  4. 必填字段的自定义JSF验证器
  5. 《软件项目管理(第二版)》第 4 章——项目估算 重点部分总结
  6. 今日头条遭罚 94 万;快手、火山小视频整改「低俗」;Wi-Fi 万能钥匙被调查 | CSDN极客头条
  7. 前后端怎么连接_如何搭建前后端分离的测试平台
  8. 这也许是你不曾留意过的 Mybatis 细节 1
  9. 模糊综合评价指标如何计算?四种模糊算子如何计算?
  10. c语言编程 BMI判断健康,BMI指数真的可以反映人的健康状态吗?看完你就懂了
  11. 强化学习实践三 :编写通用的格子世界环境类
  12. KL-MPLC无人值守系统
  13. vue实现伸缩菜单功能
  14. 万豪国际集团全新人才品牌“Be”将于全球超8300家酒店上线 | 美通社头条
  15. 为什么算法岗薪酬普遍偏高,是真的缺人才吗?
  16. Android+Jquery Mobile学习系列(6)-个人信息设置
  17. 大连BI工具大连BI软件哪家好
  18. ant design的Switch组件的坑,怎么更改Switch的状态?
  19. 计算机主机税率,海关总署:计算机及外围设备税率降至10%
  20. net slim 分割_如何用TensorFlow和TF-Slim实现图像标注、分类与分割

热门文章

  1. 国庆 day 3 上午
  2. 迈德威视工业相机 Linux驱动详细步骤
  3. 百度云在线倍速观看(电脑版和手机(安卓版))
  4. 精简centos7.7内核版本升级
  5. 解决gedit打不开文件或者闪退问题
  6. 软件的组成和结构-20210506
  7. Matlab画出S曲线
  8. 仿微信列表显示时间(年月日、昨天、时间)
  9. 网页截图 API数据接口
  10. 南大通用数据库-Gbase-8a-学习-13-配置ODBC数据源(Linux、Win)