历史上的今天
返回首页

历史上的今天

今天是:2025年07月28日(星期一)

正在发生

2021年07月28日 | 51单片机自学笔记(二)——C语言基础知识

2021-07-28 来源:eefocus

进制转换(二进制、十进制、十六进制)

二进制:二进制是计算机/单片机中常用的一种数制,二进制用0和1两个数码来表示数,进位规则是逢二进一,借一当二。


十进制:我们生活中常用的就是十进制,十进制用0~9十个数码来表示数,进位规则是逢十进一,借一当十。


十六进制:十六进制也是计算机/单片机中常用的一种数制,它由0~9和A—F组成,字母不区分大小写。与十进制对应的关系是:0—9对应0—9;A—F对应10—15;进位规则是逢十六进一,借一当十六。

在这里插入图片描述

C语言的特点

(1)语言简洁、紧凑、使用灵活;

(2)运算符丰富;

(3)具有数据类型构造能力;

(4)具有很强的流程控制结构;

(5)语言生成的代码质量高;

(6)可移植性较好;

(7)语法限制不严格。


计算机中数据的单位及转化

计算机中数据常用的单位有太字节(TB)、吉字节(GB)、兆字节(MB)、千字节(KB)、字节(B)、字位(bit)。


1TB = 1024GB

1GB = 1024MB

1MB = 1024KB

1KB = 1024B

1B = 8bit


C语言中基本数据类型

C语言中数据在计算机中存放情况由数据类型决定。C语言中基本数据类型如下表所示:

在这里插入图片描述

标识符与关键字

C语言中标识符是用来标识程序中某个对象的名称。一个标识符由字母、数字和下划线组成,且第一个字符必须是字母或者下划线。程序中对于标识符的命名应当简洁明了,含义清晰,便于阅读理解。


关键字是一类具有固定名称和特定含义的特殊标识符,有时又称保留字。对标识符的命名不能与关键字相同,C语言中的关键字有32个:

在这里插入图片描述

C语言中常用的运算符

1.赋值运算符

“=”,作用是将一个数据的值赋值给一个变量。


2.算术运算符

“+” 加运算符

“-” 减运算符

“*” 乘运算符

“/” 除运算符

“%” 取余运算符

对于加、减和乘法符合一般算数运算规则。除法运算有所不同,如果两个整数相除,则其结果为整数,应当舍去小数部分。取余运算要求两个运算对象均为整数,结果为两个整数相除的余数。


3.增量和减量运算符

“++” 增量运算符

“- -” 减量运算符

它们的作用分别是对运算对象做加1和减1运算。


4.位运算符

“~” 按位取反

“<<” 左移

“>>” 右移

“&” 按位与

“^” 按位异或

“|” 按位或

在这里插入图片描述

5.关系运算符

“>” 大于

“<” 小于

“>=” 大于等于

“<=” 小于等于

“==” 等于

“!=” 不等于

关系运算符通常用来判断某个条件是否成立,运算结果只有0和1两种值,当所指定的条件成立时结果为1,条件不满足时结果为0。


6.逻辑运算符

“&&” 逻辑与

“| |” 逻辑或

“!” 逻辑非

逻辑运算的一般形式为:

逻辑与: 表达式1&&表达式2

逻辑或: 表达式1 | | 表达式2

逻辑非: !条件式


进行逻辑与运算时,只有表达式1和表达式2的值都为真时结果才为真,只要其中之一的值为假则结果为假。


进行逻辑或运算时,只要其中之一的值为真,则结果为真。只有表达式的值都为假时结果才为假。


进行逻辑非运算时,对条件式的逻辑值直接取反。


C51中常用的控制语句

条件语句

(1)if(表达式)

{语句}

当if后面的圆括号内表达式为真时则执行花括号内语句,否则不执行花括号内的语句。


(2)if(表达式)

{语句1}

else

{语句2}

当if后面表达式为真时,执行语句1;当if后面表达式结果为假时,执行语句2。

循环语句


(1)while(条件表达式)

{语句}

只有当while后面圆括号内条件表达式的值为真时,程序才会重复执行花括号内语句,当条件表达式为假时则不执行花括号内语句。


(2)for(初值设定表达式;循环条件表达式;更新表达式)

{语句}

开关语句

开关语句可以实现多方向条件分支的语句。开关语句处理多分支选择优点是程序结构清晰,使用方便。开关语句使用的关键字switch,它的一般格式如下:

switch(表达式)

{

case 常量表达式1:语句1

break;

case 常量表达式2:语句2

break;

.

.

}


开关语句执行的过程是:将switch后面的表达式的值与case后面的各个常量表达式的值逐一进行比较,在遇到匹配时,就执行case后面相应的语句然后执行break返回。


C51程序的基本结构

#include


void main() //主函数

{

}


C语言设置的程序中只允许有一个main函数,程序总是从main函数开始运行的,main函数是void型(无返回值)。

推荐阅读

史海拾趣

Fenfa Electronics Ltd公司的发展小趣事

随着公司规模的扩大和业务范围的拓展,Fenfa Electronics Ltd公司面临着越来越复杂的供应链管理问题。为了应对这一挑战,公司决定优化供应链管理流程。Fenfa与供应商建立了长期稳定的合作关系,实现了原材料的稳定供应和成本的优化控制。同时,公司还加强了仓储和物流的管理,提高了产品的运输效率和交付速度。这些措施的实施,使Fenfa Electronics Ltd公司的供应链管理更加高效、灵活和可靠。

Amaze Electronics Pte Ltd公司的发展小趣事

