计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件

上传人:aa****6 文档编号:54244238 上传时间:2018-09-10 格式:PPT 页数:53 大小:694KB
返回 下载 相关 举报
计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件_第1页
第1页 / 共53页
计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件_第2页
第2页 / 共53页
计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件_第3页
第3页 / 共53页
计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件_第4页
第4页 / 共53页
计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件》由会员分享,可在线阅读,更多相关《计算机常用的编程语言程序设计是为解决某个问题而用计算机所能接ppt培训课件(53页珍藏版)》请在金锄头文库上搜索。

1、计算机常用的编程语言 程序设计是为解决某个问题而用计算机所能接受的语言描述其操作过程的语句序列。除了汇编语言外,单片机程序设计语言还有两类:机器语言和高级语言。机器语言(Machine Language)是指直接用机器码编写程序、能够为计算机直接执行的机器级语言。机器码是一串由二进制代码“0”和“1”组成的二进制数据,其执行速度快,但是可读性极差。机器语言一般只在简单的开发装置中使用,程序的设计、输入、修改和调试都很麻烦,在实训实验中直接固化或输入的程序都是机器语言程序。,第4章 汇编语言程序设计 4.1 概 述,汇编语言(Assembly Language)是指用指令助记符代替机器码的编程语

2、言。汇编语言程序结构简单,执行速度快,程序易优化,编译后占用存储空间小,是单片机应用系统开发中最常用的程序设计语言。汇编语言的缺点是可读性比较差,只有熟悉单片机的指令系统,并具有一定的程序设计经验,才能研制出功能复杂的应用程序。高级语言(High-Level Language)是在汇编语言的基础上用自然语言的语句来编写程序,例如PL/M-51、Franklin C51、MBASIC 51等,程序可读性强,通用性好,适用于不熟悉单片机指令系统的的用户。高级语言编写程序的缺点是实时性不高,结构不紧凑,编译后占用存储空间比较大,这一点在存储器有限的单片机应用系统中没有优势。,汇编语言程序的伪指令,伪

3、指令:控制汇编程序的指令,但不是控制单片机操作的指令,没有机器码。 1. 定位伪指令ORG 格式: ORG XXXX 或 标号地址。 作用:说明下面紧接的程序段或数据段存放的起始地址。 例如:ORG 1000H;指示后面的程序或数据块以 1000H为起始地址连续存放。 若省略ORG伪指令,则该程序段从ROM中0000H单元开始存放。 在一个源程序中,可以多次使用ORG伪指令,但地址值由小到大依序排列,不允许空间重叠。,汇编语言程序的伪指令,2. 字节数据定义伪指令 DB 格式:标号: DB 字节数据表。 作用:从标号指定的地址单元开始,在ROM中存放8位字节数据。 将字节数据根据从左到右的顺序

4、依次存放在指定的存储单元中,一个数据占一个存储单元。 字节数据表可以是字符、十进制、十六进制、二进制等。该伪指令常用于存放数据表格。,汇编语言程序的伪指令,3. 字数据定义伪指令 DW 格式为:标号: DW 字数据表。 作用:从标号指定的地址单元开始,在ROM中定义字数据。 将数据根据从左到右的顺序依次存放在指定的存储单元中。 应特别注意:16位的二进制数,高8位存放在低地址单元,低8位存放在高地址单元。,汇编语言程序的伪指令,例如: ORG 1000HSEG1: DB 53H,78H , “2”SEG2: DB DAYEND则 (1000H)=53H(1001H)=78H(1002H)=32

5、H ;32H为“2”的ASCII码(1003H)=44H ;44H为“D”的ASCII码(1004H)=41H ;41H为“A”的ASCII码(1005H)=59H ;59H为“Y”的ASCII码 如果操作数为数值,其取值范围应为00HFFH; 若为字符串,其长度应限制在80个字符内。,汇编语言程序的伪指令,4. 数据地址赋值伪指令 DATA 格式为:符号名 DATA 数或表达式 DATA伪指令与EQU类似。但有些差别:(1) 用DATA定义的标识符可以先使用后定义,而EQU定义的必须先定义后使用。(2) 用EQU可以把一个汇编符号赋给字符名,而DATA只能把数据赋给字符名。(3) DATA可

