单片机汇编讲义精.ppt
《单片机汇编讲义精.ppt》由会员分享,可在线阅读,更多相关《单片机汇编讲义精.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机课件汇编讲义第1页,本讲稿共63页通知:n考试时间:教学16周星期三(12月16号)下午5-6节(13:30开始)n考试地点:一教304、305、306教室第2页,本讲稿共63页第七章第七章 汇编语言程序设计基础汇编语言程序设计基础单片机系统中编程语言:单片机系统中编程语言:n以汇编语言为主以汇编语言为主n高级语言高级语言C-51n汇编语言:源程序结构紧凑、灵活、汇编成目标汇编语言:源程序结构紧凑、灵活、汇编成目标程序效力高,占用內存资源少,运行速度快和实程序效力高,占用內存资源少,运行速度快和实时性,适合实时测控等应用领域。时性,适合实时测控等应用领域。n应用程序主要应用范围:如下图所
2、示应用程序主要应用范围:如下图所示第3页,本讲稿共63页应用程序主要由以下三类程序组成 过程检测 巡回检测程序 数字滤波程序 处理和监视 线性化处理 测量值与工程值转换程序 应用 越限报警程序 控制操作台服务程序 判断程序 过程分析程序 过程控制 开环控制程序 PID算法 采样控制器 程序 计算程序 闭环控制程序 系统输入/出控制算法 其他算法 输出控制程序 事故处理程序 公共应用程序 制表打印程序 服务子程序 第4页,本讲稿共63页程序设计概述n汇编程序设计的基本步骤汇编程序设计的基本步骤n设计任务的分析,确定算法和思路设计任务的分析,确定算法和思路n程序总体设计及其流程图程序总体设计及其流
3、程图n编写源程序编写源程序n源程序的汇编与调试源程序的汇编与调试n编写源程序说明文件编写源程序说明文件第5页,本讲稿共63页程序设计概述n汇编语言程序设计方法汇编语言程序设计方法n汇编语言源程序的基本结构汇编语言源程序的基本结构n划分功能模块划分功能模块n自上而下逐步求精自上而下逐步求精第6页,本讲稿共63页应用程序设计技术功能性设计功能性设计 1 1运行结构设计:运行结构设计:n满足功能条件下,有简捷、可靠运行路径满足功能条件下,有简捷、可靠运行路径n软件模块化,任务划分相对独立的硬件环境软件模块化,任务划分相对独立的硬件环境n划定边界条件:交换条件、数据类型、资源分划定边界条件:交换条件、
4、数据类型、资源分配配 第7页,本讲稿共63页应用程序设计技术2 2任务单元设计:任务单元设计:n划分子程序:相对独立性、完整性、通用性。划分子程序:相对独立性、完整性、通用性。n占用公共资源最少占用公共资源最少n出入口规范清楚交接面简单、清晰、规范、操出入口规范清楚交接面简单、清晰、规范、操作类型尽量集中作类型尽量集中第8页,本讲稿共63页应用程序设计技术3 3可靠性设计:可靠性设计:n足够的时序余度,足够的容错设计。足够的时序余度,足够的容错设计。n可靠性控制设计:系统安全、保护、可靠性控制设计:系统安全、保护、自检、修复。自检、修复。第9页,本讲稿共63页应用程序设计技术4 4运行管理设计
5、:运行管理设计:1 1低功耗运行管理低功耗运行管理n休闲、掉电设置(休闲、掉电设置(80518051具备)具备)n双时钟:主时钟高速运行、子时钟低双时钟:主时钟高速运行、子时钟低速运行可设置调整速运行可设置调整n主时钟下分频管理:控制主时钟下分频管理:控制CPUCPU最佳运最佳运行方式行方式第10页,本讲稿共63页应用程序设计技术2 MCU2 MCU对外围电路管理对外围电路管理n可关断的外围端口控制可关断的外围端口控制n可编程外围器件的编程控制可编程外围器件的编程控制n外围辅助电路的时钟、供电与电源管理外围辅助电路的时钟、供电与电源管理第11页,本讲稿共63页程序设计概述程序设计概述n全面了解
6、硬件结构、指令系统、全面了解硬件结构、指令系统、功能要求以及有关算法。功能要求以及有关算法。n节省内存单元、缩短程序长度、节省内存单元、缩短程序长度、加快运行速度。加快运行速度。第12页,本讲稿共63页系统应用程序结构n键操作结构:键操作结构:人机交互式人机交互式n自主运行程序结构:自主运行程序结构:流水作业式流水作业式nRTOSRTOS任务管理嵌入结构:任务管理嵌入结构:(多任务软件平台多任务软件平台)1 1时间管理时间管理 2 2任务调度任务调度 3 3输入输入/出操作出操作 4 4任务间通信任务间通信 5 5任务的同步任务的同步 6 6信息的调用管理信息的调用管理第13页,本讲稿共63页
7、单片机系统应用程序一个重要的条件:实时性:要求控制系统能在短时间作出相应处理地控制信息,第14页,本讲稿共63页常用伪指令n标号赋值伪指令标号赋值伪指令n标号等值伪指令标号等值伪指令-EQUn定义标号值伪指令定义标号值伪指令-DLn数据存储说明伪指令数据存储说明伪指令n定义字节数据伪指令定义字节数据伪指令-DBn定义字数据伪指令定义字数据伪指令-DWn存储器说明伪指令存储器说明伪指令-DSn程序起始地址伪指令程序起始地址伪指令-ORGn汇编结束伪指令汇编结束伪指令-END第15页,本讲稿共63页7.3 应用程序设计与技巧7.3.1 MCS-51源程序的基本格式中断矢量地址在程序存储器的0003
8、H-0032H区间而起始地址比须从0000H开始 复位后系统从0000H开始执行程序0000H-0002H单元放跳转指令 转入主程序段0000H 跳转指令0002H 转主程序 0003H 中断矢量0032H 地址表0050H 主程序 第16页,本讲稿共63页中断矢量地址表 每个中断服务程序地址空间只有8个单元,每个中断矢量地址空间中安排跳转到中断服务程序指令0000H-0002H 0003H0032H中断矢量表跳转中断服务程序指令0050HxxxxH主程序区中断服务程序区转主程序第17页,本讲稿共63页单片机汇编源程序的基本格式单片机汇编源程序的基本格式ORG 0000HAJMP STARTO
9、RG 0003HLJMP INTIE0ORG 000BHLJMP INTTF0ORG 0050HSTART:MOV A,#00HMOV R1,#7FHMOV R0,#00H L0:MOV R0,AINC R0DJNZ R1,LOORG 3000HA0:-ORG 3100HA1:-ORG 4500HINTIE0:-ORG 4800HINTTF0:-ORG 5500HLED:DB 01H,02H,03HDB 04H,05H,06HDB 07H,08H,09HEND主程序中断矢量地址表子程序中断服务程序中断服务程序常数表区起始第18页,本讲稿共63页ORG0000HAJMPSTARTORG0003H
10、AJMP INDATADIS1 EQU 30HDIS2 EQU 31HDIS3 EQU 32HDIS4 EQU 33HAD_DATA EQU 34HADDR_AD EQU OO40HADDR_273_1 EQU 0001HADDR_273_2EQU 0002HADDR_273_3 EQU 0003HADDR_273_4 EQU 0004HADDR_KEY_WR EQU 0005HADDR_KEY_RD EQU 0006HLABBIT7FHSTART:SETBEA;开中断SETBEX0;中断允许SETBIT0;触发方式CLRLAB;请标志位MOVA,#0FFHMOVDPTR,#ADDR_ADMO
11、VXDPTR,A;启动ADJNBLAB,$;查询标志位SJMP$;等待INDATA:MOV DPTR,#ADDR_ADMOVA,#0FFHMOVXA,DPTR;读ADMOVAD_DATA,A;保存ADSETBLAB;置标志位RETIAD中断服务程序主程序设置RAM有关字节单元定义译码地址设置RAM有关 位 单元AD转换启动电子工程设计-控温系统第19页,本讲稿共63页电子工程设计电子工程设计-控温系统控温系统:显示系统显示系统 第20页,本讲稿共63页电子工程设计电子工程设计-控温系统:控温系统:键盘管理键盘管理 第21页,本讲稿共63页ORG0000HAJMPSTARTORG0003HAJM
12、P INDATADIS1 EQU 30HDIS2 EQU 31HDIS3 EQU 32HDIS4 EQU 33HAD_DATA EQU 34HADDR_AD EQU OO40HADDR_273_1 EQU 0001HADDR_273_2EQU 0002HADDR_273_3 EQU 0003HADDR_273_4 EQU 0004HADDR_KEY_WR EQU 0005HADDR_KEY_RD EQU 0006HLABBIT7FHSTART:SETBEA;开中断SETBEX0;中断允许SETBIT0;触发方式CLRLAB;请标志位MOVA,#0FFHMOVDPTR,#ADDR_ADMOVXD
13、PTR,A;启动ADJNBLAB,$;查询标志位SJMP$;等待INDATA:MOV DPTR,#ADDR_ADMOVA,#0FFHMOVXA,DPTR;读ADMOVAD_DATA,A;保存ADSETBLAB;置标志位RETIAD中断服务程序主程序设置RAM有关字节单元定义译码地址设置RAM有关 位 单元AD转换启动电子工程设计-控温系统(AD数据采集)第22页,本讲稿共63页电子工程设计:数据采集INT0第23页,本讲稿共63页程序设计基础和举例 1)拆字程序:将一个字节的两个BCD码十进制数拆开,并变成相应的ASCII码,存入两个RAM单元中.功能:一个字节BCD码转成两字节ASCII码
14、RAM:30H存放BCD码 31H存放高位转换值 32H存放低位转换值 ASCII码对应数字0-9是30-39,所以只要加上#30H(0011,0000)既可00110011第24页,本讲稿共63页 MOV R0,#32H ;将32H送R0 MOV R0,#00H ;32H单元清零 MOV A,30H ;BCD码送A XCHD A,R0 ;将低4位BCD送32H(低四位互换)ORL 32H,#30H ;将#30H加入32H单元 SWAP A ;将高位BCD调整到低位 ORL A,#30H ;将#30H加入A形成ASCII码 MOV 31H,A ;将高位BCD送31H单元第25页,本讲稿共63页
15、 例2:多分支转换读取存储器的内容 功能:根据入口条件转向几个分支 (R3)=(0,1,2,3)入口条件:0 内部RAM,1 外部256个单元,2 外部64K,3 外部4K (R0)出口 RAM低8位地址 (R1)出口 RAM高8位地址 第26页,本讲稿共63页 (A)=0 1.2 3内RAM 外RAM 外RAM 外RAM256 256 64K 4K第27页,本讲稿共63页键盘处理程序键盘处理程序键盘处理 键号-A入口地址 A+DPTR键散转 JMPA+DPTR键位1键位2键位3键位N第28页,本讲稿共63页N-JMP:MOV A,R3 ;入口条件入口条件MOV DPTR,#JMPTBL ;转
16、移表首址转移表首址 MOVC A,A+DPTR ;取变量取变量JMP A+DPTR ;变量加转移表首址变量加转移表首址 JMPTBL:DB MEM0 JMPTBL ;求转移长度求转移长度 DB MEM1 JMPTBL ;求转移长度求转移长度 DB MEM2 JMPTBL ;求转移长度求转移长度 DB MEM3 JMPTBL ;求转移长度求转移长度第29页,本讲稿共63页MEM0:MOV A,R0 ;从内存RAM读数256 RETMEM1:MOVX A,R0 ;从外部RAM读数256 RET MEM2:MOV DPL,R0 MOV DPH,R1 MOVX A,DPTR ;从外部64KRAM读数
17、RET 第30页,本讲稿共63页 MEM3:;读取外部4kMOV A,R1 ;RAM高8位地址送AANL A,#0FH ;屏蔽高4位,剩下A11-A8低4位ANL P2,#F0H ;清除P2口低4位ORL P2,A ;(P2口)+(A)=(P2+(R1低4位)P2MOVX A,R0;原P2口高4位 R1低4位 R0低8位RET 原P2口高4位 R1低4位 R0第31页,本讲稿共63页访问四个不同位置RAM空间:MOV A,R3 ;输入变量 MOV DPTR,#JMPTBL ;形成转移表首址MOVC A ,A+DPTR ;变量+首址送AJMP A+DPTR ;完成目标地址的转移第32页,本讲稿共
18、63页查表程序 8051汇编语言中设计俩条查表指令 MOVC A,A+DPTR MOVC A,A+PC 例如:将十六进制数转换成ASCII码的子程序。十六进制数放在R0低四位,转换成结果放回R0中。出口和入口都在R0中。ORG 2160H MOV A,R0 DB 30H,31H,32H ANL A,#0FH ;保留低四位 DB 33H,34H,35H ADD A,#02 ;变址调整 DB 36H,37H,38H MOVC A,A+PC ;查表 DB 39H,41H,42H MOV R0,A ;保存结果 DB 43H,44H,45H,46H RET 第33页,本讲稿共63页查表程序 (LED显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 汇编 讲义
限制150内