单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.

Slides:



Advertisements
Similar presentations
第7章 AT89S51单片机的 串行口 1.
Advertisements

6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
8051 指令.
基本程式範例.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
单片机原理与应用.
第4章 智能仪器通信接口 4.1 GPIB通用接口总线 4.2 GPIB接口电路的设计 4.3 串行通信总线 4.4 串行通信接口电路的设计
第9章 串行扩展技术 (课时:6学时).
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
单片机应用技术 项目二 电子打铃装置 第1讲 指令功能及汇编语言 程序设计(二) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第七章 MCS-51系统扩展 一、程序存储器扩展
第十一章 复位、时钟和省电方式控制.
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
单片机原理与应用 主讲人:张荣刚 福建师范大学福清分校.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
3.1 指令系统简介 一、几个概念 二、汇编语言指令格式 三、指令的分类 四、指令的符号说明 主讲:吴政江 下一页.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第1章 微型计算机基础.
Presentation transcript:

单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系

单片机应用技术 本讲主要内容 1. 设计范例——循环彩灯的制作 2. 指令讲解(数据传送类指令和控制转移指令) 3. 程序设计方法的介绍(延时程序 子程序 循环程序)  

单片机应用技术 1. 设计范例——循环彩灯的制作 彩灯循环亮硬件原理图

单片机应用技术 1. 设计范例——循环彩灯的制作 彩灯循环亮硬件分析 二极管为什么发光 1. 此电路核心件是MCS-51单片机(AT89C51)。 2. 包括时钟电路、复位电路及输出电路。 3. 用P1口作输出口,直接驱动8只发光二极管。 二极管为什么发光

单片机应用技术 1. 设计范例——循环彩灯的制作 发光二极管   发光二极管是一种把电能转换成光能的半导体器件.它由PN节组成,在正向偏置的条件下导通,此时会发射出一定波长的光. 发光二极管的发光功率近似的与导通电流成正比.目前大多数产品可以由集成电路直接驱动

单片机应用技术 1. 设计范例——循环彩灯的制作 怎么设计的 51单片机 机器码 汇编语言程序 7401 F590 790A 7AC8 51单片机 机器码 汇编语言程序 STAT: MOV A , #01H ;高电平对应的发光二极管亮 LOOP: MOV P1, A 从P1口输出到发光二极管 MOV R1, #10 DEL1: MOV R2 , #200 DEL2: MOV R3, #126 DEL3: DJNZ R3, DEL3 DJNZ R2, DEL2 DJNZ R1, DEL1 RL A LJMP LOOP ;左移一位,下一个发光二极管亮 END 7401 F590 790A 7AC8 7B7E DBFE DAFA D9F6 23 024202 怎么设计的

单片机应用技术 1. 设计范例——循环彩灯的制作 彩灯循环亮软件分析 1.此程序包含了传送类指令 、控制转移类指令、移 位指令。 1.此程序包含了传送类指令 、控制转移类指令、移 位指令。 2.此程序包含了延时程序、循环程序

单片机应用技术 2 . 指令讲解 传送类指令 片内、片外 数据传送指令 数据交换指令 堆栈操作指令

单片机应用技术 2. 指令讲解 片内数据传送指令(16条) 格式: MOV 目的操作数, 源操作数 此类指令参入的源操作数和目的操作数有#data/A/Rn/@Ri/direct五个,其不同组合,共有15条指令,如下表. 格式: MOV 目的操作数, 源操作数 direct A @Ri Rn #data 图中箭头为双向的表示数据可双向传递,例如Rn与A之间,数据可由Rn送给A,也可由A送给Rn 。 注:MOV DPTR, #data ;16位立即数送数据指针DPTR中.此条指令 也属片内数据传送指令

单片机应用技术 2. 指令讲解 片外数据传诵指令(4条) 当你想把一个数送到单片机外部扩展RAM的某个单元或外部扩展I/O口某个端口,或者你想从该 单元、端口将数据取回到单片机内部的时候,就要用到片外数据传送指令。 MOVX A, @Ri ;A← ((Ri)) 片外 MOVX @Ri, A ; (Ri) 片外←A MOVX A,@DPTR ;A← ((DPTR)) 片外 MOVX @DPTR, A ; (DPTR) 片外←A 单片机与外部数据存储器数据传送采用两种寻址方式,这两种寻址形式都是间接寻址。一种是单字节寻址@Ri,一种是双字节寻址@DPTR,另一个操作数是A .共有4条指令。 选择单字节寻址,以当前寄存器区的RO或R1的内容作低8位地址,地址与数据分时从P0口输出,高8位地址由P2口默认给出,这种地址形式最多可访问256个外部RAM存储单元。 选择双字节地址。由数据指针产生外部RAM的16位地址,如前所述,P2口输出高8位地址(DPH内容),PO口分时输出低8位地址(DPL内容)或数据。这种地址形式可以访问64KB外部RAM存储空间。

