c51架构 c51架构与c251架构的区别 |
您所在的位置:网站首页 › 三菱C251和C252有什么区别 › c51架构 c51架构与c251架构的区别 |
C51基础1.C51程序组成和数据结构 采用C语言编写的51系列单片机应用程序简称C51程序。C51程序对标准C程序的扩展主要是通过51系列单片机的硬件功能来实现的,其硬件功能有存储模式、存储器类型声明、变量类型声明、位变量和位寻址、特殊功能寄存器、C51指针、函数属性等。 C51程序与标准C程序的区别库函数不同。C51程序是按照51系列单片机的结构来定义的,标准C程序是按计算机来定义的。数据类型不同。C51程序中增加了单片机特有的数据类型。变量的存储模式。C51程序的存储模式与MCS-51单片机的存储器的结构相关。输入输出方式不同。C51程序的输入输出是通过单片机的串行口完成的,其指令执行前必须对串行口进行初始化。C51程序的组成预处理命令1行,用于编译预处理。 语句以分号结束作为标志。 函数定义语句变量定义语句函数调用语句控制语句赋值和运算语句空语句函数体函数主函数、子函数、函数体 C51的数据结构C51的标识符和关键字标识符:用户给源程序中的对象的命名。必须以字母或者下划线开头,区分大小写。 关键字是特殊的标识符,具有固定的名称和含义。 关键字和标识符不能相同。 标准关键字: 扩展关键字: 格式:【存储类型】数据类型【存储器类型】变量名表 存储类型存储类型指的是变量的作用域,单片机程序中变量的存储类型可分为自动变量、全局变量、静态变量和寄存器变量。 自动变量 用关键字auto定义,可省略。在程序执行过程中,自动变量是动态分配空间的。当函数或复合语句执行完毕后,该变量的存储空间立刻自动消失,此时自动变量失效。全局变量 用关键字extern定义,一般定义在所有函数外部,也称外部变量。在编译时,全局变量将被静态地分配适当的存储空间。该变量一旦分配空间,再在整个程序运行过程中便不会消失,即全局变量对整个程序文件都有效。静态变量 用关键字static定义。从变量的作用域来看,该变量定义在函数内部就是内部静态变量;若定义在函数外部就是外部静态变量,静态变量始终占用内存空间。寄存器变量 存放在单片机内部寄存器中,处理速度快,无须声明,编译器自动识别。存储器类型若省略存储器类型,则由存储模式决定存储类型。存储模式有Small模式、Compact模式和Large模式三种。 Small模式 所有缺省变量参数都装入内部RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。Compact模式 所有缺省变量参数都装入外部RAM的一页,哪一页由P2口指定。优点是空间比Small大,缺点是比Small慢,但比Large快,是一种中间状态。Large模式 所有缺省变量参数都装入外部RAM,优点是空间大,可存变量多;缺点是速度慢。2.C51函数C51源程序的函数数目是不限的。在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。函数之间允许相互调用,也允许嵌套调用。函数可以自己调用自己,称为递归调用。函数的分类格式: 函数类型 函数名(形式参数表列)[reentrant][interrupt m][using n] { 声明部分; 执行部分; } 函数部首函数类型 + 函数名 = 函数部首。 函数体声明部分 + 执行部分 = 函数体。 reentrant修饰符用于把函数定义为可重入函数,即允许被递归调用。 interrupt m修饰符实现中断修饰。通过interrupt关键字和m(0~31)来实现。 指定中断服务程序使用的工作寄存器组,n为1~3,表示寄存器号。对于using n的使用需注意: 加入using n后,所有中断调用的过程必须使用同一个寄存器组; using n修饰符不能用于有返回值的函数,原因是C51函数的返回值是放在寄存器中的。函数调用函数的调用是指函数在主调函数中的调用形式。 参数传递方式(必会)赋值调用形参为数值变量,函数调用时把参数的值复制到函数的形式参数中,赋值调用不会影响主调函数中变量的值。 引用变量形参为指针,函数调用时把参数的地址复制到形式参数中。在函数中,这个地址用来访问调用中所使用的实际参数,引用调用会影响主调函数中变量的值。
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |