阅读 341

单片机中C语言的规则(单片机c语言基础语句及详解)

单片机中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,固定值5flash 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

注意

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

指针数组

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

数组指针

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

多维数组指针

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


作者:小码农UU
链接:https://juejin.cn/post/7035418348812763144

 伪原创工具 SEO网站优化  https://www.237it.com/ 


文章分类
人工智能
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