单片机应用技术 2. 指令讲解 数据交换指令(5条) 1、指令: XCH A,〈byte〉 功能:交换累加器与字节变量中的数据。 定的字节中。源操作数有Rn/direct/@Ri,目的操作数是A,共三条指令。 例2.5 设RO寄存器内容为20H,累加器A内容为3FH,内部RAM的20H单元内容为 75H,若执行指令:XCH A,@RO 则结果为:(20)=3FH,(A)=75H 2、指令:XCHD A, @Ri 功能:低半字节数据交换,执行操作(A3-0)←→((Ri)3-0) 说明:累加器A中的低4位与由指定的寄存器间接寻址的内部RAM单元的低4位数 据进行交换。该指令不影响各寄存器的高4位,也不影响标志位。

单片机应用技术 2. 指令讲解 数据交换指令(5条) 例2.6 设RO内容为20H,累加器内容为36H,内部RAM的20H单元内容 为75H,若执行指令 XCHD A, @RO 其结果为 (20H)=0111011=76H (A)=00110101B=35H 3、指令:SWAP A A的高四位和其低四位交换, 如:当A内容为36H时执行SWAP A后A为63H

单片机应用技术 2. 指令讲解 堆栈指令 01H 23H 1、指令 PUSH direct 功能:把程序的中间数据送入堆栈,称为进栈。 说明:首先栈指针自动加1,执行(SP)←(SP)+1将栈指针移向堆栈中 的无数 据字节,然后将直接地址(direct)单元的内容送入SP所指向的栈 单元中,执行(SP)←(direct),不影响标志位。 例2.3、设堆栈指针为09H,数据指 针内容为0123H,试分析下列指令 的执行结果。 PUSH DPL PUSH DPH 执行结果为:(0AH)=23H, (0BH)=01H,(SP)=0BH 01H 23H 0BH 0AH 09H SP 初始

单片机应用技术 2. 指令讲解 堆栈指令 23H 01H 2、指令: POP direct 功能:把堆栈中的中间数据送入目的字节,称为出栈。 说明:读出由栈指针寻址的内部RAM单元内容。送到指定的直接寻址的字节单 元,然后栈指针自动减1,即执行操作: (direct)←((SP)),(SP) ←(SP)-1;指令执行不影响标志位。 23H 01H 例2.4 设(SP)=32H,内部RAM的31H, 32H单元中的内容分别为23H,01H,试 分析下列指令的执行结果。 POP DPH POP DPL 执行结果为(DPTR)=0123H, (SP) =30H。 初始 SP 32H 31H 30H

单片机应用技术 2. 指令讲解 控制转移指令 长转移指令 LJMP 目标语句 说明:目标语句可以是程序存储器64KB空间的任何地方。 绝对转移指令 AJMP 目标语句 例: 4002H AJMP MM …… 4600H MM: MOV A,#00H 注意:目标语句必须和当前语句同页。在51单片机中,64KB程序存储器分成32页,每页2KB(7FFH)。

单片机应用技术 2. 指令讲解 短跳转指令 SJMP 目标语句(rel) 例: 4060H SJMP LOOP …… 4090H LOOP:MOV A,#0FFH 注意:短跳转的目标语句地址必须在当前语句向前127(7FH)字节,向 后128(80H)字节,否则在进行程序编译时会出错。

单片机应用技术 2. 指令讲解 减1条件转移指令组 DJNZ Rn,目标地址(rel);如果(Rn)-1≠0,则程序跳转到目标语句, 否则顺序执行下一条语句。 DJNZ direct,目标地址(rel) ;如果(direct)-1≠0,则程序跳转到目标语 句,否则顺序执行下一条语句。 例: 将8031内部RAM的40H~4FH单元置初值A0H~AFH。 程序为: MOV RO,#40H ;RO赋值,指向数据单元 MOV R2,#10H ;R2赋值,为传送字节数 MOV A,#0A0H ;A赋值 LOOP:MOV @ RO,A ;开始传送 INC,RO ;修改地址指针 INC A ;修改传送数据 DJNZ R2,LOOP ;未传送完,继续循环传送 RET ;否则,传送结束 。 DJNZ指令在程序中的主要用 途是进行程序的循环控制

例1:当前fosc=12MHz,试计算下面延时程序的延时时间。 因为fosc=12MHz,故 T机=12/fosc=1us 单片机应用技术 3. 程序设计方法的介绍(延时程序.子程序.循环程序) 1、延时程序 延时程序是一种应用较为广泛的小程序,一般采用多条语句循环执行来实现延时。 例1:当前fosc=12MHz,试计算下面延时程序的延时时间。 因为fosc=12MHz,故 T机=12/fosc=1us DEL1:MOV R3,#10   1机 DEL2: NOP       1机     NOP       1机 DJNZ R3,DEL2 2机 t1= (1T机+1T机+2T机) ×10+ 1T机=41us 循环次数 循环体

单片机应用技术 3. 程序设计方法的介绍 例2:来看看下面这个程序能够实现的延时时间: T机=12/fosc=12/12MHz=1us DEL:MOV R5,#50 DEL1:MOV R4,#100 DEL2: NOP NOP DJNZ R4,DEL2 DJNZ R5,DEL 1T机 2T机 第2循环体 t1 t1= (1T机+1T机+2T机) ×100+ 1T机=401us t2=(t1+ 2T机) ×50+ 1T机=12182us=20.151ms