6、以把一个可求值表达式赋给字符名。 【例】 MAIN DATA 2000H汇编后MAIN的值为2000H。,汇编语言程序的伪指令,5. 赋值伪指令 EQU 格式为:符号名 EQU 表达式。 作用:将表达式的值或特定的某个汇编符号定义为一个指定的符号名。 【例】 SG EQU R0 ;SG与R0等值DE EQU 40H ;DE与40H等值MOV A, SG ;(A)(R0)MOV R7, #DE ;(R7)40H,汇编语言程序的伪指令,6. 位地址符号定义伪指令 BIT 格式为:符号名 BIT 位地址表达式 作用:将位地址赋给指定的符号名。 其中,位地址表达式可以是绝对地址,也可以是符号地址。 【

7、例】 MN BIT P1.7G5 BIT 02H汇编后,位地址P1.7、02H分别赋给变量MN和G5。,汇编语言程序的伪指令,7. 汇编结束伪指令 END 格式:END。 作用:结束汇编。 汇编程序遇到END伪指令后即结束汇编。 处于END之后的程序,汇编程序软件将不处理。,4.2 程序设计步骤与方法 目前,大多数用户仍然使用汇编语言进行单片机应用系统的软件设计,本章将介绍MCS-51单片机汇编语言的程序设计方法。单片机汇编语言程序设计的基本步骤如下:(1) 分析问题抽象出描述问题的数学模型。熟悉并了解汇编语言指令的基本格式和主要特点,明确被控对象对软件的要求,设计出算法等。(2) 确定解决问

8、题的算法。算法是进行程序设计的依据,它决定程序的正确性和程序的质量。同一数学模型,可以有不同的算法。,(3) 画出程序流程图。编写较复杂的程序,画出程序流程图是十分必要的。程序流程图也称为程序框图,是根据控制流程设计的,它可以使程序清晰,结构合理,便于调试(4) 分配内存工作区及有关端口地址。分配内存工作区,要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。(5) 编制汇编源程序。(6) 仿真、调试程序。(7) 固化程序。,4.2.1 程序设计步骤与方法,汇编语言源程序设计通常采用结构化设计方法,任何复杂的程序都可分解为:

9、顺序结构部分 分支结构部分 循环结构部分 子程序部分,4.2.2 顺序程序设计,【例】【功能】求变量X()的平方。 【入口参数】X值存放在片内RAM的30H单元 【出口参数】X2值存放在片内RAM的31H单元程序框图如图4.1所示。ORG 1000H START:MOV DPTR,#2000HMOV A,30HMOVC A,A+DPTR MOV 31H,ASJMP $ORG 2000H TABLE:DB 00,01,04,09,16,25END 特点:从第一条指令开始顺序执行,直到最后一条指令,图4.1 顺序程序流程图,4.2.3 分支程序设计,分支:根据某种标志改变程序执行的顺序。 一般分为

10、单分支、多分支。 分支流程图如图4.2所示。,(a) 单分支 (b)多分支 图4.2 分支程序流程图,4.2.3 分支程序设计,1. 单分支 【例】 【功能】某装置有自动/手动控制按键,按键状态由P1.0口输入;高电平为自动控制,低电平为手动控制 【入口参数】P1.0 CY:JB P1.0,AUTO HC:LJMP CY AUTO:LJMP CY,4.2.3 分支程序设计,2. 多分支包括一般多分支和散转多分支。1) 一般多分支【例】【功能】x、y均为8位二进制数,求解:【入口参数】(R0)=x。【出口参数】(R1)=y。,4.2.3 分支程序设计,START: CJNE R0, #00H,

