网站大量收购闲置独家精品文档,联系QQ:2885784924

单片机C51语句-教案.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE

PAGE9

教案纸第1页

单片机

C51语句汇总

检查

授课班级

2

授课时数

6

教具

授课时间

教学方法

演示、讲解、

教学目的

掌握C51语句格式和使用方法和范围

教学重点

和难点

C51语句格式和使用方法和范围

复习提问

教学内容、方法、过程和板书设计

教学追记

一、if语句

if语句是用来判定所给定的条件是否满足根据判定的结果(真或假)决定执行给出的两

种操作之一。

C语言提供了三种形式的if语句

1.if(表达式)语句

如果表达式的结果为真,则执行语句,否则不执行

2.if(表达式)语句1else语句2

如果表达式的结果为真,则执行语句1,否则执行语句2

3.if(表达式1)语句1

elseif(表达式2)语句2

elseif(表达式3)语句3

elseif(表达式m)语句m

else语句n

这条语句执行如图2所示。

上述程序中的如下语句:

if((KeyV|0xc3)==0xff)//无键按下

return(0);

教案纸附页

第2页

教学内容、方法、过程和板书设计

教学追记

一种if语句的应用:该语句中“|”符号是C语言中的位运算符,按位相或的意思,

相当于汇编语言中“ORL”指令,将读取的P3口的值KeyV与0xc3()按位或,如果结果为0xff()说明没有键被按下,因为中间4位接有按键,如果有键按下,那么P3口值的中间4位中必然有一位或更多位是“0”。该语句中的“return(0)”是返回之意,相当于汇编语言中的“ret”指令,通过该语句可以带返回值,即该号中的数值,返回值就是这个函数的值,在这个函数被调用时,用了如下的形式:KValue=Key();因此,返回的结果是该值被赋给Kvalue这个变量。因此,如果没有键被按下,则直接返回,并且Kvalue的值将变为0。如果有键被按下,那么return(0)将不会被执行。程序其他地方还有这样的用法,请注意观察与分析。

程序中:

if(Start)

{…灯流动显示的代码}

else

P1=0xff;//否则灯全灭

是if语句的第二种用法,其中Start是一个位变量,该变量在main函数的中被定义,并赋以初值0,该变量在按键K1被按下后置为1,而K2按下后被清为0,用来控制灯流动是否开始。这里就是判断该变量并决定灯流动是否开始的代码,观察if后面括号中的写法,与其他语言中写法很不一样,并没有一个关系表达式,而仅仅只有一个变量名,C根据这个量是0还是1来决定程序的走向,如果为1则执行灯流动显示的代码,如果为0,则执行P1=0xff;语句。可见,在C语言中,数据类型的概念比其他很多的编程语言要“弱化”,或者说C更着重从本质的角度去考虑问题,if后面的括号中不仅可以是关系表达式,也可以是算术表达式,还可以就是一个变量,甚至是一个常量,不管怎样,C总是根据这个表达式的

值是零还是非零来决定程序的走向,这个特点是其他中所没有的,请注意理解。

if语句的第三种用法在本程序中没有出现,下面我们举一例说明。在上述的键盘处理函数Key中,如果没键被按下,返回值是0,如果有键被按下,经过去键抖的处理,将返回键

值,程序中的“return(KeyV);”即返回键值。当K1被按下(P3.2接地)时,返回值是0xfb

),而K2被按下(P3.3接地)时,返回值是0xf7),K3被按下(P3.4接地)时,返回值是0xef),K4被按下(P3.5接地)时,返回值是0xdf),该值将被赋给主程序中调用键盘程序的变量KValue。程序用了另一种选择结构switch进行处理,关于switch将在稍后介绍。下面用if语句来改写:

教案纸附页

第3页

教学内容、方法、过程和板书设计

教学追记

if(KValue==0xfb)

{Start=1;}

elseif(KValue==0xf7)

{Start=0;}

elseif(KValue==0xef)

{UpDown=1;}

elseif(KValue==0xdf)

{UpDown=0;}

else

{//意外处理}

……

if(KValue==0xfb)

{Start=1;}

elseif(KValue==0xf7)

{Start=0;}

elseif(KValue==0xef)

{UpDown=1;}

elseif(KValue==0xdf)

{UpDown=0;}

else

{//意外处理}

……

文档评论(0)

胖叔 + 关注
实名认证
内容提供者

好文档大家享受

1亿VIP精品文档

相关文档