单片机应用技术 3. 程序设计方法的介绍 为了便于观察,在这里相邻两个数字之间我们延时1 秒,延时程序可参考下面这个程序: 为了便于观察,在这里相邻两个数字之间我们延时1 秒,延时程序可参考下面这个程序: MOV P1, #0F9H DEL:MOV R7,#10 DEL1:MOV R6,#123 DEL2: MOV R5,#200 DEL3: NOP NOP DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 MOV P1, #0A4H DEL:MOV R7,#10 DEL1:MOV R6,#123 DEL2: MOV R5,#200 DEL3: NOP NOP DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1

单片机应用技术 3. 程序设计方法的介绍 DEL:MOV R7,#10 MOV P1,#0B0H 则部分范例程序为: ORG 0000H MAIN:MOV P1,#0F9H MOV P1,#0A4H DEL:MOV R7,#10 DEL1:MOV R6,#123 DEL2: MOV R5,#200 DEL3: NOP NOP DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 DEL:MOV R7,#10 DEL1:MOV R6,#123 DEL2: MOV R5,#200 DEL3: NOP NOP DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 MOV P1,#0B0H 这样一来,程序显得有些冗长,对于这种在一个程序中反复出现的程序段,我们可以采用子程序的结构来实现。

单片机应用技术 3. 程序设计方法的介绍 2.子程序:在程序中反复多次执行的程序段,可编写为子程 序,在使用时通过主程序调用就可以使用它。这样不但可以减少编程工作量,也缩短了程序的长度。 例如实例二中用到的延时程序 DEL:MOV R7,#10 DEL1:MOV R6,#123 DEL2: MOV R5,#200 DEL3: NOP NOP DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET 可设计为标号为DEL,以返回 指令RET结束的子程序。 子程序的使用: 1、子程序调用: 指令:ACALL ××× ;绝对调用,2KB范围 LCALL ××× ;长调用,64KB范围 2、子程序返回: 指令:RET ;子程序返回指令 RETI ;中断子程序返回指令

单片机应用技术 3. 程序设计方法的介绍 ORG 0000H MAIN: CLR P3.2 MOV P0,#0F9H LCALL DEL MOV P0,#0A4H LCALL DEL MOV P0,#0B0H LCALL DEL MOV P0,#99H MOV P0,#92H SJMP MAIN DEL:MOV R7,#10 ………… DJNZ R7,DEL1 RET END

单片机应用技术 3. 程序设计方法的介绍 3.循环程序:在程序中需要反复执行的程序段,为了避免在程序中多次的编写,可以通过利用条件转移或无条件转移指令来控制程序的执行。结构流程图一般如下图所示: 用于设计循环初值、循环次数 循环控制 循环初始化 循环体 下一条指令 N Y 程序中反复执行的内容 用于判断循环是否结束(通常采用次数递减的方法)

单片机应用技术 3. 程序设计方法的介绍 循环初始化 循环体 循环控制 ORG 0000H MAIN: MOV A, #01H ;初始状态 MOV R0, #08 ;共8位 L1: MOV P1, A ;D1发光 LCALL DEL ;延时子程序 RL A ;状态下移1位 DJNZ R0,L1; 循环判断 SJMP MAIN ;循环 循环初始化 循环体 循环控制

单片机应用技术 4. 程序设计一般步骤 2.分配系统资源及存储单元; 3.绘制程序流程图; 4.设计程序,并反复调试和修改。 1. 分析课题,确定解决方案和算法; 2.分配系统资源及存储单元; 3.绘制程序流程图; 4.设计程序,并反复调试和修改。

单片机应用技术 4. 程序设计一般步骤 彩灯循环设计

4. 程序设计一般步骤(彩灯循环亮程序设计实例) 单片机应用技术 4. 程序设计一般步骤(彩灯循环亮程序设计实例) ORG 0000H MAIN: MOV P1, #80H ;D7发光 MOV P1, #40H ;D6发光 MOV P1, #20H ;D5发光 MOV P1, #10H ;D4发光 MOV P1, #08H ;D3发光 MOV P1, #04H ;D2发光 MOV P1, #02H ;D1发光 MOV P1, #01H ;D0发光 SJMP MAIN ;循环

单片机应用技术 4. 程序设计一般步骤(彩灯循环亮程序设计实例) 彩灯循环另一种程序结构: ORG 0000H MAIN: MOV A, #01H ;初始状态 MOV R0, #08 ;共8位 L1: MOV P1, A ;D1发光 LCALL DEL ;延时子程序 RL A ;状态上移1位 DJNZ R0,L1; 循环判断 SJMP MAIN ;循环

4. 程序设计一般步骤——流程图中各种符号的含义 单片机应用技术 4. 程序设计一般步骤——流程图中各种符号的含义 终结符(用于程序段的开始、结束处) 进程(用于程序中顺序执行的部分) 箭头(用于表示程序的执行方向) 判断菱形(用于程序中出现分支的情况) 文字描述(用于描述程序的执行条件)