找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于89c52单片机地址以及存储器的问题

查看数: 4033 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-11-2 22:31

正文摘要:

如下图 HURBUF,MINBUF....DISBUF为啥要这样定义啊直接定义一个变量不就行了么还有这个用的是指针,意思就是指向下面图三中的 可位选址寄存器喽(只要是这个 范围都可以随意定义吧?)?如果是这样的话 DISBUF这个 ...

回复

ID:111634 发表于 2017-11-20 22:22

80C51特殊功能寄存器定义方式
4.2.2 变量及其定义方法
    ……
⒌ 80C51特殊功能寄存器定义方式
80C51片内有21特殊功能寄存器,在C51的文件夹里,有一个取名reg51.h库函数文件,对80C51片内21特殊功能寄存器按MCS-51中取的名字(必须大写)全部作了定义,并赋予了既定的字节地址。因此,该21特殊功能寄存器已不需重复定义,只需在程序开头的头文件部分写一条预处理命令:#include <reg51.h>,表示程序可以调用该库函数reg51.h(52系列单片机应用#include <reg52.h>)。但对于不符合MCS-51中特殊功能寄存器名的标识符,或未在头文件中写入上述预处理命令的,则应重新定义,否则出错。
……
需要注意的是,特殊功能寄存器定义应放在函数外(即作为全局变量)。
需要说明的是,虽然C51允许用关键词sfrsfr16定义80C51特殊功能寄存器,体现了C51编译功能的多样性和完整性,但编者还是建议读者不要去重新定义,而直接使用预处理命令,既省事又不易出错。
    ……
⒍ 位变量定义方式
80C51片内RAM16字节128位的可寻址位(字节地址20H2FH,位地址00H7FH),还有11个特殊功能寄存器是可位寻址的,C51编译器扩充了关键词bitsbit,用于定义这些可寻址位。位变量也需先定义,后使用。
……
⑵ 定义11个特殊功能寄存器可寻址位的位变量
80C51单片机11个可寻址位的特殊功能寄存器中,有6SFRPSWTCONSCONIEIPP3),它们每一可寻址位有位定义名称,C51库函数reg51.h也已对其按MCS-51中取的位定义名称(必须大写)全部作了定义,并赋予了既定的位地址。只要在头文件中声明包含库函数reg51.h,就可按位定义名称直接引用。
但是,还有5个SFRACCBP0P1P2),可寻址位没有专用的位定义名称,只有位编号,但这些位编号不符合ANSI C标识符要求,例如,ACC.0、P1.0等(C51标识符规定不可用小数点),应重新定义。其格式如下:
……

以上摘自张志良编著
80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9


ID:251155 发表于 2017-11-19 19:13
同求大神指点
ID:111634 发表于 2017-11-19 19:06
本帖最后由 zl2168 于 2017-11-19 19:14 编辑

哼!你看这些书,当然看不懂!!!
介绍你一本书,张志良编著的:《80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学,最主要是能解答你的疑问。
ID:223164 发表于 2017-11-19 16:25
!在线等
ID:223164 发表于 2017-11-18 20:41
没有人知道么
ID:223164 发表于 2017-11-14 19:35
yzwzfyz 发表于 2017-11-3 10:12
看看与这个章节的目的就明白了。

很仔细的看了 不然也不会来这里问了
ID:123289 发表于 2017-11-3 10:12
本帖最后由 yzwzfyz 于 2017-11-3 17:04 编辑

看看与这个章节的目的就明白了。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表