1 / 20

第五章 汇编语言程序设计基础

第五章 汇编语言程序设计基础. 5 . 1 汇编语言应用程序设计的一般格式. 5 . 2 简单结构程序. 5 . 3 分支结构程序. 5 . 4 循环结构程序. 5 . 5 子程序结构程序. 5 . 6* 查表程序. 5 . 7* 查键程序. 5 . 8* 显示程序. 5 . 1 汇编语言应用程序设计的一般格式 5.1.1 单片机汇编语言程序设计的基本步骤 1. 设计任务的分析、确定算法或思路 2.  程序的总体设计及流程图 3. 编写源程序。 可在编译软件下编程(如 Wave 、

arwen
Download Presentation

第五章 汇编语言程序设计基础

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 汇编语言程序设计基础 5.1汇编语言应用程序设计的一般格式 5.2简单结构程序 5.3分支结构程序 5.4循环结构程序 5.5子程序结构程序 5.6*查表程序 5.7*查键程序 5.8*显示程序

  2. 5.1汇编语言应用程序设计的一般格式 5.1.1单片机汇编语言程序设计的基本步骤 1.设计任务的分析、确定算法或思路 2.  程序的总体设计及流程图 3. 编写源程序。可在编译软件下编程(如Wave、 Medwin、记事本等),要求简练、层次清楚、 字节数少、执行时间少等。 4.源程序的汇编与调试(在编译软件中进行) 5.编写程序说明文件 例如:

  3. N 第一位? 退出 初始化 Y 接收 键扫描 N 未位? N 键按下? Y 延时 60mS Y 判定输出 发送编码 中断 开始 返回

  4. 过程框: 表示程序要做的事 判断框: 表示条件判断 开始结束框: 表示流程的开始或终止 连接框: 表示程序流向连接 换页连接框: 表示流程换页连接 程序流向: 表示程序的流向 其中各图标的意义如下:

  5. 5.1.2 汇编语言程序的设计方法 掌握三点: 1.汇编程序的基本结构总是由简单程序、分支程序、循环程序、查表程序、子程序、中断程序等结构化的程序模块有机组成的。 2.划分功能模块进行设计。 3.自上而下逐渐求精。

  6. 5.1.3常用的伪指令 1.标号等值伪指令——EQU 格式为: 名字 EQU 表达式 意义: 名字 = 表达式 例如:自行车里程车速计中的定义 VSDA EQU P1.5 ; EEP数据传送口 VSCL EQU P1.4 ; EEP时钟传送口 DPHH EQU 62H ; DPTR计数扩展高8位 TH1H EQU 6CH ; 定时器T1扩展高8位 TH1HH EQU 6DH ; 定时器T1扩展高8-16位

  7. 5.1.3常用的伪指令 2.标号等值伪指令——DL 格式为: 名字 DL 表达式 DL伪定义可以重复定义 3.数据存储说明伪定义——DB 格式为: (标号) DB (表达式或数据串) 例如: TAB:DB 00H,14H,45H,0FEH,56H,33H,55H,99H DB 89H,0DFH,55H,66H,77H,88H,23H,65H

  8. 5.1.3常用的伪指令 4.数据伪定义——DW 格式为: (标号) DW (双字节表达式或数据串) 例如: TAB:DW 0013H,1456H,45DFH,0FE12H,5600H 5.存储区说明伪指令——DS 格式为: (标号) DS (数据表达式) 意义: 从标号开始预留空间 BASE: DS 0100H ;从标号BASE开始空出256个单元

  9. 5.1.3常用的伪指令 6.程序起始地址伪定义——ORG 格式:ORG 16位地址 意义: 用来定位程序在ROM中存放的起始地址, 如: ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI

  10. 5.1.3常用的伪指令 7.内存命名伪定义——DATA 格式: 名字 DATA 直接地址 意义: 给某一内存单元取名,如: ADDR1 DATA 30H ADDR2 DATA 31H ADDR3 DATA 32H ADDR4 DATA 33H 另外还有IDATA、XDATA伪定义分别给间接寻址空间内存(80H-FFH)和片外(100H-FFFFH)内存单元命名。

  11. 5.1.3常用的伪指令 8.位单元命名伪定令——BIT 格式: 名字 BIT 位地址 意义: 给某一位单元取名,如: KEY0 BIT P1.0 KEY1 BIT P1.1 FLAG BIT 00H 9.程序结束伪指令——END 格式: END 意义:表示程序至此结束,以下行内容不再编译。

  12. 5.1.4 单片机汇编语言程序的一般格式 ;********************* ;程序说明区 ;********************* 定义说明区 ;要求放在最前面 ;********************* 主程序及中断入口区 ;要求放在第二 ;********************* 主程序区 ;随意位置 ;********************** 各类子程序或功能程序区 ;随意位置 ;********************** ;中断服务程序区 ;随意位置 ;********************** END ; 例子

  13. 5.2简单结构程序 简单结构程序又叫顺序程序,程序从第一条指令开始一直执行到最后一条,无分支,无循环。 例如双字节加法程序:

  14. 5.3分支结构程序 1.单分支结构程序 单分支结构程序只有一个入口,二个出口,根据条件的判断选择出口。例如: START: ACALL CLEAR ;调用初始化子程序 STAR1: MOV P3,#0FFH ;置P3口为输入状态 JNB P3.0,FUN0 ; P3.0为0转FUN0执行 LJMP FUN1 ; P3.0为1转FUN1执行

  15. 5.3分支结构程序 2.多分支结构程序 多分支结构程序指一个入口,多个出口,根据条件选择执行一个程序。例如键功能散转程序: MOV DPTR,#KEYFUNTAB ;装入键功能标号首址 JMP @A+DPTR ;散转 KEYFUNTAB:LJMP KEYFUN00 ;跳到KEYFUN00 LJMP KEYFUN01 ;跳到KEYFUN01 LJMP KEYFUN02 ;跳到KEYFUN02 . RET ;

  16. 5.4循环结构程序 循环结构程序用以控制一个程序多次重复执行,当条件条件满足时退出循环。有初始化、循环处理、判断、结束处理等组成。例如采用12MHZ晶振的513μs延时程序: DL513: MOV R2,#0FFH DELAY1: DJNZ R2,DELAY1 RET

  17. 5.5子程序结构程序 一些经常要用的程序一般设计成子程序,以便给其它程序经常调用。子程序必须具有程序标号,结束必须用RET指令。调用时用LCALL、ACALL等指令。 例如:延时程序、显示程序等。 DL513UF: MOV R2,#0FFH DELAY1: DJNZ R2,DELAY1 RET

  18. 5.6查表程序 查表程序用MOVC指令,用于访问(查)程序存储器中的固定数表,如用于七段LED数码管显示的程序中就用到了查表指令。 例如:

  19. 5.7查键程序 具有按键控制功能的单片机应用系统都有查键功能程序,有简单的顺序查键及复杂的行列式查键。 例1:顺序查键程序 START:MOV P3,#0FFH ;置P3口为输入口 JNB P3.0,FUN0 ;P3.0口为0转FUN0 JNB P3.1,FUN1 ;P3.1口为0转FUN1 JNB P3.2,FUN2 ;P3.2口为0转FUN2 JNB P3.3,FUN3 ;P3.3口为0转FUN3 AJMP START ;转START循环 例2:32键行列式查键程序(4×8)

  20. 5.8显示程序 LED七段数码管显示程序采用动态扫描法,先将要显示的数据通过查表得到段码数据,然后放入输出口,再将相应的数码管点亮,以此循环。以下是一个四位LED共阳数码管显示程序,用P1口及P3口作显示扫描口,数据在P1口输出,列扫描在P3.0-P3.3口。 显示程序例子

More Related