项目三单片机C语言基础学习教案_第1页
项目三单片机C语言基础学习教案_第2页
项目三单片机C语言基础学习教案_第3页
项目三单片机C语言基础学习教案_第4页
项目三单片机C语言基础学习教案_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1第一页,共123页。项目(xingm)3 单片机C语言基础 知识目标:1掌握单片机C语言的数据类型、标识符和关键字、常量(chngling)、函数结构和数组、函数、指针、文件、结构体类型变量、结构体数组等的使用。2. 掌握单片机C语言的运算符和表达式,顺序、选择、循环的流程控制语句。3能够使用C语言进行应用程序设计。 能力目标:1. 通过本课程的学习,掌握 C语言的基本语法、程序设计基本概念和基本方法;2. 能运用所学的知识和技能对一般问题进行分析和程序设计,编制出高效的C语言应用程序。 第1页/共122页第二页,共123页。项目(xingm)3 单片机C语言基础 u一、单片机C语言概

2、述(i sh)第2页/共122页第三页,共123页。任务1 C51程序(chngx)组成的识读 第3页/共122页第四页,共123页。第4页/共122页第五页,共123页。围(fnwi)是 0255。signed char 类型用字节中最高位字节表示数据的符号,0表示正数,1表示负数,负数用补码表示。所能表示的数值范围(fnwi)是-128+127。unsigned char 常用于处理ASCII 字符或用于处理小于或等于255 的整型数。n注意:正数的补码与原码相同,负二进制数的补码等于它的绝对值按位取反后加1。第5页/共122页第六页,共123页。+32767,字节(z ji)中最高位表示

3、数据的符号,0表示正数,1表示负数。unsigned int表示的数值范围是065535。第6页/共122页第七页,共123页。2147483648+2147483647,字节中最高位表示数据的符号,0表示正数, 1表示负数。unsigned long 表示的数值范围是04294967295。第7页/共122页第八页,共123页。n指针型本身(bnshn)就是一个变量,在这个变量中存放的指向另一个数据的地址。这个指针变量要占据一定的内存单元,对不同的处理器长度也不尽相同,在C51 中它的长度一般为13 个字节。第8页/共122页第九页,共123页。第9页/共122页第十页,共123页。第10页

4、/共122页第十一页,共123页。第11页/共122页第十二页,共123页。文本编辑器中编写C程序,系统可以把保留字以不同颜色显示,默认颜色为天蓝色。标准和扩展的关键字如表3-2 所示第12页/共122页第十三页,共123页。第13页/共122页第十四页,共123页。第14页/共122页第十五页,共123页。第15页/共122页第十六页,共123页。第16页/共122页第十七页,共123页。C型数组来处理的,在存储字符串时系统会在字符串尾部加上o 转义字符以作为该字符串的结束符。第17页/共122页第十八页,共123页。第18页/共122页第十九页,共123页。第19页/共122页第二十页,共

5、123页。第20页/共122页第二十一页,共123页。译时准确的定位。下表中是Keil uVision2 所能认别的存储(cn ch)器类型。注意的是在AT89S51 芯片中RAM 只有低128 位,位于 80H 到FFH 的高128 位则在52 芯片中才有用,并和特殊寄存器地址重叠。第21页/共122页第二十二页,共123页。第22页/共122页第二十三页,共123页。第23页/共122页第二十四页,共123页。贮地址构成,最低的地址对应贮地址构成,最低的地址对应于第一个数组元素于第一个数组元素, 最高的地最高的地址对应最后一个数组元素。数址对应最后一个数组元素。数组可以是一维的、也可以是多

6、组可以是一维的、也可以是多维的。维的。第24页/共122页第二十五页,共123页。第25页/共122页第二十六页,共123页。第26页/共122页第二十七页,共123页。给,0将会自动(zdng)的赋给str2,这点应特别注意。第27页/共122页第二十八页,共123页。第28页/共122页第二十九页,共123页。第29页/共122页第三十页,共123页。第30页/共122页第三十一页,共123页。第31页/共122页第三十二页,共123页。任务(rn wu)1 C51程序组成的识读第32页/共122页第三十三页,共123页。第33页/共122页第三十四页,共123页。第34页/共122页第三

