




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业服务质量管理实战指南
- 工作流程优化办公空间需求表
- 项目执行过程中的经验教训总结与成果展示
- 寓言故事中的社会现象解读与反思
- 艺术创作绘画技巧知识题库
- 智能制造产业链协同合作协议
- 制造业自动化技术应用题库
- 企业研发新产品试制合同
- 商务会议中的合作往来文书范本
- 体育产业发展项目投资协议
- 城区绿地养护服务费项目成本预算绩效分析报告
- 新部编人教版六年级道德与法治下册全册全套课件
- 粮油机械设备更新项目资金申请报告-超长期特别国债投资专项
- 《中国古代寓言》导读(课件)2023-2024学年统编版语文三年级下册
- 个体户的食品安全管理制度文本
- 部编版道德与法治七年级下册每课教学反思
- 自考14237《手机媒体概论》备考试题库(含答案)
- LKJ2000型监控装置特殊情况下的操作课件讲解
- 高考英语688高频词汇excel版
- QCT1170-2022汽车玻璃用功能膜
- HG/T 6312-2024 化工园区竞争力评价导则(正式版)
评论
0/150
提交评论