当前位置:首页 » 《随便一记》 » 正文

单片机中的C规则_小码农U的博客

7 人参与  2022年02月19日 09:44  分类 : 《随便一记》  评论

点击全文阅读


文章目录

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

单片机中C语言的规则

基本标点符号

C51的标点符号有很多,编写程序的时候,特别注意两点

  1. 不能使用中文输入法或者其他国家的非美标英文输入法
  2. 两个符号组合出来的标点符号,中间不能有空格的

image-20210926090128271

image-20210926090215521

image-20210926090239519

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:xdata8051外部数据存储器,STC增强型硬件内部,xdata如果没有赋值,可能会随机分配值
关键字10:code8051程序存储器
关键字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)

变量作用域: 函数内部使用局部变量 函数之间的全局变量

image-20210926063701472

image-20210926070037134

构造类型:数组

把相同类型的常量或者变量,多个进行排队放好,连续存储的集体,就是一堆一维数组

数组同单个变量或者常量一样使用,比如

数据类型————位置——数组名[数组长度]

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卡。

构造类型:结构体

把不同的数据类型,按数组的方式做成一个集合体,形成一个新的数据类型

构造类型:指针

指针:用于直接读取或者修改内存值

指针变量的定义和赋值

==变量指针:==变量在内存中的起始地址

==指针变量:==用新的变量来保存其他变量的内存地址

image-20210926150955756

注意

指针变量是保存某个数据的地址,那么,指针的数据类型要和变量的数据类型一致

指针数组

指针数组:存放多个指针变量的集合体

数组指针

数组指针:不同数组在内存中的首地址

多维数组指针

多维数组指针:要明确 多维 下标


点击全文阅读


本文链接:http://zhangshiyu.com/post/34975.html

关键字  变量  数组  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1