7、十五页,共123页。任务(rn wu)1 C51程序组成的识读第35页/共122页第三十六页,共123页。任务1 C51程序(chngx)组成的识读第36页/共122页第三十七页,共123页。任务1 C51程序(chngx)组成的识读第37页/共122页第三十八页,共123页。任务(rn wu)1 C51程序组成的识读第38页/共122页第三十九页,共123页。任务1 C51程序(chngx)组成的识读第39页/共122页第四十页,共123页。任务1 C51程序(chngx)组成的识读第40页/共122页第四十一页,共123页。任务(rn wu)1 C51程序组成的识读第41页/共122页第四

8、十二页,共123页。任务(rn wu)1 C51程序组成的识读第42页/共122页第四十三页,共123页。任务1 C51程序(chngx)组成的识读第43页/共122页第四十四页,共123页。任务(rn wu)1 C51程序组成的识读第44页/共122页第四十五页,共123页。任务1 C51程序(chngx)组成的识读第45页/共122页第四十六页,共123页。任务(rn wu)1 C51程序组成的识读第46页/共122页第四十七页,共123页。任务(rn wu)1 C51程序组成的识读第47页/共122页第四十八页,共123页。任务(rn wu)1 C51程序组成的识读第48页/共122页第

9、四十九页,共123页。任务(rn wu)1 C51程序组成的识读第49页/共122页第五十页,共123页。任务1 C51程序(chngx)组成的识读第50页/共122页第五十一页,共123页。任务(rn wu)1 C51程序组成的识读第51页/共122页第五十二页,共123页。任务1 C51程序(chngx)组成的识读第52页/共122页第五十三页,共123页。任务(rn wu)1 C51程序组成的识读第53页/共122页第五十四页,共123页。任务1 C51程序(chngx)组成的识读第54页/共122页第五十五页,共123页。任务(rn wu)1 C51程序组成的识读第55页/共122页第

10、五十六页,共123页。任务(rn wu)2 运算符和表达式的识读 第56页/共122页第五十七页,共123页。任务(rn wu)2 运算符和表达式的识读第57页/共122页第五十八页,共123页。任务(rn wu)2 运算符和表达式的识读第58页/共122页第五十九页,共123页。n常量不能出现左边。第59页/共122页第六十页,共123页。=+ =、-=、*=、%=、/= i + = 2 等价(dngji)于 i = i + 2 a * = b + 5 等价(dngji)于 a = a * (b + 5) x% = 3 等价(dngji)于 x = x%3第60页/共122页第六十一页,共1

11、23页。任务(rn wu)2 运算符和表达式的识读第61页/共122页第六十二页,共123页。任务(rn wu)2 运算符和表达式的识读第62页/共122页第六十三页,共123页。 注 意两个整数相除结果为整数,如8/5的结果为1,舍去小数(xiosh)部分。如果参加运算的两个数中有一个数为实数,则结果是实型。求余运算要求%两侧都是整型数据。第63页/共122页第六十四页,共123页。实战演练:请说明(shumng)程序运行完后x,y,z,m,n的值分别是多少?main() int x=6,y,z,m,n;y=+x;z=x-; m=y/z; n=y%z; 第64页/共122页第六十五页,共12

12、3页。任务(rn wu)2 运算符和表达式的识读第65页/共122页第六十六页,共123页。关系(gun x)运算符 优先级 = = !=低高第66页/共122页第六十七页,共123页。p 用关系运算符将两个表达式(可以(ky)是算术表达式、关系表达式、赋值表达式或逻辑表达式)连接起来的式子,称为关系表达式。p 关系表达式的值为逻辑值“真”或“假”,以1代表“真”,以0代表“假”。p 例如:p (1)关系表达式“8=4”的值为 ,表达式的值为 。p (2) 关系表达式“50”的值为 ,表达式的值为 。 p 第67页/共122页第六十八页,共123页。任务(rn wu)2 运算符和表达式的识读第

13、68页/共122页第六十九页,共123页。第69页/共122页第七十页,共123页。任务(rn wu)2 运算符和表达式的识读第70页/共122页第七十一页,共123页。任务(rn wu)2 运算符和表达式的识读第71页/共122页第七十二页,共123页。若a=1,b=2,c=3,x=4,y=3,写出下各个(gg)表达式的值:(1)a+bc&b=c(2)!ab&b!=c|x+y=3(3)!(x=a)&(y=b)&0000第72页/共122页第七十三页,共123页。运算类型运算符优先级结合性括号运算符()1从左至右逻辑非和按位取反! 2从右至左算术运算* / %3

