单片机幻灯片:8汇编讲义

上传人:F****n 文档编号:88144967 上传时间:2019-04-19 格式:PPT 页数:63 大小:192.50KB
返回 下载 相关 举报
单片机幻灯片:8汇编讲义_第1页
第1页 / 共63页
单片机幻灯片:8汇编讲义_第2页
第2页 / 共63页
单片机幻灯片:8汇编讲义_第3页
第3页 / 共63页
单片机幻灯片:8汇编讲义_第4页
第4页 / 共63页
单片机幻灯片:8汇编讲义_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《单片机幻灯片:8汇编讲义》由会员分享,可在线阅读,更多相关《单片机幻灯片:8汇编讲义(63页珍藏版)》请在金锄头文库上搜索。

1、第七章:汇编程序设计,通知:,考试时间:教学16周星期三(12月16号) 下午5-6节(13:30开始) 考试地点:一教304、305、306教室,第七章 汇编语言程序设计基础,单片机系统中编程语言: 以汇编语言为主 高级语言C-51 汇编语言:源程序结构紧凑、灵活、汇编成目标程序效力高,占用內存资源少,运行速度快和实时性,适合实时测控等应用领域。 应用程序主要应用范围:如下图所示,应用程序主要由以下三类程序组成 过程检测 巡回检测程序 数字滤波程序 处理和监视 线性化处理 测量值与工程值转换程序 应用 越限报警程序 控制操作台服务程序 判断程序 过程分析程序 过程控制 开环控制程序 PID算

2、法 采样控制器 程序 计算程序 闭环控制程序 系统输入/出控制算法 其他算法 输出控制程序 事故处理程序 公共应用程序 制表打印程序 服务子程序,程序设计概述,汇编程序设计的基本步骤 设计任务的分析,确定算法和思路 程序总体设计及其流程图 编写源程序 源程序的汇编与调试 编写源程序说明文件,程序设计概述,汇编语言程序设计方法 汇编语言源程序的基本结构 划分功能模块 自上而下逐步求精,应用程序设计技术,功能性设计 1运行结构设计: 满足功能条件下,有简捷、可靠运行路径 软件模块化,任务划分相对独立的硬件环境 划定边界条件:交换条件、数据类型、资源分配,应用程序设计技术,2任务单元设计: 划分子程

3、序:相对独立性、完整性、通用性。 占用公共资源最少 出入口规范清楚交接面简单、清晰、规范、操作类型尽量集中,应用程序设计技术,3可靠性设计: 足够的时序余度,足够的容错设计。 可靠性控制设计:系统安全、保护、自检、修复。,应用程序设计技术,4运行管理设计: 1低功耗运行管理 休闲、掉电设置(8051具备) 双时钟:主时钟高速运行、子时钟低速运行可设置调整 主时钟下分频管理:控制CPU最佳运行方式,应用程序设计技术,2 MCU对外围电路管理 可关断的外围端口控制 可编程外围器件的编程控制 外围辅助电路的时钟、供电与电源管理,程序设计概述,全面了解硬件结构、指令系统、功能要求以及有关算法。 节省内

4、存单元、缩短程序长度、加快运行速度。,系统应用程序结构,键操作结构: 人机交互式 自主运行程序结构: 流水作业式 RTOS任务管理嵌入结构:(多任务软件平台) 1时间管理 2任务调度 3输入/出操作 4任务间通信 5任务的同步 6信息的调用管理,单片机系统应用程序一个重要的条件: 实时性: 要求控制系统能在短时间作出相应处理地控制信息,常用伪指令,标号赋值伪指令 标号等值伪指令-EQU 定义标号值伪指令-DL 数据存储说明伪指令 定义字节数据伪指令-DB 定义字数据伪指令-DW 存储器说明伪指令 -DS 程序起始地址伪指令-ORG 汇编结束伪指令-END,7.3 应用程序设计与技巧 7.3.1

5、 MCS-51源程序的基本格式 中断矢量地址在程序存储器的0003H-0032H区间 而起始地址比须从0000H开始 复位后系统从0000H开始执行程序 0000H-0002H单元放跳转指令 转入主程序段,中断矢量地址表 每个中断服务程序地址空间只有8个单元, 每个中断矢量地址空间中安排跳转到中断服务程序指令,单片机汇编源程序的基本格式,ORG 0000H AJMP START ORG 0003H AJMP INDATA DIS1 EQU 30H DIS2 EQU 31H DIS3 EQU 32H DIS4 EQU 33H AD_DATA EQU 34H ADDR_AD EQU OO40H A

6、DDR_273_1 EQU 0001H ADDR_273_2 EQU 0002H ADDR_273_3 EQU 0003H ADDR_273_4 EQU 0004H ADDR_KEY_WR EQU 0005H ADDR_KEY_RD EQU 0006H,LAB BIT 7FH START: SETB EA;开中断 SETB EX0;中断允许 SETB IT0;触发方式 CLR LAB;请标志位 MOV A,#0FFH MOV DPTR,#ADDR_AD MOVX DPTR,A;启动AD JNB LAB,$;查询标志位 SJMP $;等待 INDATA: MOV DPTR,#ADDR_AD MO

