51单片机与6264通信探讨-阿里云开发者社区

开发者社区> baiwfg2> 正文

51单片机与6264通信探讨

简介: 程序描述:利用6264,扩展STC89C52的存储空间,使接在P1口的数码管从0到F循环显示。 部分接线图: 额外说明: 1、   由上图的接法可知6264存储空间为0x2000-0x3FFF。 2、   由于P0与P2口已被用作第二功能,所以切记不可以再当普通的I/O使用。 3、   程序中用到了关于‘AUXR’特殊功能寄存器的使
+关注继续查看

程序描述:利用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扩大点的话,就好多了。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4068 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6915 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7757 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
9425 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
5730 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
2141 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
1131 0
+关注
37
文章
8
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载