14、从左至右+ -4从左至右左移、右移运算5从左至右关系运算 =6从左至右= !=7从左至右位运算&8从左至右9从左至右|10从左至右逻辑与&11从左至右逻辑或|12从左至右赋值运算与复合赋值运算 = 、*=、/=、&=、=、|=、=14从右至左例如(lr):(1) xy& mn 等效于 (xy) & (mc 等效于(!a) & (bc)第73页/共122页第七十四页,共123页。任务(rn wu)2 运算符和表达式的识读第74页/共122页第七十五页,共123页。任务(rn wu)2 运算符和表达式的识读第75页/共122页第七十六页,共123页。

15、与操作(cozu)按位与操作(cozu)符 :&格式:x&y规则:对应位均为1时才为1,否则为0 例如, i=i&0 x0f; 等同于 i&=0 x0f;主要用途:取(或保留)1个数的某(些)位,其余各位置0。第76页/共122页第七十七页,共123页。或操作按位或操作符: |格式:x|y规则:对应位均为0时才为0,否则(fuz)为1 例如, i=i|0 x0f; 等同于 i|=0 x0f;主要用途:将1个数的某(些)位置1,其余各位不变第77页/共122页第七十八页,共123页。异或操作按位异或操作符:格式:xy规则:对应(duyng)位相同时为0,不同时为1

16、 例如, i=i0 x0f; 等同于 i=0 x0f;主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。第78页/共122页第七十九页,共123页。按位取反操作按位取反操作符:格式:x规则(guz):各位翻转,即原来为1的位变成0,原来为0的位变成1 例如, i=i;主要用途:间接地构造一个数,以增强程序的可移植性。第79页/共122页第八十页,共123页。n右移运算符右移运算符“”的功能,的功能,是把是把“”左边左边(zu bian)的操作数的各二进制位全部的操作数的各二进制位全部右移若干位,移动的位数由右移若干位,移动的位数由“”右边的常数指定。进右边

17、的常数指定。进行右移运算时,如果是无符行右移运算时,如果是无符号数,则总是在其左端补号数,则总是在其左端补“0”第80页/共122页第八十一页,共123页。n -= 减法赋值减法赋值 & = 逻辑逻辑与赋值与赋值n*= 乘法赋值乘法赋值 | = 逻辑逻辑或赋值或赋值n /= 除法赋值除法赋值 = 逻辑逻辑异或赋值异或赋值n %= 取模赋值取模赋值!= 逻辑逻辑非赋值非赋值n = 左移位赋值左移位赋值任务(rn wu)2 运算符和表达式的识读第81页/共122页第八十二页,共123页。zhn)方法,凡是二目运算都可以用复合赋值运算符去简化表达。例如:n a+=56 等价于 a = a+5

18、6 n y/=x+9 等价于 y = y / (x+9) 任务(rn wu)2 运算符和表达式的识读第82页/共122页第八十三页,共123页。任务(rn wu)2 运算符和表达式的识读第83页/共122页第八十四页,共123页。号表达式的目的只是为了分别得到各个表达式的值,而并不一定要得到和使用整个逗号表达式的值。n需要注意的是:并不是在程序的任何位置出现的逗号,都可以认为是逗号运算符。如函数中的参数,同类型变量的定义中的逗号只是用来间隔之用而不是逗号运算符。任务(rn wu)2 运算符和表达式的识读第84页/共122页第八十五页,共123页。任务(rn wu)2 运算符和表达式的识读第85

19、页/共122页第八十六页,共123页。任务(rn wu)2 运算符和表达式的识读第86页/共122页第八十七页,共123页。任务(rn wu)2 运算符和表达式的识读第87页/共122页第八十八页,共123页。任务(rn wu)2 运算符和表达式的识读第88页/共122页第八十九页,共123页。任务(rn wu)2 运算符和表达式的识读第89页/共122页第九十页,共123页。任务(rn wu)2 运算符和表达式的识读第90页/共122页第九十一页,共123页。任务(rn wu)2 运算符和表达式的识读第91页/共122页第九十二页,共123页。任务(rn wu)2 运算符和表达式的识读第92

