- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 单片机C语言程序设计 东北大学信息学院 高宏亮 4.7.5 do while语句 do while语句在C51中用于实现直到型循环结构,它的格式如下: do {语句;} /*循环体*/ while(表达式); 它的特点是:先执行循环体中的语句,后判断表达式。如表达式成立(真),则再执行循环体,然后又判断,直到有表达式不成立(假)时,退出循环,执行do while结构的下一条语句。do while语句在执行时,循环体内的语句至少会被执行一次。 在C51语言中,for语句是使用最灵活、用得最多的循环控制语句,同时也最为复杂。它可以用于循环次数已经确定的情况,也可以用于循环次数不确定的情况。它完全可以代替while语句,功能最强大。它的格式如下: for(表达式1;表达式2;表达式3) {语句;} /*循环体*/ for语句后面带三个表达式,它的执行过程如下: (1)先求解表达式1的值。 (2)求解表达式2的值,如表达式2的值为真,则执行循环休中的语句,然后执行下一步(3)的操作,如表达式2的值为假,则结束for循环,转到最后一步。 4.7.6 for语句 (3)若表达式2的值为真,则执行完循环体中的语句后,求解表达式3,然后转到第四步。 (4)转到(2)继续执行。 (5)退出for循环,执行下面的一条语句。 在for循环中,一般表达式1为初值表达式,用于给循环变量赋初值;表达式2为条件表达式,对循环变量进行判断;表达式3为循环变量更新表达式,用于对循环变量的值进行更新,使循环变量能不满足条件而退出循环。 在一个循环的循环体中允许又包含一个完整的循环结构,这种结构称为循环的嵌套。外面的循环称为外循环,里面的循环称为内循环,如果在内循环的循环体内又包含循环结构,就构成了多重循环。 在C51中,允许三种循环结构相互嵌套。 【例4-18】用嵌套结构构造一个延时程序。 void delay(unsigned int x) { unsigned char j; while(x--) { for (j=0;j125;j++); } } 这里,用内循环构造一个基准的延时,调用时通过参数设置外循环的次数,这样就可以形成各种延时关系。 4.7.7 循环的嵌套 break和continue语句通常用于循环结构中,用来跳出循环结构。但是二者又有所不同,下面分别介绍。 1.break语句 前面已介绍过用break语句可以跳出switch结构,使程序继续执行switch结构后面的一个语句。使用break语句还可以从循环体中跳出循环,提前结束循环而接着执行循环结构下面的语句。它不能用在除了循环语句和switch语句之外的任何其它语句中。 4.7.8 break和continue语句 continue语句用在循环结构中,用于结束本次循环,跳过循环体中continue下面尚未执行的语句,直接进行下一次是否执行循环的判定。 continue语句和break语句的区别在于:continue语句只是结束本次循环而不是终止整个循环;break语句则是结束循环,不再进行条件判断。 2.continue语句 return语句一般放在函数的最后位置,用于终止函数的执行,并控制程序返回调用该函数时所处的位置。返回时还可以通过return语句带回返回值。return语句格式有两种: (1)return; (2)return (表达式); 如果return语句后面带有表达式,则要计算表达式的值,并将表达式的值作为函数的返回值。若不带表达式,则函数返回时将返回一个不确定的值。通常我们用return语句把调用函数取得的值返回给主调用函数。 4.7.8 return语句 4.3.4 绝对地址的访问 一.使用C51运行库中预定义宏 C51编译器提供了一组宏定义来对51系列单片机的code、data、pdata和xdata空间进行绝对寻址。规定只能以无符号数方式访问,定义了8个宏定义,其函数原型如下: #define CBYTE((unsigned char volatile*)0x50000L) #define DBYTE((unsigned char volatile*)0x40000L) #define PBYTE((unsigned char volatile*)0x30000L) #define XBYTE((unsigned char volatile*)0x20000L) #define CWORD((unsigned int volatile*)0x5000
文档评论(0)