单片机C语言知识点全攻略

为了让有需要的朋友进一步了解单片机C语言知识,下面的文章将为大家讲解单片机C语言的知识内容,欢迎学习!

C51运算符和表达式

运算符,双目运算符和三目运算符。单目就是指需要有一个运算对象,双目就要求有两个运 算对象,三目则要三个运算对象。表达式则是由运算及运算对象所组成的具有特定含义的式 子。C 是一种表达式语言,表达式后面加“;”号就构成了一个表达式语句。

赋值运算符

对于“=”这个符号大家不会陌生的,在 C 中它的功能是给变量赋值,称之为赋值运算 符。它的作用不用多说大家也明白,就是但数据赋给变量。如,x=10;由此可见利用赋值运 算符将一个变量与一个表达式连接起来的式子为赋值表达式,在表达式后面加“;”便构成 了赋值语句。使用“=”的赋值语句格式如下:

变量 = 表达式; 示例如下

a = 0xFF; //将常数十六进制数 FF 赋于变量 a

b = c = 33; //同时赋值给变量 b,c d = e; //将变量 e 的值赋于变量 d

f = a+b; //将变量 a+b 的值赋于变量 f 由上面的例子能知道赋值语句的意义就是先计算出“=”右边的表达式的值,然后将得到 的值赋给左边的变量。而且右边的表达式能是一个赋值表达式。

在一些朋友的来信中会出现“==”与“=”这两个符号混淆的错误原码,问为何编译报 错,一般就是错在 if (a=x)之类的语句中,错将“=”用为“==”。“==”符号是用来进行相 等关系运算。

算术,增减量运算符

对于 a+b,a/b 这样的表达式大家都很熟悉,用在 C 语言中,+,/,就是算术运算符。单片机c语言 中的算术运算符有如下几个,其中只有取正值和取负值运算符是单目运算符,其它则都是双 目运算符:

+ 加或取正值运算符

- 减或取负值运算符

* 乘运算符

/ 除运算符

% 取余运算符 算术表达式的形式:

表达式 1 算术运算符 表达式 2 如:a+b*(10-a), (x+9)/(y-a)

除法运算符和一般的算术运算规则有所不一样,如是两浮点数相除,其结果为浮点数。

10.0/20.0 所得值为 0.5,而两个整数相除时,所得值就是整数,如 7/3,值为 2。像别的语 言一样 C 的运算符与有优先级和结合性,同样可用用括号“()”来改变优先级。这些和我们 小时候学的数学几乎是一样的,也不必过多的说明了。

++ 增量运算符

-- 减量运算符

这两个运算符是 C 语言中特有的一种运算符。在 VB,PASCAL 等都是没有的。作用就是 对运算对象作加 1 和减 1 运算。要注意的是运算对象在符号前或后,其含义都是不一样的,虽 然同是加 1 或减 1。如:I++,++I,I--,--I。

I++(或 I--) 是先使用 I 的值,再执行 I+1(或 I-1)

++I(或--I) 是先执行 I+1(或 I-1),再使用 I 的值。增减量运算符只允许用于变量的运算中,不能用于常数或表达式。 先来做一个实验吧。学习运算符和另外一些知识时,我们还是给我们的实验板加个串行

接口吧。借助电脑转件直观的看单片机的输出结果,如果你用的是成品实验板或仿真器,那你就能跳过这一段了。

在制作电路前我们先来看看要用的 MAX232,这里不去具体讨论它,只要知道它是 TTL和 RS232 电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,能省一点,效 果也不错 (如有兴趣能查看 网站中的相关资料)。下图就是 MAX232 的基本接线图。

图 6-1 MAX232

在上两课的电路的基础上按图 6-3 加上 MAX232 就能了。串行口座用 DB9 的母头,这样 就能用买来的 PC 串行口延长线进行和电脑相连接,也能直接接到电脑 com 口上。

图 6-2 DB9 接头

图 6-3 加上了 MAX232 的'实验电路 做好后,就先用回前面的“Hello World!”程序,用它来和你的电脑说声 Hello!把程序