20、页/共122页第九十三页,共123页。任务(rn wu)2 运算符和表达式的识读第93页/共122页第九十四页,共123页。任务(rn wu)3 程序结构及流程控制语句的识读 第94页/共122页第九十五页,共123页。任务(rn wu)3 程序结构及流程控制语句的识读 第95页/共122页第九十六页,共123页。任务3 程序结构及流程(lichng)控制语句的识读 第96页/共122页第九十七页,共123页。nn else nn语句语句2;n 任务3 程序结构及流程(lichng)控制语句的识读 上述结构(jigu)表示:如果表达式的值为非0 (TURE) 即真,则执行语句1,执行完语句1从

21、语句2 后开始继续向下执行;如果表达式的值为0 (FALSE) 即假, 则跳过语句 1 而执行语句2,执行完语句2后继续向下执行。所谓表达式是指关系表达式和逻辑表达式的结合式。 第97页/共122页第九十八页,共123页。任务3 程序结构及流程控制(kngzh)语句的识读 第98页/共122页第九十九页,共123页。任务3 程序结构及流程控制(kngzh)语句的识读 第99页/共122页第一百页,共123页。任务3 程序结构及流程(lichng)控制语句的识读 第100页/共122页第一百零一页,共123页。任务3 程序结构及流程控制(kngzh)语句的识读 第101页/共122页第一百零二页

22、,共123页。任务3 程序结构及流程(lichng)控制语句的识读 第102页/共122页第一百零三页,共123页。任务3 程序结构及流程(lichng)控制语句的识读 第103页/共122页第一百零四页,共123页。else-if 用不方便,并用不方便,并且容易出错。且容易出错。对这种情况,对这种情况,应该应用开关应该应用开关语句。开关语语句。开关语句格式为句格式为: 任务3 程序结构及流程控制(kngzh)语句的识读 switch (变量(binling) case 常量1: 语句1 或空; case 常量2: 语句2 或空; . case 常量n: 语句n 或空; Default: 语句

23、n+1 或空; 执行 switch 开关语句时, 将变量逐个与case 后的常量进行比较, 若与其中一个相等,则执行该常量下的语句, 若不与任何一个常量相等,则执行default后面的语句。 第104页/共122页第一百零五页,共123页。任务3 程序结构及流程(lichng)控制语句的识读 第105页/共122页第一百零六页,共123页。任务3 程序结构及流程控制(kngzh)语句的识读 第106页/共122页第一百零七页,共123页。printf(%dn, test); n break; 任务3 程序结构及流程(lichng)控制语句的识读 case 3:printf(%dn, test)

24、; break; default: puts(Error); break; 第107页/共122页第一百零八页,共123页。语句有:语句有:for 语句、语句、while 语句语句和和do-while 语句。语句。任务3 程序结构及流程控制(kngzh)语句的识读 第108页/共122页第一百零九页,共123页。其 值 为 真 ( 非 零 ) 则 执 行其 值 为 真 ( 非 零 ) 则 执 行FOR中的语句体,然后执行中的语句体,然后执行第三步,否则结束第三步,否则结束FOR语句,语句,直接跳出,不在执行第三步。直接跳出,不在执行第三步。n求解表达式求解表达式3n跳到第跳到第2步,重复执行步

25、,重复执行任务(rn wu)3 程序结构及流程控制语句的识读 第109页/共122页第一百一十页,共123页。任务3 程序结构及流程控制(kngzh)语句的识读 注意:(1)for 循环中语句可以为语句体,但要用“”和“”将参加循环的语句括起来(q li)。 (2)for 循环中的初始化、条件表达式和增量都是选择项,即可以缺省, 但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理时便成为死循环。省略了增量, 则不对循环控制变量进行操作, 这时可在语句体中加入修改循环控制变量的语句。 第110页/共122页第一百一十一页,共123页。n for(k=0; k

26、2; k+) n printf(%d %d %dn, i, j, k); n 任务(rn wu)3 程序结构及流程控制语句的识读 输出(shch)结果为: i j k 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 第111页/共122页第一百一十二页,共123页。n(tiojin))不是不是0,为真,那么执行语句,为真,那么执行语句,否则跳出否则跳出WHILE语句。语句。nWhile(0),While(1),While(5),While(10)n若循环语句为空,若循环语句为空,While(1);,后面后面的分号不能省略。的分号不能省略。任务(rn wu)3 程序结构及流程控制语句的识读 第112页/共122页第一百一十三页,共123页。任务3 程序结构及流程(lichng)控制语句的识读 程序中 while 循环是以检查c 是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c= X0D , 条件为假,循环便告结束。与for 循环一样(yyng),while 循环总是在循环的头部检验条件,这就意味着循环可能什么也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论