c51架构 c51架构与c251架构的区别

您所在的位置:网站首页 三菱C251和C252有什么区别 c51架构 c51架构与c251架构的区别

c51架构 c51架构与c251架构的区别

2023-12-15 02:03| 来源: 网络整理| 查看: 265

C51基础1.C51程序组成和数据结构

采用C语言编写的51系列单片机应用程序简称C51程序。C51程序对标准C程序的扩展主要是通过51系列单片机的硬件功能来实现的,其硬件功能有存储模式、存储器类型声明、变量类型声明、位变量和位寻址、特殊功能寄存器、C51指针、函数属性等。

C51程序与标准C程序的区别库函数不同。C51程序是按照51系列单片机的结构来定义的,标准C程序是按计算机来定义的。数据类型不同。C51程序中增加了单片机特有的数据类型。变量的存储模式。C51程序的存储模式与MCS-51单片机的存储器的结构相关。输入输出方式不同。C51程序的输入输出是通过单片机的串行口完成的,其指令执行前必须对串行口进行初始化。C51程序的组成预处理命令

1行,用于编译预处理。

语句

以分号结束作为标志。

函数定义语句变量定义语句函数调用语句控制语句赋值和运算语句空语句函数体函数

主函数、子函数、函数体

C51的数据结构C51的标识符和关键字

标识符:用户给源程序中的对象的命名。必须以字母或者下划线开头,区分大小写。

关键字是特殊的标识符,具有固定的名称和含义。

关键字和标识符不能相同。

标准关键字:

c51架构 c51架构与c251架构的区别_寄存器

c51架构 c51架构与c251架构的区别_整型_02

扩展关键字:

c51架构 c51架构与c251架构的区别_单片机_03

C51数据类型char(字符类型) 一个字节,用于定义处理字符数据的变量或常量;分为无符号字符类型和有符号字符类型。int(整型) 两个字节,用于存放一个双字节数据;分为有符号整型和无符号整型。long(长整型) 四个字节,用于存放一个四字节数据;分为有符号长整型和无符号长整型。float(浮点型) 占四个字节,7位有效小数。bit(位标量) 一个二进制位,可用来定义一个位标量,但不能定义位指针,也不能定义位数组。sbit(可寻址位) 可以访问芯片内部的RAM中的可寻址位。sfr(特殊功能寄存器) 占用一个内存单元(8位),可以访问单片机内所有的特殊功能寄存器。sfr16(16位特殊功能寄存器) 占用两个内存单元(16位),可以访问单片机内占两个字节的寄存器。*(指针) 存放指向另一个数据的地址。占用1~3个字节,有整型、实型、字符型之分。C51中的常量整型常量浮点型常量字符型常量字符串型常量位标量 一个二进制位,不是0就是1。C51中的变量

格式:【存储类型】数据类型【存储器类型】变量名表

存储类型

存储类型指的是变量的作用域,单片机程序中变量的存储类型可分为自动变量、全局变量、静态变量和寄存器变量。

自动变量 用关键字auto定义,可省略。在程序执行过程中,自动变量是动态分配空间的。当函数或复合语句执行完毕后,该变量的存储空间立刻自动消失,此时自动变量失效。全局变量 用关键字extern定义,一般定义在所有函数外部,也称外部变量。在编译时,全局变量将被静态地分配适当的存储空间。该变量一旦分配空间,再在整个程序运行过程中便不会消失,即全局变量对整个程序文件都有效。静态变量 用关键字static定义。从变量的作用域来看,该变量定义在函数内部就是内部静态变量;若定义在函数外部就是外部静态变量,静态变量始终占用内存空间。寄存器变量 存放在单片机内部寄存器中,处理速度快,无须声明,编译器自动识别。存储器类型

c51架构 c51架构与c251架构的区别_单片机_04

若省略存储器类型,则由存储模式决定存储类型。存储模式有Small模式、Compact模式和Large模式三种。

Small模式 所有缺省变量参数都装入内部RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。Compact模式 所有缺省变量参数都装入外部RAM的一页,哪一页由P2口指定。优点是空间比Small大,缺点是比Small慢,但比Large快,是一种中间状态。Large模式 所有缺省变量参数都装入外部RAM,优点是空间大,可存变量多;缺点是速度慢。2.C51函数C51源程序的函数数目是不限的。在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。函数之间允许相互调用,也允许嵌套调用。函数可以自己调用自己,称为递归调用。函数的分类

c51架构 c51架构与c251架构的区别_寄存器_05

函数的定义

格式: 函数类型 函数名(形式参数表列)[reentrant][interrupt m][using n] { 声明部分;   执行部分; }

函数部首

函数类型 + 函数名 = 函数部首。

函数体

声明部分 + 执行部分 = 函数体。

reentrant修饰符

用于把函数定义为可重入函数,即允许被递归调用。

interrupt m修饰符

实现中断修饰。通过interrupt关键字和m(0~31)来实现。

c51架构 c51架构与c251架构的区别_c51架构_06

using n修饰符

指定中断服务程序使用的工作寄存器组,n为1~3,表示寄存器号。对于using n的使用需注意:

加入using n后,所有中断调用的过程必须使用同一个寄存器组; using n修饰符不能用于有返回值的函数,原因是C51函数的返回值是放在寄存器中的。函数调用

函数的调用是指函数在主调函数中的调用形式。

参数传递方式(必会)赋值调用

形参为数值变量,函数调用时把参数的值复制到函数的形式参数中,赋值调用不会影响主调函数中变量的值。

引用变量

形参为指针,函数调用时把参数的地址复制到形式参数中。在函数中,这个地址用来访问调用中所使用的实际参数,引用调用会影响主调函数中变量的值。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3