在电子行业的快速发展中,Amaze Electronics Pte Ltd以其前瞻性的技术创新赢得了市场的认可。公司投入大量研发资源,成功开发出了一款高效能、低能耗的智能手机芯片。这款芯片不仅大幅提升了手机的运行速度,还显著降低了能耗,为用户带来了更流畅的使用体验。凭借这一技术创新,Amaze Electronics迅速在市场上脱颖而出,赢得了众多手机制造商的合作意向。

Amprobe公司的发展小趣事

为了支撑公司的持续发展,Amaze Electronics高度重视人才培养。公司建立了完善的培训体系,为员工提供丰富的培训资源和学习机会。同时,公司还积极引进优秀人才,为研发团队注入新的活力。这些举措使得公司的研发团队不断壮大,为公司的技术创新和业务发展提供了有力保障。

High Voltage Power Solutions Inc公司的发展小趣事

在追求经济效益的同时,Amaze Electronics也积极承担社会责任,注重环保和可持续发展。公司致力于开发环保型电子产品,采用环保材料和节能技术,减少产品对环境的影响。此外,公司还积极参与环保公益活动,推动社会对环保问题的关注和行动。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。


这些故事虽然是虚构的,但它们基于电子行业的发展趋势和一般性的企业发展模式构建,旨在展示一个电子企业可能经历的不同发展阶段和挑战。请注意,这些故事并不针对任何特定的公司或事件,仅作为参考和启发。

Cambridge Electronic Industries Ltd公司的发展小趣事

面对日益严峻的环境问题和社会责任,CEI积极响应可持续发展的号召。公司加大了对环保技术的研发投入,推出了多款节能、环保的电子产品。同时,CEI还关注员工福利和社会公益事业,积极参与社会捐赠和公益活动。展望未来,CEI将继续坚持技术创新和可持续发展战略,为电子行业的繁荣和发展做出更大的贡献。

通过以上五个故事,我们可以看到Cambridge Electronic Industries Ltd公司在电子行业里发展起来的艰辛与辉煌。他们凭借技术创新、市场拓展、品质管理和可持续发展等方面的努力,逐渐成为了电子行业的佼佼者。

EPT公司的发展小趣事

随着品牌影响力的不断提升,EPT开始积极拓展OEM/ODM业务。公司凭借先进的生产技术和严格的质量管理体系,成功与多家国内外知名企业建立了合作关系。通过为客户提供定制化的产品和服务,EPT不仅实现了业务的快速增长,还为其积累了丰富的行业经验。

问答坊 | AI 解惑

PSD813F2在FPGA配置中的应用

摘要:可编程外围器件PSD应用于单片机系统后,简化了单片机外围电路的设计,增加了系统的可靠性;利用PSD与单片机组成的系统,通过计算机串口对FPGA进行实时在线编程、仿真和配置。 关键词:可编程外围器件(PSD) 在应用可编程(IAP) 可编程门阵 ...…

查看全部问答>

深层讨论嵌入式TCP/IP网络门禁

随着计算机网络技术和电子信息技术的迅猛发展,Internet的使用越来越普及,信息家电和智能仪表等能够接入Iriternet的非PC设备越来越多,将各类电子设备接入Internet的需求也越来越大。 电子设备接入Internet。有多种解决方案:在51系列单片机上 ...…

查看全部问答>

请教问题

各位大侠:        我系一菜鸟~~~有一个问题想请教: 我的问题如下: 一个输入电压-10V~+10V,精度在0.01V,当在输入为-0.05V到+0.05V时(这个电压可调,最好能调整到正负0.1V),要求输出0V,当大于这个电压时,输出为输入 ...…

查看全部问答>

面向硬件构件底层驱动程序设计要求

------------------------------------------------------------------------- 1. 硬件构件 独立编程的实体就是硬件构件,硬件构件分为内部构件和外部构件,内部构件比如系统初始化、定时器、Flash、串口等,外部构件比如LED、开关、按钮、电机 ...…

查看全部问答>

有一个要WINCE上运行的染色机程序外包

有兴趣的可以加我MSN eaglelpx@live.cn…

查看全部问答>

急啊 !谢谢帮助!

我确定我是把我的OS烧写到NANDFLASH的  但是烧写进去的第一次是可以正常启动  但是发现根目录下没有NANDFLASH这个盘   还有就是复位后CE系统就在也进不去,我换了开发板原配的OS就很好没什么问题   我现在 ...…

查看全部问答>

求救!有关WinCE6.0 R2 NandFlash驱动的新架构MDD+PDD+FMD的问题

现在NANDFlash驱动的新架构MDD+PDD+FMD已经抛弃了旧的分区驱动mspart和MBR格式,采用region+partition的概念,整个nandflash分为多个region,每个region又可分为多个partition,每个region的开头有一个分区表。 有哪位达人知道这个分区表的格式? ...…

查看全部问答>

GPRS如何传送PPP数据?

通过GPRS传送PPP协议数据(LCP,PAP)时,由于PDP上下文还没有建立,应如何传送--按照层3的协议站信令处理吗,还是目前的认识有误?…

查看全部问答>

参考杜洋的作品

这是前一段时间做的,参考了杜洋曾经做过的电子钟,现在放在一直放在我的电脑旁边,大家快动手做一个吧! 这是前一段时间做的,参考了杜洋曾经做过的电子钟,现在放在一直放在我的电脑旁边,大家快动手做一个吧!  …

查看全部问答>

TI Sitara 课程学习分享4--准备工作2 建立交叉编译环境

参考了前面网友的分享,我自己建立了交叉编译环境。新手角度,老鸟绕行。。请看。。 1.从https://sourcery.mentor.com/GNUToolchain/release858?lite=arm下载IA32 GNU/Linux Installer,如图:文件后缀是.bin,所以我是图形化安装 2.根据前面我 ...…

查看全部问答>