烧到芯片上,把串行口连接好。嘿嘿,这个时候要打开你的串行口调试软件,没有就赶快到网上 DOWN 一个了。你会用 Windows 的超级终端也行,不过我从不用它。我用 http://emouze.com 的 comdebug,它是个不错的软件,我喜欢它是因为它功能好而且还有“线路状态”功能,这对

我制作小玩意时很有用。串行口号,波特率调好,打开串行口,单片机上电,就能在接收区看 到不断出现的“Hello World!”。一定要先打开软件的串行口,再把单片机上电,不然可能因字符不对齐而看到乱码哦。

运算符和表达式(关系运算符)

关系运算符,同样我们也并不陌生。单片机C语言中有六种关系运算符,这些东西同样是在我们小时候学算术时就已经学习过了的:

> 大于

< 小于

>= 大于等于

<= 小于等于

== 等于

!= 等于

或者你是个非 C语言 程序员,那么对前四个一定是再熟悉不过的了。而“==”在 VB 或 PASCAL 等中是用“=”,“!=”则是用“not ”。

小学时的数学课就教授过运算符是有优先级别的,计算机的语言也不过是人类语言的一种扩展,这里的运算符同样有着优先级别。前四个具有相同的优先级,后两个也具有相同的优先级,但是前四个的优先级要高于后2个的。

当两个表达式用关系运算符连接起来时,这个时候就是关系表达式。关系表达式通常是用来判别某个条件是否满足。要注意的是用关系运算符的运算结果只有 0 和 1 两种,也就是逻辑的真与假,当指定的条件满足时结果为 1,不满足时结果为 0。

表达式 1 关系运算符 表达式 2 如:I

借助我们在上一课做好的电路和学习了的相关操作。我们来做一个关系运算符相关的实例程序。为了增加学习的趣味性和生动性,不妨我们来假设在做一个会做算术的机器人,当然真正会思考对话的机器,我想我是做不出来的了,这里的程序只是用来学习关系运算符的基本应用。

#include 《AT89X51.H》

#include 《stdio.h》

void main(void)

{

int x,y;

SCON = 0x50; //串行口方式 1,允许接收 TMOD = 0x20; //定时器 1 定时方式 2

TH1 = 0xE8; //11.0592MHz 1200 波特率 TL1 = 0xE8;

TI = 1;

TR1 = 1; //启动定时器

while(1)

{

printf(“您好!我叫 Robot!我是一个会做算术的机器人! ”); //显示

printf(“请您输入两个 int,X 和 Y ”); //显示

scanf(“%d%d”,&x,&y); //输入

if (x 《 y)

printf(“X《Y ”); //当 X 小于 Y 时

else //当 X 不小于 Y 时再作判断

{

if (x == y)

printf(“X=Y ”); //当 X 等于 Y 时

else

printf(“X》Y ”); //当 X 大于 Y 时

}

}

}

要注意的是,在连接 PC 串行口调试时。发送数字时,发送完一个数字后还要发送一个回车符,以使 scanf 函数确认有数据输入。

