本课程主要讲解如下内容:Oracle体系結构、Oracle 基础管理、SQL 语言、Sequence和同义词、数据字典及用户管理、E-R模型、Power Designer设计工具在本
又称为标量在程序执行过程中鈈能改变,常量数据类型有整形(int)、浮点型(float)、字符型和字符串型应用中一般使用“#define”定义在程序中经常用到的常量。
是一种在程序执行过程中数值不断变化的量。C51对变量的定义格式:【存储种类】数据类型【存储器类型】变量名
C51中的四中存储种类:auto(自动)、extern(外部)、static(静态)、register(寄存器)默认为:auto。
根据变量的作用域的不同变量还可以分为局部变量和全局变量两种。
局部变量内部变量,只在定义它的函数模块内有效必须定义在该函数模块的开头。
全局变量外部变量,程序开始处或各个功能函数外面定义的变量对於整个程序都有效。一般定义在程序的开始
【存储种类】数据类型【存储器类型】变量名
长度为16位,双字节(2B)用于存放一个双字节數据。分有符号int整型数signed int和无符号int整型数unsigned int
长度为32位,4字节(4B)
十进制数中具有7位有效数据,符合IEEE754标准的单精度浮点型数据占4B,24位精度
本身就是一个变量,这个变量中存放指向另一个数据的地址 指针变量要占据一定的内存单元,不同处理器长度不尽相同C51 中长度一般為1~3个字节。
存放逻辑变量占用一个位地址,C51编译器把bit类型的变 量安排在单片机内RAM的位寻址区
存储器类型与存储空间的对应关系
直接寻址片内数据存储区,访问速度快(128B) |
可位寻址片内数据存储区允许位与字节混合访问(16B) |
间接寻址片内数据存储区,可访问片内全部RAM地址空间(256B) |
分页寻址片外数据存储区(256B) |
片外数据存储区(64KB) |
代码存储区(64KB) |
用频率较高的变量的理想存储场所Data区除了包含程序变量外, 还保护了堆栈和数据寄存器组在SMALL存储模式下,未说明存 储器类型时变量默认被定义在DATA区。
也可以存放使用频繁的变量使用寄存器莋为指针进行位寻址。 在寄存器中设置8位地址间寻址与外部存储器相比,指令执行 周期和代码行长度都比较短
单片机的程序代码区,玳码区的数据是不可以改变的可存放 数据表,跳转向量和状态表
在变量定义时省略了存储器类型标识符,C51编译器会选择默认的存储器類型默认的存储器类型由SMALL、COMPACL、和LARGE存储模式(Memory Models)指令决定。存储模式是编译器的编译选项用于决定变量的默认存储类型、参数传递区和無声明存储类型说明变量的存储类型。各种不同模式对于哦哦哦那个不同的实际硬件系统也将有不同的编译结果。
所有未声明存储器类型变量都默认驻留在内部数据区,即这 种方式和用DATA进行显示说明一样变量访问速度快,当所有数 据对象(包括堆栈)都必须放在内部數据存储区中空间有限。
所有未声明存储器的变量类型默认驻留在外部数据存储区的 一个页上。即PDATA进行存储器类型的说明一样的该模式利用 R0和R1寄存器进行间接寻址(@R0和@R1)。该模式存取速度笔小 模式慢但比大模式快
在不同存储器类型下等价下面的变量说明:
为了提高運行速度,建议在编写源程序时把存储模式设定为Small,必要时在程序中XDATA、PDATA和IDATA等类型变量进行专门声明
sbit和bit的区别:sbit定义特殊功能寄存器中嘚可寻址位;而bit则定义了一个普通的位变量,一个函数可包括bit类型的参数也可作为返回值sbit可以访问MCS-51单片机编程语言内20H~2FH范围内的位对象。
伍.C51语言的数组、指针与结构
1.数组 是一个由同类型的变量组成的集合它保存在连续的存储区域中,第一个元素保存在最低地址中最末一個保存在最高地址中。
定义方式:数据类型【存储器类型】数组名【常量1】···【常量n】
2.指针 指针是指某个变量所占用存储空间的首地址用来存放指针变量的类型。
这样声明的指针要占用3B对于MCS-C51存储结构的特殊性,也可以指定存储器类型的指针声明时定义指针指向的存儲器类型,也称为给予存储器类型的指针
六.对绝对地址进行访问
取内容运算时将指针变量所指向的目标地址的值赋给左边的变量,取地址运算是将目标变量的地址赋给左边的变量变量中只能存放地址(也就是指针型数据),一般情况下不要将非指针类型数据赋给一个指針变量
MCS-51单片机编程语言工作在总线方式下,P0/P2口作为地址/数据总线使用对外部扩展的数据存储器RAM的读写,可采用指针的方法实现在C51程序中对任意指定的存储器地址进行操作。
使用_at_对指定的存储器空间的地址进行定位例如对外部接口的地址进行读写。
数据类型通常为uchar的1芓节类型;常数规定变量的绝对地址由译码电路产生;使用_at_定义的变量必须为全局变量。
中断函数运行过程中完成的任务:
(1)中断产生時中断函数被系统所使用。
(2)中断函数运行完成退出时堆栈保存的数据将被恢复。
(3)中断函数退出时其对应的汇编代码使用RETI指囹退出。
(3)不能再子函数中直接调用
(4)如中断调用了其他函数必须保证函数和中断函数使用了相同的寄存器。
(5)对中断函数不需偠声明