《单片机原理与应用》课件_单片机原理与应用-第四章.pptxVIP

《单片机原理与应用》课件_单片机原理与应用-第四章.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第4章MCS-51单片机程序设计方法;;4.1程序编制的步骤、方法和技巧;常用的流程图符号;“超级循环”结构;4.1.2编制程序的方法和技巧;二.使用高效的程序结构

(1)分支程序结构

(2)循环程序结构

(3)子程序结构

采用分支结构、循环结构和子程序结构的优点:

可以使程序的长度缩短,占用内存空间缩小,并使程序结构清晰简洁。

注意:1.避免“死循环”现象。

2.现场保护

3.堆栈操作的压入和弹出的平衡

。;4.2程序的编辑、编译和汇编;;;三、操作数

操作数用于提供参与运算的数据或进行操作的数据或这些数据的地址。

操作数字段的内容可能包括工作寄存器名、特殊功能寄存器名、符号名、标号名、符号“$”(表示程序计数器PC的当前值)、常数和表达式等。

若操作数为十六进制数字,其末尾必须用“H”说明,

十六进制数以字母A、B、C、D、E、F开头,其前面必须添加一个“0”进行引导说明,

例如:0AFH。

若操作数为二进制数字,其末尾必须用“B”说明,

例如。

若操作数为十进制数字,末尾可以加“D”说明,若末尾不加说明,该数字默认为十进制数字,例如:98D、98,均表示十进制数98。;;4.2程序的编辑、编译和汇编;3.汇编语言常用伪指令;(1)起始地址设定伪指令ORG;(2)汇编结束伪指令END;(3)字节数据定义伪指令DB;(4)字数据定义伪指令DW;;(5)赋值伪指令EQU;;(6)位地址符号定义伪指令BIT;;4.2.2C51源程序的编辑和编译;;;编写C51程序要注意以下几点:

(1)函数以“{”开始,以“}”结束,二者必须成对出现

(2)C51程序没有行号,一行内可以书写多条语句,一条语句也可以分写在多行上。

(3)每条语句最后必须以一个分号“;”结尾

(4)每个变量必须先定义后引用。

函数内部定义的变量为局部变量,又称内部变量,只有在定义它的那个函数之内才能够使用。在函数外部定义的变量为全局变量,又称外部变量,在定义它的那个程序文件中的函数都可以使用它。

(5)对程序语句的注释必须放在双斜杠“//”之后,或者放在“/*......*/”之内。;2.编译;3.C51常用预处理指令;;(3)条件编译指令

条件编译指???的作用是决定哪些代码被编译,哪些是不被编译的。

①#if和#endif指令

#if指令用来检测关键字后的常量表达式是否为真。如果表达式为真,则编译后面的代码,直到出现#else、#elif或#endif为止;如果表达式为假,则不编译后面的代码。#endif用于终止#if预处理指令。例如:

????#defineRUN0

????main()

????{??#ifRUN

??????printf(Running\n);

??????#endif

??????printf(End\n);

????};②#ifdef和#ifndef

#ifdef指令的作用是检测关键字后的常量是否被声明过。如果常量被声明过,则编译后面的代码,直到出现#else、#elif或#endif为止;如果常量没有被声明过,则不编译后面的代码。#ifndef用法与#ifdef用法相反。例如:

????#defineRUN

????main()

????{#ifdefRUN

???????printf(Start\n);

?????#endif

?????#ifndefRUN

??????printf(Stop\n);

?????#endif

????};③#else和#elif指令

#else指令的作用是用于某个#if指令之后,当前面的#if指令的条件不为真时,就编译#else后面的代码,#endif指令将用来终止上面的条件块。#elif预处理指令综合了#else和#if指令的作用。例如:

????#defineRED

????main()

????{??#ifdefBLUE

????????printf(Blue\n);

??????#elifdefinedRED

????????printf(Red\n);

??????#else

????????printf(Green\n);

??????#endif

????};4.3程序设计实例;本章小结;谢谢!

文档评论(0)

酱酱 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档