单片机c语言除法,单片机C语言知识点全攻略相关推荐

  1. c语言二级考试程序设计题难吗,计算机二级考试:题库抽的不是题是“命”!附赠考试通关全攻略!...

    原标题:计算机二级考试:题库抽的不是题是"命"!附赠考试通关全攻略! 四六级的报名刚截止不久, 考研复试如火如荼地进行, 计算机二级考试如约而至. 今天是考试第一天 老新猜你一定有 ...

  2. 制作html语言网站全攻略,(网页制作HTML代码全攻略.doc

    (网页制作HTML代码全攻略 网页制作HTML代码全攻略 第一章:HTML 语言的结构 html文件是标准的ASCII文件,它看起来象是加入了许多被称为标注(tag)的特殊字符串的普遍文本文件.从结构 ...

  3. c 语言除法运算,C 语言简单加减乘除运算

    C语言也可以进行加减乘除运算,但是运算符号与数学中的略有不同,见下表. 加法 减法 乘法 除法 求余数 数学 + - × ÷ 无 C语言 + - * / % 加号.减号与数学中的一样,乘号.除号不同, ...

  4. 信息学奥林匹克c语言提高组,信息学奥赛提高组一级全攻略!你值得拥有!

    12月15日,中国计算机学会CCF的软件能力职业考试--CSP的本年度第三次认证顺利结束.这是一个面向全国计算机相关专业大学毕业生的软件能力的考试,该项认证每年大约3.9.12月各举办一次,自2014 ...

  5. 信息学奥林匹克c语言提高组,CSP信息学奥赛提高组一级全攻略,你值得拥有!...

    12月15日,中国计算机学会CCF的软件能力职业考试--CSP的本年度第三次认证顺利结束.这是一个面向全国计算机相关专业大学毕业生的软件能力的考试,该项认证每年大约3.9.12月各举办一次,自2014 ...

  6. mac c语言 新手,第1次买Mac必看,新手买Mac全攻略!

    原标题:第1次买Mac必看,新手买Mac全攻略! 近年越来越多人想买Mac,不过用惯Windows又怕不太调节.随着Microsoft为macOS推出MS Office新版,越来越多人改用macOS取 ...

  7. 洪水攻击程序c语言,洪水攻击原理及代码实现全攻略(附源代码)

    下载本文示例代码 推荐:应用程序安全的魔道之争 声明:本文所提供的资料仅仅限于技术交流和学习,请不要用于其他非法目的,维护网络安全是我们的共同责任. 下载本文源代码和例程 一. 什么是洪水攻击 洪水之 ...

  8. cube escape语言设置_Cube Escape Harvey's Box攻略

    哈维的盒子这款欲罢不能的小游戏你玩过了吗?这款密室逃脱题材益智游戏的每一个场景都有着各种碎片或道具需要收集,当你进入游戏中一瞬间是不是很迷茫呢,没有关系,当你拥有Cube Escape Harvey' ...

  9. c4d安装没有出现语言文字,c4d中文教程大合集 HDT映速教程 C4D自学全攻略(四部全集)...

    C4D教程大合集中文教程中文字幕IHDT映速教程C4D全攻略(四部全集) 01_蓝书:入门 02_绿书:进阶 03_橙书:室内渲染 04_角色动画 本教学采用最新的R14版本,通俗易懂地详尽介绍CIN ...

最新文章

  1. 基于Netty实现的轻量级分布式服务框架
  2. Android实现电蚊香/Service服务管理类
  3. stm32f103zet6linux,stm32f103zet6定时器详解及应用
  4. matlab中ismember_MATLAB 代码格式化简易版
  5. Maven2的配置文件settings.xml
  6. 绝对牛逼的3套Python项目,就业/毕设/私活/女朋友都不愁了
  7. 警告:ORA-00600 2252 错误正在SCN问题下不断爆发
  8. 【读书笔记】实战JAVA虚拟机JVM故障诊断与性能优化 读书笔记
  9. WPF 使用Console.Write打印信息到控制台窗口中
  10. ISO 审批通过 Ada 2012 语言标准
  11. ACL'22 | 一文解读复旦黄萱菁、邱锡鹏等老师NLP实验室的12篇长文
  12. Maven pom.xml中的元素modules、parent、properties以及import(转)
  13. vcenter 进入 Linux 操作模式
  14. linux将数字转为科学计数法,Linux下科学计数法(e)转化为数字的方法
  15. mac 安装selenium 教程
  16. rebuild node-sass npm install
  17. 电信PPPoE拨号失败,获取不到IP
  18. 域名解析错误怎么办?
  19. 拉格朗日乘数法求解技巧2
  20. 硕士阶段总结《科苑行》之科研论文

热门文章

  1. 活体识别3:论文笔记之《FACE ANTI-SPOOFING BASED ON COLOR TEXTURE ANALYSIS》
  2. Redis笔记(二)-远程访问
  3. 群晖DS Video支持DTS音轨(最新解决方案)
  4. [原]利用ps制作金属纹理效果
  5. 关于工信部要求品牌电脑强制预装“-花季护航”软件
  6. bzoj3864-hdu4899-Hero meet devil
  7. 运放和比较器的区别分析?运放可以当做比较器用么?(硬件每日一题)
  8. 互联互通社区3月份大事记
  9. python随机选取字符串_Python random模块sample、randint、shuffle、choice随机函数概念和应用...
  10. 用javascript+jquery编写的小游戏-贪吃蛇(双人对战版)