单片机原理与应用凌阳SPCE061A(电子教案)第7章 程 序 设 计_第1页
单片机原理与应用凌阳SPCE061A(电子教案)第7章 程 序 设 计_第2页
单片机原理与应用凌阳SPCE061A(电子教案)第7章 程 序 设 计_第3页
单片机原理与应用凌阳SPCE061A(电子教案)第7章 程 序 设 计_第4页
单片机原理与应用凌阳SPCE061A(电子教案)第7章 程 序 设 计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用凌阳SPCE061A(电子教案)第7章 程 序 设 计 第77章程序设计汇编语言程序设计7.2C语言程序设计7.3汇编语言伪指令7.1程序设计举例7.47.1汇编语言伪指令7.1.1汇编语言伪指令的概念7.1.2汇编语言伪指令的写法与符号约定7.1.3汇编语言伪指令的分类7.1.4汇编语言的语法格式1数制、数据类型2运算符3标号4程序注释与符号规定7.2汇编语言程序设计7.2.1顺序结构顺序结构比较简单,从第一条指令开始依次执行每一条指令,直到最后一条指令,程序结束,如图7-2所示。 顺序结构是构成复杂程序的基础(具体实例可以参考例例7-1)。 图77-2顺序结构7.2.2选择结构1特点选择结构又叫分支结构,P代表条件,当当P条件成立时执行A,否则执行B,如图7-3(a)所示;由此派生出多分支结构,如图7-3(b)所示。 在程序体中,根据不同的条件执行不同的动作,在某一确定的条件下,只能执行多个分支中的一个分支。 2举例(a a)选择结构(b b)多个选择结构图77-3选择结构7.2.3循环结构1特点在一些实际应用系统中,某些指令需要重复许多次,这种强制CPU多次重复执行某些指令的基本结构称为循环结构。 在汇编语言中没有专门的循环指令,但是可以使用有条件转移指令通过条件判断来控制循环是继续还是结束。 2循环结构的结构形式循环结构有两种基本形式,如图7-5和和图图7-6所示。 一种是先判断条件,满足条件执行循环体,不满足条件就结束循环;另一种是先执行循环体,再判断条件,若满足条件则继续执行循环体,不满足条件结束循环。 图77-5先判断后执行图77-6先执行后判断再执行循环结构的3个组成部分如下。 ( (1)初始化为循环做准备,如规定循环次数、给变量赋初始值等。 ( (2)循环体循环结构的主体,每次都要执行的程序代码段。 ( (3)循环控制修改循环变量,判断循环是否结束。 7.2.4子程序设计1特点在实际应用中,经常会遇到在同一程序中需要多次进行一些相同的计算和操作的情况,例如延时、算术运算等。 如果每次使用时都再从头开始编写这些程序,则不仅程序繁琐,而且浪费内存空间,也给程序的调试增加了难度。 因此,可以采用子程序的概念,将一些重复使用的程序标准化,使之成为一个独立的程序段,需要时调用即可。 我们就把这些程序段称作子程序。 2子程序结构一般来说子程序的结构包括3个部分子程序的定义声明和开始标号部分;子程序的实体内容部分,表明程序将进行怎样的操作;子程序的结束标号部分。 子程序名.proc/子程序内容RETF.endp程序的调用包括主程序调用子程序、子程序调用子程序等。 程序调用是通过调用指令“CALL”来实现的。 程序执行的过程中,当遇到调用子程序指令时,CPU自动会将下一条指令的地址压入堆栈暂时保护起来,然后转到被调用的子程序入口去执行子程序,当执行到RETF时返回,CPU自动将堆栈中的返回地址弹出送到PC,继续执行原来的程序。 其过程流程框图如图7-8所示(CPU自动执行操作不需要编写指令处理)。 图77-8子程序结构在程序调用的过程中,需要注意到的问题是断点的现场保护,就是说,子程序将占用的资源是否与主程序冲突,子程序将会破坏什么寄存器的内容,而这些寄存器是否是主程序持续使用的等。 通常的做法是用堆栈对现场进行保护,在子程序开始就把子程序要破坏掉的寄存器的内容压栈保护,当子程序结束的时候再弹栈恢复现场。 3参数传递程序调用的过程都伴随着参数的传递,正确的参数传递要满足入口和出口条件。 入口条件指执行子程序时所必需的有关寄存器内容或源程序的存储器的存储地址等,主程序调用子程序时必须先满足入口条件,换句话说就是满足子程序对输入参数的约定。 出口参数就是指子程序执行完之后运算结果所存放的寄存器或存储器地址等,也就是说,必须确定主程序对输出参数的约定。 通常来说,参数的传递有通过寄存器传递、通过变量传递、通过堆栈传递几种。 7.3C语言程序设计7.3.1顺序结构7.3.2选择结构7.3.3循环结构7.3.4子程序设计7.4程序设计举例7.4.1数字显示【例例7-9】利用B口控制数码管依次显示示09。 ( (1)数字显示原理数码管是由发光二极管作为显示字段的数码型显示器件。 如图7-12所示,7只发光二极管分别对应ag,另外一只发光二极管显示小数点,这种LED显示器称为八段数码管。 图77-12数码管LED数码管按照电路连接方式可分为共阴极和共阳极两种类型。 共阴极将各段发光二极管的负极连接在一起,作为公共端;共阳极将各段发光二极管的正极连接在一起,作为公共端。 七段数码管的8个个LED某些发亮、某些不亮,通过人眼在大脑形成数字。 以显示数字“0”为例,当发光二极管a、b、c、d、e、f发亮,而g、dp不亮时,给人的感觉是显示数字“0”。 ( (2)硬件电路硬件电路如图7-13所示。 图77-13控制数码管显示数字( (3)参考程序#define P_IOB_Data(volatile unsigned int*)0x7005#define P_IOB_Dir(volatile unsigned int*)0x7007#define P_IOB_Attrib(volatile unsignedint*)0x7008#define P_Watchdog_Clear(volatile unsignedint*)0x7012unsignedintduanma10=0x00fc,0x0060,0x00da,0x00f2,0x0066,/012340x00b6,0x00be,0x00e0,0x00fe,0x00f6;/56789/*/void delay(unsigned longint i)/延时子程序while(i-)*P_Watchdog_Clear=0x0001;/不断清看门狗/*/int main()unsignedinti=0;*P_IOB_Dir=0xffff;*P_IOB_Attrib=0xffff;*P_IOB_Data=0xffff;loop1:*P_IOB_Data=duanmai;delay (50000);i=i+1;if(i10)i=0;goto loop1;( (4)电路分析凌阳单片机的B口的第7引脚IOB7控制共阴极数码管的a引脚,B口的第6引脚IOB7控制数码管的b引脚如果要显示数字“0”,需要a、b、c、d、e、f发亮,也就是说,需要B口的第 7、 6、 5、 4、 3、2引脚为高电平;而g不亮,需要B口的第1引脚为低电平,此时给人的感觉是显示数字“0”,如表7-7所示。 数字自然语言共阴极

温馨提示

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

评论

0/150

提交评论