7、V A,#0FFH MOVX A,DPTR;读AD MOV AD_DATA ,A;保存AD SETB LAB;置标志位 RETI,AD 中断服务程序,主程序,设置RAM有关字节单元,定义译码地址,设置RAM有关 位 单元,AD转换启动,电子工程设计-控温系统,电子工程设计-控温系统:显示系统,电子工程设计-控温系统:键盘管理,ORG 0000H AJMP START ORG 0003H AJMP INDATA DIS1 EQU 30H DIS2 EQU 31H DIS3 EQU 32H DIS4 EQU 33H AD_DATA EQU 34H ADDR_AD EQU OO40H ADDR_27

8、3_1 EQU 0001H ADDR_273_2 EQU 0002H ADDR_273_3 EQU 0003H ADDR_273_4 EQU 0004H ADDR_KEY_WR EQU 0005H ADDR_KEY_RD EQU 0006H,LAB BIT 7FH START: SETB EA;开中断 SETB EX0;中断允许 SETB IT0;触发方式 CLR LAB;请标志位 MOV A,#0FFH MOV DPTR,#ADDR_AD MOVX DPTR,A;启动AD JNB LAB,$;查询标志位 SJMP $;等待 INDATA: MOV DPTR,#ADDR_AD MOV A,#0

9、FFH MOVX A,DPTR;读AD MOV AD_DATA ,A;保存AD SETB LAB;置标志位 RETI,AD 中断服务程序,主程序,设置RAM有关字节单元,定义译码地址,设置RAM有关 位 单元,AD转换启动,电子工程设计-控温系统(AD数据采集),电子工程设计:数据采集,INT0,程序设计基础和举例 1) 拆字程序: 将一个字节的两个BCD码十进制数拆开,并变成相应的ASCII码,存入两个RAM单元中. 功能: 一个字节BCD码转成两字节ASCII码 RAM: 30H存放BCD码 31H存放高位转换值 32H存放低位转换值 ASCII码对应数字0-9是30-39, 所以只要加上

10、#30H(0011,0000)既可,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单元,例2:多分支转换读取存储器的内容 功能:根据入口条件转向几个分支 (R3)=(0,1,2,3) 入口条件 : 0 内部RAM, 1 外部256个单元, 2 外部64K,

11、3 外部4K (R0) 出口 RAM低8位地址 (R1) 出口 RAM高8位地址,(A)=0 1. 2 3,键盘处理程序,键盘处理 键号-A,入口地址 A+DPTR,键散转 JMPA+DPTR,键位1,键位2,键位3,键位N,N-JMP: MOV A , R3 ;入口条件 MOV DPTR , #JMPTBL ;转移表首址 MOVC A , A+DPTR ;取变量 JMP A+DPTR ;变量加转移表首址 JMPTBL: DB MEM0 JMPTBL ;求转移长度 DB MEM1 JMPTBL ;求转移长度 DB MEM2 JMPTBL ;求转移长度 DB MEM3 JMPTBL ;求转移长度

12、,MEM0: MOV A ,R0 ;从内存RAM读数256 RET MEM1: MOVX A , R0 ;从外部RAM读数256 RET MEM2: MOV DPL , R0 MOV DPH , R1 MOVX A , DPTR ;从外部64KRAM读数 RET,MEM3: ;读取外部4k MOV A , R1 ;RAM高8位地址送A ANL A , #0FH ;屏蔽高4位,剩下A11-A8低4位 ANL P2 , #F0H ;清除P2口低4位 ORL P2 , A ;(P2口)+(A)=(P2+(R1低4位) P2 MOVX A , R0 ;原P2口高4位 R1低4位 R0低8位 RET,访

13、问四个不同位置RAM空间: MOV A, R3 ; 输入变量 MOV DPTR , #JMPTBL ;形成转移表首址 MOVC A , A+DPTR ;变量+首址送A JMP A+DPTR ;完成目标地址的转移,查表程序 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

14、 ;变址调整 DB 36H, 37H, 38H MOVC A, A+PC ;查表 DB 39H, 41H, 42H MOV R0, A ; 保存结果 DB 43H, 44H, 45H, 46H RET,查表程序 (LED显示器) LED: MOV DPTR, #LEDA ;表首地址送数据指针 MOVC A, A+DPTR ;查表 ;显示LED LEDA: DB 40H,79H,24H,30H,19H 0 1 2 3 4 DB 12H,02H,78H,00H,18H 5 6 7 8 9,例3 循环结构:1 DJNZ Rn , rel 2 DJNZ direct , ret MOV 30H , #0FFH ; LOOP: NOP ; 一个机器周期 NOP ; 一个机器周期 DJNZ 30H , LOOP ; 两个机器周期 例4:多重循环: MOV R3 , #0FFH ; LOOP1: MOV R2 , #0FFH ; LOOP2 : NOP ;一个机器周期 NOP ;一个机器周期 DJNZ R2 , LOOP2 ;两个机器周期 DJNZ R3 , LOOP1 ;两个机器周期,多字节Y值的查表 键盘键值查表: 键值(0

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

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

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