单片机|单片机中的C规则


文章目录

  • 单片机中C语言的规则
      • 基本标点符号
      • C语言关键字与五大语句
        • 32个关键字
        • 特殊关键字
        • C51单片机预处理关键字
      • 单片机的常量(不可以被修改)
      • 单片机的变量
      • 构造类型:数组
      • ==**特别注意RAM和ROM区别**==
        • RAM随机存储器
        • ROM只4读存储器
      • 构造类型:结构体
      • 构造类型:指针
      • 指针数组
      • 数组指针
      • 多维数组指针

单片机中C语言的规则 基本标点符号
C51的标点符号有很多,编写程序的时候,特别注意两点
  1. 不能使用中文输入法或者其他国家的非美标英文输入法
  2. 两个符号组合出来的标点符号,中间不能有空格的
单片机|单片机中的C规则
文章图片

单片机|单片机中的C规则
文章图片

单片机|单片机中的C规则
文章图片

C语言关键字与五大语句
C语言主要是由判断,循环,条件循环,选择,跳转五大语句构成
C51总共32个关键字,以及十多个C51特殊关键字
32个关键字
32关键字 关键字的作用
关键字1:if 条件语句
关键字2:else 条件语句否定分支(与if连用)
关键字3:do 循环语句的循环体
关键字4:while 循环语句的循环判断
关键字5:for 次数有限循环语句
关键字6:switch 用于开关语句
关键字7:case 开关语句分支
关键字8:default 开关语句中的其他分支
关键字9:break 跳出当前循环
关键字10:goto 无条件跳转
关键字11:static 声明静态变量
关键字12:auto 声明自动变量,默认不写
关键字13:const 声明只读变量,常量保存到内存区
关键字14:extern 声明变量或函数在其他文件中
关键字15:char 声明(8位)字符型变量或函数返回值类型
关键字16:short 声明(16位)短整型变量或函数返回值类型
关键字17:long 声明(32位)长整型变量或函数返回值类型
关键字18:float 声明(小数)浮点型变量或函数返回值类型
关键字19:double 声明双精度浮点型变量或函数返回值类型
关键字20:int 声明整型变量或函数
关键字21:signed 声明有符号类型变量或函数
关键字22:unsigned 声明无符号类型变量或函数
关键字23:typedef 用以给数据类型取别名
关键字24:void 声明函数无返回值或无参数,无类型指针
关键字25:return 子程序返回语句
关键字26:struct 声明结构体类型
关键字27:union 声明共用体类型
关键字28:enum 声明枚举类型
关键字29:volatile 用它修饰的变量可以防止被编译器优化
关键字30:register 声明寄存器变量
关键字31:continue 结束当前循环
关键字32:sizeof 计算数据类型或变量长度(即所占字节数)
特殊关键字
特殊关键字 特殊关键字的作用
关键字1:bit 声明一个位变量或者位类型函数
关键字2:sbit 声明一个可以位寻址的变量
关键字3:sfr 声明一个特殊功能寄存器(8位)
关键字4:sfr16 声明一个特殊功能寄存器(16位)
关键字5:data 直接寻址的8051内部数据存储器
关键字6:bdata 可以按位寻址的8051内部数据存储器
关键字7:idata 间接寻址的8051内部数据寄存器
关键字8:pdata “分页”寻址的8051内部数据存储器
关键字9:xdata 8051外部数据存储器,STC增强型硬件内部,xdata如果没有赋值,可能会随机分配值
关键字10:code 8051程序存储器
关键字11:interrupt 定义一个中断入口函数
关键字12:reentrant 定义一个再入函数
关键字12:using 定义一个8051的工作寄存器组
C51单片机预处理关键字
C51单片机预处理关键字 C51单片机预处理关键字的作用
关键字1:# 空指令,无任何效果
关键字2:#include 包含一个源代码文件
关键字3:#define 定义宏
关键字4:#undef 取消已定义的宏
关键字5:#if 如果给定条件为真,则编译下面代码
关键字6:#ifdef 如果宏已经定义,则编译下面代码
关键字7:#ifndef 如果宏没有定义,则编译下面代码
关键字8:#elif 如果#if给定条件为假,当前条件为真编译代码
关键字9:#endif 结束一个#if…#else条件编译块
关键字9:#error 停止编译并显示错误信息
单片机的常量(不可以被修改)
下载之后,单片机在正常运行的时候,只读的数据,下载后保存于16KB的flash(ROM)里面。在C51里面用关键字code来标记,比如点阵的子模,数码管字模,符号代表的重要参数
比如:code a = 5;//定义常量a,固定值5 flash ROM 里面的code相当于电脑的硬盘
单片机的变量
单片机在正常运行的时候,可以随时擦写的数据,临时保存于4096字节的通用RAM寄存器里面。
数据类型有: bit(1位) char(8位) short(16位) long(32位) float(小数) int(16位或32位)
存储空间有: bdata(保存8个字节,是bit类型的变量) data(一级缓存,128个字节包括了bdata的8个字节) idata(二级缓存) pdata xdata(内存条)
生命周期:动态(auto) 静态(static) 外部(extern)
变量作用域: 函数内部使用局部变量 函数之间的全局变量
单片机|单片机中的C规则
文章图片

单片机|单片机中的C规则
文章图片

构造类型:数组
把相同类型的常量或者变量,多个进行排队放好,连续存储的集体,就是一堆一维数组
数组同单个变量或者常量一样使用,比如
数据类型————位置——数组名[数组长度]
unsigned char xdata a[3] = { 255,100,8}; a[2]=0x55; //赋值给数组第三个数(编号2) P3 = a[1]; //取数组的第二个数(编号1)

二维数组:把相同类型的多个一维数组按照一定顺序排列,再构造高层集体,地址是连续的
数据类型–位置–数组名[二维] [一维]
char xdata Buffer[3][2]={ { a,b},{ c,d},{ e,f}}; char a[] = "hello bit"; //一维字符串

字符串要加双引号,代表的是ASCII值,例如上面P3 = a[0]; 查询ASCII码,h的码是0x68,P3口就等于0x68;
特别注意RAM和ROM区别
RAM随机存储器 RAM --random access memory 随机存储器 易挥发性 掉电失忆
人话解释: ram是运存容量 相当于内存条 ram 越大 手机能执行的程序越多 打开和切换程序的越快,运行游戏和程序就越不卡。
ROM只4读存储器 ROM --read only memory只读存储器 一次写入 反复读取
**人话解释:**rom是机子储存空间 相当于电脑内存 相对来说 存储空间越大 能装下的程序就越多 说白了功能相当于sd卡。
构造类型:结构体
把不同的数据类型,按数组的方式做成一个集合体,形成一个新的数据类型
构造类型:指针
指针:用于直接读取或者修改内存值
指针变量的定义和赋值
==变量指针:==变量在内存中的起始地址
==指针变量:==用新的变量来保存其他变量的内存地址
单片机|单片机中的C规则
文章图片

注意
指针变量是保存某个数据的地址,那么,指针的数据类型要和变量的数据类型一致
指针数组
指针数组:存放多个指针变量的集合体
数组指针
数组指针:不同数组在内存中的首地址
多维数组指针
【单片机|单片机中的C规则】多维数组指针:要明确 多维 下标

    推荐阅读