当前位置:首页 > 单片机 > 单片机
[导读]单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的过程实际就是将这个寄存器在内存中的地址编号赋给这个名称,这样编译器在以后的程序中才可认知这些名称所对应的寄存器。对于大多数初学者来讲,这些寄存器的声明已经完全被包含在51单片机的特殊功能寄存器声明头文件“reg51.h”中了,初学者若不想深入了解,完全可以暂不操作它。

数据元(Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若干具有相关性的数据元按一定的次序组成一个整体结构即为数据模型。

数据元一般由对象类、特性和表示3部分组成:

(1)对象类(Object Class)。是现实世界或抽象概念中事物的集合,有清楚的边界和含义,并且特性和其行为遵循同样的规则而能够加以标识。

(2)特性(Property)。是对象类的所有个体所共有的某种性质,是对象有别于其他成员的依据。

(3)表示(Representation)。是值域、数据类型、表示方式的组合,必要时也包括计量单位、字符集等信息。对象类是我们所要研究、收集和存储相关数据的实体,例如人员、设施、装备、组织、环境、物资等。特性是人们用来区分、识别事物的一种手段,例如人员的姓名、性别、身高、体重、职务,坦克的型号、口径、高度、长度、有效射程等。表示是数据元被表达的方式的一种描述。表示的各种组成成分中,任何一个部分发生变化都将产生不同的表示,例如人员的身高用“厘米”或用“米”作为计量单位,就是人员身高特性的两种不同的表示。数据元的表示可以用一些具有表示含义的术语作标记,例如名称、代码、金额、数量、日期、百分比等。

数据元基本模型中,对象类对应于数据模型中的实体、特性和表示对应于数据模型中的属性。

单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的过程实际就是将这个寄存器在内存中的地址编号赋给这个名称,这样编译器在以后的程序中才可认知这些名称所对应的寄存器。对于大多数初学者来讲,这些寄存器的声明已经完全被包含在51单片机的特殊功能寄存器声明头文件“reg51.h”中了,初学者若不想深入了解,完全可以暂不操作它。

sfr—特殊功能寄存器的数据声明,声明一个8位的寄存器。

sfrl6—16位特殊功能寄存器的数据声明。

sbit—特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位。

bit一位变量声明,当定义一个位变量时可使用此符号。

例如:sfr SCON=0x98;

SCON是单片机的串行口控制寄存器,这个寄存器在单片机内存中的地址为0x980这样声明后,我们在以后要操作这个控制寄存器时,就可以直接对SCON进行操作,这时编译器也会明白,我们实际要操作的是单片机内部0x98地址处的这个寄存器,而SCON仅仅是这个地址的一个代号或是名称而已,当然,我们也可以定义成其他的名称。

例如:sfr16T2=0xCC;

声明一个16位的特殊功能寄存器,它的起始地址为OxCC。

例如:sbit TI=SCON^1;

SCON是一个8位寄存器,SCON^1表示这个8位寄存器的次低位,最低位是SCON^0;SCON^7表示这个寄存器的最高位。该语句的功能就是将SCON寄存器的次低位声明为TI,以后若要对SCON寄存器的次低位操作,则可直接操作TI。

C51中常用的头文件

通常有reg51.h,reg52.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h,intrins.h。

但常用的却只有reg51.h或reg52.h,math.h。

reg51.h和reg52.h是定义51单片机或52单片机特殊功能寄存器和位寄存器的,这两个头文件中大部分内容是一样的,52单片机比51单片机多一个定时器T2,因此,reg52.h中也就比reg51.h中多几行定义T2寄存器的内容。

math.h是定义常用数学运算的,比如求绝对值、求方根、求正弦和余弦等,该头文件中包含有各种数学运算函数,当我们需要使用时可以直接调用它的内部函数。

当我们对特殊功能寄存器有了基本的了解后,大家就可以自己动手来写具有自己风格的头文件了。例如,在TX-1C单片机学习板上,我们用的是STC公司的51内核单片机,该单片机内部除了一般51单片机所具有的功能外,还有一些特殊功能,当我们要使用这些特殊功能时,就要对它进行另外的操作,此时就需要我们自己定义这些特殊功能寄存器的名称,我们可以根据芯片说明文档上所注明的各个寄存器地址来定义它们,关于这方面的扩展,我们会在以后的实际应用中再次提到。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

数据元(Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若...

关键字: C51 数据类型

▼点击下方名片,关注公众号▼欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复【加群】,限时免费进入知识共享群;回复【3D封装库】,常用元器件的3D封装库;回复【电容】,获取电容、元器件选型相关的内容...

关键字: C51 MDK RealView

Perl是一种弱类型语言,所以变量不需要指定类型,Perl解释器会根据上下文自动选择匹配类型。Perl有三个基本的数据类型:标量、数组、哈希。以下是这三种数据类型的说明:序号类型和描述1标量标量是Perl语言中最简单的一...

关键字: 数据类型

在Keil C51软件中51单片机的中断服务和外设驱动程序的开发

关键字: keil5 编译 C51

Intel公司1980年推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。 80C5...

关键字: C51 KEIL 编程

c上标3下标5怎么算用计算机,c上标3下标5怎么算

关键字: C51 KEIL

▼点击下方名片,关注公众号▼大家好,很高兴和各位一起分享我的第16篇原创文章,喜欢和支持我的工程师,一定记得给我点赞、收藏、分享。加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。很多初...

关键字: 51单片机 C51

常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。

关键字: C51 单片机 误区 注意事项

简介:编程首要是要考虑程序的可行性,然后是可读性、可移植性、健壮性以及可测试性。这是总则。但是很多人忽略了可读性、可移植性和健壮性(可调试的方法可能歌不相同),这是不对的。

关键字: C51 编程规范 文件配置

如果你用 Keil C51 进行编译,记住一点:它不区分大小写!!!卧槽,今天编程序那个调错啊,就因为一个数组名和一个变量名完全一样,只是大小写不一样罢了,标准 C 我怎么记得这样可以啊……上网一查,卧槽,Keil C5...

关键字: C51 单片机 编程要点
关闭