




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 4.1汇编语言应用程序设计的一般格式 4.2简单结构程序 4.3分支结构程序 4.4循环结构程序4.5子程序结构程序 第四章 汇编语言程序设计基础 4.6*查表程序 4.7*查键程序 4.8*LED显示程序设计实例4.1.1单片机汇编语言程序设计的基本步骤 1. 设计任务的分析、确定算法或思路 2. 程序的总体设计及流程图 3. 编写源程序。可在编译软件下编程(如Wave、edwin、记事本等),要求简练、层次清楚、 字节数少、执行时间少等。 4.源程序的汇编与调试(在编译软件中进行) 5.编写程序说明文件 例如:41汇编语言应用程序设计的一般格式中断开始NYYNYN键按下?初始化键扫描发送
2、编码判定输出接收第一位?未位?退出延时60mS返回其中各图标的意义如下: 过程框: 表示程序要做的事判断框: 表示条件判断开始结束框: 表示流程的开始或终止连接框: 表示程序流向连接换页连接框: 表示流程换页连接 程序流向: 表示程序的流向4.1.2 汇编语言程序的设计方法掌握三点:1汇编程序的基本结构总是由简单程序、分支程序、循环程序、查表程序、子程序、中断程序等结构化的程序模块有机组成的。2划分功能模块进行设计。3自上而下逐渐求精。4.1.3 常用的伪指令1标号等值伪指令EQU 格式为: 名字 EQU 表达式 意义: 名字 = 表达式例如:自行车里程车速计中的定义 VSDA EQU P1.
3、5 ; EEP数据传送口 VSCL EQU P1.4 ; EEP时钟传送口 DPHH EQU 62H ; DPTR计数扩展高8位 TH1H EQU 6CH ; 定时器T1扩展高8位 TH1HH EQU 6DH ; 定时器T1扩展高8-16位4.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,65H4.1.3 常用的伪指令4数据伪定义DW格
4、式为: (标号) DW (双字节表达式或数据串)例如:TAB:DW 0013H,1456H,45DFH,0FE12H,5600H5存储区说明伪指令DS格式为: (标号) DS (数据表达式)意义: 从标号开始预留空间BASE: DS 0100H ;从标号BASE开始空出256个单元4.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 RE
5、TI ORG 002BH RETI4.1.3 常用的伪指令7.内存命名伪定义DATA格式: 名字 DATA 直接地址意义: 给某一内存单元取名,如:ADDR1 DATA 30HADDR2 DATA 31HADDR3 DATA 32HADDR4 DATA 33H 另外还有IDATA、XDATA伪定义分别给间接寻址空间内存(80H-FFH)和片外(100H-FFFFH)内存单元命名。4.1.3 常用的伪指令8.位单元命名伪定令BIT格式: 名字 BIT 位地址意义: 给某一位单元取名,如:KEY0BIT P1.0KEY1BIT P1.1FLAG BIT 00H 9.程序结束伪指令END格式: EN
6、D意义:表示程序至此结束,以下行内容不再编译。4.1.4 单片机汇编语言程序的一般格式;*;程序说明区;*定义说明区 ;要求放在最前面;*主程序及中断入口区 ;要求放在第二;*主程序区 ;随意位置;*各类子程序或功能程序区 ;随意位置;*;中断服务程序区 ;随意位置;*END;例子4.2 简单结构程序 简单结构程序又叫顺序程序,程序从第一条指令开始一直执行到最后一条,无分支,无循环。例如双字节加法程序:4.3 分支结构程序1单分支结构程序 单分支结构程序只有一个入口,二个出口,根据条件的判断选择出口。例如: START: ACALL CLEAR ;调用初始化子程序 STAR1: MOV P3,
7、#0FFH ;置P3口为输入状态 JNB P3.0,FUN0 ; P3.0为0转FUN0执行 LJMP FUN1 ; P3.0为1转FUN1执行4.3 分支结构程序2多分支结构程序 多分支结构程序指一个入口,多个出口,根据条件选择执行一个程序。例如键功能散转程序:MOVDPTR,#KEYFUNTAB ;装入键功能标号首址JMPA+DPTR ;散转KEYFUNTAB:LJMPKEYFUN00 ;跳到KEYFUN00LJMPKEYFUN01 ;跳到KEYFUN01LJMPKEYFUN02 ;跳到KEYFUN02.RET;4.4 循环结构程序 循环结构程序用以控制一个程序多次重复执行,当条件条件满足
8、时退出循环。有初始化、循环处理、判断、结束处理等组成。例如采用12MHZ晶振的513s延时程序:DL513: MOV R2,#0FFHDELAY1: DJNZ R2,DELAY1RET4.5 子程序结构程序 一些经常要用的程序一般设计成子程序,以便给其它程序经常调用。子程序必须具有程序标号,结束必须用RET指令。调用时用LCALL、ACALL等指令。例如:延时程序、显示程序等。DL513UF: MOV R2,#0FFHDELAY1: DJNZ R2,DELAY1RET4.6 查表程序 查表程序用MOVC指令,用于访问(查)程序存储器中的固定数表,如用于七段LED数码管显示的程序中就用到了查表指
9、令。例如:4.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键行列式查键程序(48) 4.8 显示程序 LED七段数码管显示程序采用动态扫描法,先将要显示的数据通过查表得到段码数据,然后放入输出口,再将相应的数码管点亮,以此循环。以下是一个四位LED共阳数码管显示程序,用P1口及P3口作显示扫描口,数据在P1口输出,列扫描在P3.0-P3.3口。 显示程序例子4.8 51系列单片机设计应用程序实例 LED显示内存中8个数据的程序功能要求 (1)能显示内存70H-77H中的数据(1-8)(2)能显示小数点(百位及万位位置显示两个小数点)(3)某位能闪烁(4)能用按键改变数据用动态扫描法显示内存中8个数据的程序4.8 LED显示实验板硬件电路用动态扫描法显示内存中8个数据的程序硬件电路4.8 LED内部结构图4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学毕业论文答辩范文黑板粉笔效果
- 解析汇编化学-11化学实验基础
- 2025年江西省中考数学试卷
- 设备的维修与管理
- 广东省惠州市五校2024-2025学年高二下学期第二次联考生物试卷(有答案)
- 幼儿园春天教案《歌唱春天》
- 【高中语文】高一下学期天一联考语文试题分析课件
- 部编版六年级上册第三单元《竹节人》教案
- 建筑施工特种作业-建筑起重机械安装拆卸工(塔式起重机)真题库-8
- 日语话题题目大全及答案
- 2025发展对象考试题库与参考答案
- 肺癌的护理查房 课件
- 煤矿井巷工程监理规划方案
- 【数学】现实中的变量教学设计 2024-2025学年北师大版数学七年级下册
- 高一语文暑假讲义-初高衔接06:阅读基本功句子含义的理解(教师版)
- 煤矿安全用电培训课件
- 露营地自然灾害应急预案
- 实验室生物安全委员会及职责
- 《船舶制造过程》课件
- 特种设备日管控、周排查、月调度模板
- 儿童脓毒血症护理
评论
0/150
提交评论