11、SUL1;判断R0是否为0,为0转SUL1MOV R1, #00HSJMP SUL2SUL1: JC NEG ;小于0转NEGMOV R1, #01HSJMP SUL2NEG : MOV R1, #0FFHSUL2: RET,4.2.3 分支程序设计,2) 散转多分支程序根据某种输入或运算的结果转向各个处理程序称为散转多分支,即散转程序。 (1) 利用转移指令表实现转移将转移到不同程序的转移指令列成表格,判断条件后查表,执行表中的转移指令。 【例】 【功能】某菜单有9项。根据输入数码转去执行相应的子程序。即输入“1”,执行子程序1;输入“2”,执行子程序2;依次类推。,4.2.3 分支程序设计

12、,【分析】用直接转移指令组成一个转移表,然后把菜单号读入累加器(A),转移表首地址放入DPTR中,利用JMP A+DPTR实现散转。 【入口参数】(R3)=存输入键盘码19。 【出口参数】转移到相应的子程序入口。ORG 0030H KEY_JMP:MOV DPTR, #TAB1;子程序入口首地址送DPTRMOV A, R3;把键盘输入缓冲区内容送累加器(A)DEC A ;由于输入数码为19,因此需减1MOV B, #03H,4.2.3 分支程序设计,MUL AB ;由于长跳转指令LJMP占用3B, ;各子程序入口地址相距3BJMP A+DPTR ;根据输入码,执行相应的子程序ORG 2000H

13、 ;程序入口地址表 TAB1: LJMP NO1LJMP NO2LJMP NO3LJMP NO4LJMP NO5LJMP NO6LJMP NO7LJMP NO8LJMP NO9END,4.2.3 分支程序设计,(2) 利用转向地址表实现转移这种方法将转移地址列成表格,将表格的内容作为转移的目标地址。 【例】 【功能】根据R3(0n)的内容转向对应的程序;处理程序的入口符号地址分别为PR0PRn(n256) 【分析】 将PR0 PRn入口地址列在表格中,每一项占两个单元; PRn在表中的偏移量为2n,因此将R3的内容乘“2”即得PRn在表中的偏移地址; 从偏移地址2n和2n+1两个单元分别取出P

14、Rn的高8位地址和低8位地址送DPTR寄存器,用JMP A+DPTR指令(A先清零)即转移到PRn入口执行。,4.2.3 分支程序设计,【入口参数】(R3)=0n 转移。 【出口参数】转移到相应的子程序入口。PR0 EQU 0110HPR1 EQU 0220HPR2 EQU 0330HORG 0030HKEY_JMP: MOV DPTR, #TAB MOV A,R3ADD A,R3 ;(A)(R3)*2JNC NADDINC DPH ;(R3*2)256,4.2.3 分支程序设计,NADD: MOV R3,AMOVC A, A+DPTRXCH A, R3 ;转移地址高8位INC AMOVC A

15、, A+DPTRMOV DPL,A ;转移地址低8位MOV DPH, R3CLR AJMP A+DPTRTAB: DW PR0,PR1,PR2, PRnPR0: 处理程序0PR1: 处理程序1 PRn: 处理程序nEND,4.2.3 分支程序设计,(3) 利用地址偏移量表实现散转这种方法将转移目标地址与表首地址差列表,作为转移目标地址。 【例】 【功能】有5个按键 0,1,2,3,4,根据按下的键转向不同的处理程序,分别为PR0,PR1,PR2,PR3,PR4。 【分析】汇编时,利用了伪指令的数学计算功能,标首地址加上处理程序与标首地址差转到处理程序。 【入口参数】(B)=转向程序号(键盘编码)。 【出口参数】转移到相应的子程序入口。,4.2.3 分支程序设计,ORG 0030HKEY_JMP: MOV A, BMOV DPTR, #TABMOVC A,A+DPTRJMP A+DPTRTAB: DB PR0-TABDB PR1-TABDB PR2-TABDB PR3-TABDB PR4-TABPR0: 处理程序0PR1: 处理程序1PR2: 处理程序2PR3: 处理程序3PR4: 处理程序4END,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号