单片机教材配套PPT (汇编语言与C语言)_第1页
单片机教材配套PPT (汇编语言与C语言)_第2页
单片机教材配套PPT (汇编语言与C语言)_第3页
单片机教材配套PPT (汇编语言与C语言)_第4页
单片机教材配套PPT (汇编语言与C语言)_第5页
已阅读5页,还剩664页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章单片机基础知识概述,1.1 单片机概述 1.2 单片机学习的预备知识 1.3 Proteus软件简介,第1章 单片机基础知识概述,1.1 单片机概述 1、什么是单片机? 2、为什么要学单片机? 3、怎样学习单片机? 1.2 单片机学习的预备知识 1.3 Proteus软件简介,1. 什么是单片机?,从微型计算机技术的两大发展分支谈起,第1章 单片机基础知识概述,分支一:通用微型计算机系统 (Universal Computer System 或 Personal Computer),PC主要功能部件: CPU+存储器+端口+显卡+声卡+网卡+显示器+鼠标+键盘,基本功能部件,接口,外设,

2、第1章 单片机基础知识概述,INTEL架构CPU的发展历程,技术要求:高速计算+海量存储 发展方向:总线速度不断提升,存储容量不断扩大,第1章 单片机基础知识概述,分支二:嵌入式计算机系统 (Embedded Computer System) ECS嵌入到对象体系中,实现对象体系智能化控制的专用计算机系统 。 技术要求:必须满足对象体系的物理环境、电气环境和气氛环境以及产品成本等要求。 发展方向: 与对象系统密切相关的嵌入性能、控制能力与控制可靠性。,第1章 单片机基础知识概述,PC 电气加固、机械加固,并配置各种外围接口板卡 IPC(工控机) 嵌入到大型工控系统中(实现了智能化),工业计算机

3、(Industrial Personal Computer),船舶驾驶室集中控制台 自动配料控制系统 电站锅炉控制系统,板卡:CPU卡、存储器卡、数据采集卡、通讯卡、计数器卡,第1章 单片机基础知识概述,众多小型对象系统(如家电、仪器、工控单元)无法使用IPC 需要发展一类特殊的嵌入式计算机系统。,第1章 单片机基础知识概述,单片计算机(Single Chip Microcomputer),SCM将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统,应用:SCM硬件+SCM软件+少量外围电路嵌入式微机系统+被控对象微电脑控制产品,第1章 单片机基础知识概述,单片机应用范例,第1

4、章 单片机基础知识概述,单片机的发展:,从1976年起,Intel公司先后推出MCS-48(4位)、 MCS-51(8位)和MCS-96(16位)三大系列单片机。 迄今为止,世界各地厂商已相继研制出大约50个系列300多个品种的单片机产品。 单片机的发展趋势是高集成度、高性能、高性价比、低功耗微控制器(Micro Compuer Unit)增强功能的单片机,8位的51内核单片机仍然是目前主流机型。,第1章 单片机基础知识概述,第1章 单片机基础知识概述,DSP:一类特别适合于进行数字 信号运算的微处理器 DSP有更高的集成度,更快的CPU,更大容量的存储器,更高效的指令集。 DSP适合应用于音

5、频、视频信号处理领域。 DSP是单片机的高级形式,数字信号微处理器(Digital Signal Processor),第1章 单片机基础知识概述,DSP应用范例,第1章 单片机基础知识概述,2. 为什么要学单片机?,单片机是实现机械装备、电子产品智能化的重要途径,掌握这门技术便能在高技术领域占有一席之地 单片机系统是当前最有发展前途的高技术领域之一,国内外嵌入式系统的产品设计与研发人员相对短缺,具有很好的就业前景 单片机与其它专业知识相结合可产生更大的创造力和发展潜力,第1章 单片机基础知识概述,单片机应用实例抽油机自动间抽控制技术,第1章 单片机基础知识概述,游梁式抽油机石油开采设备,矛盾

6、1:电动机配置存在“大马拉小车” 需要配备较大功率电机 仅需配备较小功率电机 抽油机启动过程 正常抽油时 稠油、结蜡、冬季,矛盾2:产抽不平衡导致抽油机工作效率低 油田开采后期地层供液能力 抽油能力大于供油 能力抽油机工作效率,国内约有10万多台游梁式抽油机,电能消耗问题十分突出!,第1章 单片机基础知识概述,利用星角切换的节能原理,第1章 单片机基础知识概述,闭环控制原理,功率变送器,额定功率,微机控制器,交流接触器,异步电动机,实际功率,切换控制方案 根据实际工况,确定最适接线方式,实施双向动态切换,第1章 单片机基础知识概述,利用定时间抽的节能原理,开机,停机,开机,开机,停机,时间,根

7、据间抽规律设置开机时间T1和停机时间T2,节能效果 停机时间 /(开机时间+停机时间),第1章 单片机基础知识概述,综合上述两种原理 抽油机功率双向切换与间抽控制方案,起动时采取强制方式以满足带载起动要求 起动后在、Y、过载停机三个状态间双向自动切换 可根据设置实现切换+间抽联合控制,技术核心:,第1章 单片机基础知识概述,空气开关,交流接触器,电动机,功率变送器,抽油机电控箱,基于单片机的抽油机节能控制方案,第1章 单片机基础知识概述,试验结果 平均无功功率降低71.8% 平均有功功率降低约15% 平均功率因数提高58%,第1章 单片机基础知识概述,3、怎样学习单片机,各组成部分既相对独立,

8、又相互交叉,80C51型单片机,教学目标掌握单片机原理与应用系统设计技能 需要具备单片机硬件、软件、接口三方面知识,第1章 单片机基础知识概述,硬件结构(RAM,IO,T/C,INT,UART),存储器,输入/输出单元,定时/计数器,中断系统,串行通信,第1章 单片机基础知识概述,软件编程,C51语言程序,汇编语言程序,第1章 单片机基础知识概述,接口系统(LED,KEY,AD,DA,IO扩展),键盘电路,数码管,键盘,模数转换,数模转换,可编程接口,第1章 单片机基础知识概述,单片机的学习方法,理论教学掌握基本原理课堂讲解+课后复习,实验教学掌握基本技能教学实验+实验报告,电路实验箱,虚拟实

9、验平台,第1章 单片机基础知识概述,PROTEUS单片机仿真软件,第1章 单片机基础知识概述,Keil C51简介 Keil C51是51单片机软件开发的C语言和汇编语言环境,可以进行纯软件仿真;也可以与Proteus软件联合进行仿真。,Keil集成开发环境软件,第1章 单片机基础知识概述,特点: (1)以C51编程语言作为贯穿全书各章节的主线,汇编语言内容仅按能读懂源代码程序的要求安排。 (2)将近年来国际上热门的单片机仿真软件引进到教材体系中,使单片机的抽象概念直观化,编程效果可视化。 (3)以仿真实验代替实物实验,实验指导中包括了相关内容的阅读材料。,使用教材,第1章 单片机基础知识概述

10、,第1章 单片机基础知识概述,1.1 单片机概述 1.2 单片机学习的预备知识 1、数制定义 2、数制转换 3、有符号数 4、位-字节-字 5、ASCII码 6、BCD码 7、逻辑门电路 1.3 Proteus软件简介,1.数制定义,单片机常用的数制有十进制、二进制、十六进制。,例如:,第1章 单片机基础知识概述,二进制:0、1 ;规则:逢二进一,后缀为B。 一般表达式为:,其中,基数为2,各位加权数为0,1。,例如:,第1章 单片机基础知识概述,十六进制 :09、AF。规则:逢十六进一,后缀为H。 一般表达式为:,其中,基数为16,各位加权数为09、AF 。,例如:,第1章 单片机基础知识概

11、述,2.数制转换,(1) 二进制转换成十进制 转换规则:按进制的表达式展开,然后按照十进制运算求和。,例如:,第1章 单片机基础知识概述,(2)十六进制转换成十进制 转换规则:按进制的表达式展开,然后按照十进制运算求和。,例如:,第1章 单片机基础知识概述,(3) 二进制与十六进制数之间的转换,从低位起由右到左,每四位二进制数对应一位十六进制数。例如:,(最后一组不足时左边添0凑齐4位),转换规则:,第1章 单片机基础知识概述,(4)十进制整数转换成二、十六进制整数 转换规则:“除基取余”。十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。,例如:,第1章 单片机

12、基础知识概述,3.有符号数的表示方法,二进制数的正、负号需用“0”和“1”来表达。一般最高位为符号位,“0”表示正数,“1”表示负数。,例如:真值 +123 0111 1011B 真值 -123 1111 1011B,有符号数:最高位为符号位,“0”表示正数,“1”表示负数。 无符号数:最高位不作为符号位,而当成数值位。,真值 1111 1011B ?,= 251 = -123,第1章 单片机基础知识概述,二进制数有三种编码形式:原码、反码和补码,原码: 二进制数的原形,可以是无符号数,也可以是有符号数。 例如,8位无符号原码数的范围是: 0000 0000B1111 1111B(0-FFH或

13、0 255) 8位有符号数的范围是: 1111 1111B0111 1111B(FFH-7FH或-127 127),第1章 单片机基础知识概述,反码:正数的反码与原码相同,负数的反码为:符号位不变,数值部分按位取反。 例如,原码 1000 0100B反码 1111 1011B,8位无符号反码数的范围是 0000 0000B1111 1111B(0-FFH或0 255) 8位有符号反码数的范围是 1111 1111B0111 1111B(FFH-7FH或-127 127),第1章 单片机基础知识概述,补码:正数的补码与原码相同,负数的补码为其反码加1,但原符号位不变。 例如,原码 1000 01

14、00B补码 1111 1100B,8位无符号补码数的范围是 0000 0000B1111 1111B(0-FFH或0 255) 8位有符号补码数的范围是 1000 0000B0111 1111B(80H-7FH或-128 127),补码的用途:将减法运算转换为加法运算。,例如:123-125=0111 1011B+1000 0011B=1111 1110B=-2,第1章 单片机基础知识概述,4. 位-字节-字,位(bit):二进制数中的一位,其值不是“1”,就是“0”。 字节(byte):一个8位的二进制数为一个字节。字节是计算机数据的基本单位。 字(word):两个字节就是一个字,又叫双字节

15、。 另外,有时还会用到“半字节”,即4位二进制。 例如:1000 1110 1100 1011B = 8E CDH,第1章 单片机基础知识概述,5. BCD码,BCD码(Binary Coded Decimal)用二进制代码表示的十进制数,四位二进制代码(半字节)可表示1位十进制数。 用一个字节表示两个十进制的数压缩的BCD码: 如 1000 0111B 表示十进制的87 用一个字节仅表示一位十进制的数非压缩的BCD码: 如 0000 0111B 表示十进制的7,BCD码的用途:可使计算机直接进行十进制数运算,例如,23+15=0010 0011B+0001 0101B=0011 1000B=

16、38,第1章 单片机基础知识概述,第1章 单片机基础知识概述,6. ASC码,字母和字符的二进制数表示ASC码(American Standard Code for Information Interchange美国国家信息交换标准字符码 )。,它采用7位二进制编码表示128个字符,其中包括数码09以及英文字母等可打印的字符。,A 100 0001B 41H,例如:,0- 9 30H 39H,第1章 单片机基础知识概述,7.基本逻辑门电路,计算机是由若干逻辑门电路组成的,所以,计算机对于人们给出的二进制数识别、运算要靠基本逻辑门电路来实现。在逻辑门电路中我们用1和0分别表示高、低电平 。,以下

17、介绍几种常用逻辑电路的逻辑符号和逻辑功能。,第1章 单片机基础知识概述,(1)与逻辑关系,与逻辑真值表,Y,与门电路,A,B,Y,先将 20H的内容传入A里 OR A,#80H ;再对A进行80H的“或”运算 方法2,直接针对最高位进行“置位”操作 SETB 07H ;07H为20H最高位的位地址,第2章 单片机结构及原理,区共有80个字节单元( 30H7FH),是用户RAM区,但只能按字节进行数据存取操作。,在此区内用户可以作为为堆栈区和中间数据存储区。,第2章 单片机结构及原理,(2)高128字节RAM区,在80HFFH的高128字节RAM区中,离散地分布有21个特殊功能寄存器(Speti

18、al Function Register),又称为特殊功能寄存器区。,30H,第2章 单片机结构及原理,具有标准的SFR名称和符号、字节地址和位地址,前述的Acc、PSW、DPL、DPH等几个寄存器都属于SFR,其余寄存器将在以后章节中结合应用进行介绍。,第2章 单片机结构及原理,字节地址末位是0或8的SFR,都具有位地址。,SFR之外的其它存储单元用户均不可用(系统留用)。,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 1.复位与复位电路 2.时钟电路 3. CPU时序 2.4并行I/O口,第2章 单片机结构及原理

19、,复位使单片机恢复原始默认状态的操作。,第2章 单片机结构及原理,复位条件,在RST/VPD引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟振荡周期建立时间再加2个机器周期时间(一般不小于10ms)。,复位方式,上电复位 按键复位 复合复位,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 1.复位与复位电路 2.时钟电路 3. CPU时序 2.4并行I/O口,CPU微操作必须在统一的时钟控制下才能正确进行。,内部时钟方式,微调电容: C1、C2 30pF 晶振:石英晶体封裝,MCS-

20、51时振荡频率为612MHZ。,外部时钟方式,第2章 单片机结构及原理,P1口的结构组成,P1.n = 1个锁存器 + 1个场效应管驱动器V + 2个三态门缓冲器,第2章 单片机结构及原理,P1口具有输出、读引脚、读锁存器三种工作方式。,输出时: D端=1/Q=0V截止P1.n=1 D端=0/Q=1V导通P1.n=0 读引脚时:P1.n读引脚三态门1内部总线 读锁存器: Q端读锁存器三态门2内部总线,V,2,1,第2章 单片机结构及原理,V的状态会影响P1.n的状态: 如V导通P1.n电平0(钳位) 读引脚可能出错 为正确读出P1.n引脚电平,需要读引脚前应先使T截止 令D=1/Q=0V截止读

21、P1.n不会出错,可见,P1口作为输入口时是有条件的(应先写1),而输出时无条件,因此,称P1口为准双向口。,V,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3 单片机的复位、时钟与时序 2.4 并行I/O口 1、P1口 2、 P3口 3、 P0口 4、 P2口,P3口的结构组成,P3.n = 1个锁存器 + 2个三态缓冲器 + 1个第二功能控制单元 + 1个输出驱动单元,第2章 单片机结构及原理,P3口具有P1的三种工作方式 + 第二功能方式,输出时: D端=1Q=1V截止P1.n=1 D端=0Q=0V导通P1.n

22、=0 读引脚时:P1.n读引脚三态门1内部总线(需先写1) 读锁存器: Q端读锁存器三态门2内部总线,3,4,1,2,第二输入功能,V,第二输出功能 = “1” (与非门开锁),第2章 单片机结构及原理,P3口的第二功能方式:,输出时:第二输出功能 = 1与非门输出0V截止P3.n=1 第二输出功能 = 0与非门输出1V导通P3.n=0 输入时:P3.n三态门4第二输入功能,D端 写 “1” (与非门开锁),(第二输出功能先写 “1”),3,4,1,2,第二输入功能,V,第2章 单片机结构及原理,P3口第二功能定义,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机

23、结构 2.2 MCS-51的存储器结构 2.3 单片机的复位、时钟与时序 2.4 并行I/O口 1、 P1口 2、 P3口 3、 P0口 4、 P2口,P0口的结构组成,P0.n = 1个锁存器 + 2个三态缓冲器 + 1个输出控制电路(非门 X+与门A+电子开关MUX)+1个输出驱动电路(场效应管V2 +V1),P0口既可以作为通用I/O口实现输入/输出功能,也可作为单片机地址/数据线实现外设扩展功能。,第2章 单片机结构及原理,漏极开路与上拉电阻的概念,封锁与门A0 地址/数据端与A输出无关,控制端=0MUX下通/Q与V1栅极直通,V2截止V1漏极开路,第2章 单片机结构及原理,为使漏极开

24、路的V1有效,必须通过上拉电阻与电源接通,上拉电阻的阻值一般为4.710k。,注意:P1、P2、P3口无需外接上拉电阻(已有内部上拉电阻),第2章 单片机结构及原理,P0口的通用IO工作方式(控制端=0),输出时: D端=1Q反端=0V1截止P0.n=1 D端=0Q反端=1V1导通P0.n=0 读引脚时:P0.n读引脚三态门1内部总线(需要先写“1”) 读锁存器: Q端读锁存器三态门2内部总线,第2章 单片机结构及原理,P0口的地址/数据分时复用方式(控制端=1),“地址/数据” 端无条件输入/输出,是严格意义上的双向口 “地址/数据”方式下没有漏极开路问题,无需外接上拉电阻,第2章 单片机结

25、构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3 单片机的复位、时钟与时序 2.4 并行I/O口 1、P1口 2、 P3口 3、 P0口 4、 P2口,P2口的结构组成,P2.n = 1个锁存器 + 2个三态缓冲器 + 1个输出控制单元 + 1个输出驱动单元,V,第2章 单片机结构及原理,P2口可以实现通用I/O口和地址输出口两种功能,输出时: D端=1Q端=1V截止P2.n=1 D端=0Q端=0V导通P2.n=0 读引脚时:P2.n读引脚三态门内部总线(需要先写“1”) 读锁存器: Q端读锁存器三态门内部总线,P2作为通用I/O口时

26、(控制端=0),V,第2章 单片机结构及原理,输出时:地址端=1V截止P2.n=1 地址端=0V导通P2.n=0,P2作为地址输出口时(控制端=1),V,第2章 单片机结构及原理,P0P3小结,1. 结构,第2章 单片机结构及原理,本章小结,1、单片机的CPU由控制器和运算器组成,在时钟电路和复位电路的支持下,按一定的时序工作。单片机的时序信号包括振荡周期、时钟周期、机器周期和指令周期。 2、51单片机采用哈佛结构存储器,共有3个逻辑存储空间和4个物理存储空间。片内低128字节RAM中包含4个工作寄存器组、128个位地址单元和80个字节地址单元。片内高128字节RAM中离散分布有21个特殊功能

27、寄存器。 3、 P0P3口都可作为准双向通用I/O口,其中只有P0口需要外接上拉电阻;在需要扩展片外设备时,P2口可作为其地址线接口,P0口可作为其地址线/数据线复用接口,此时它是真正的双向口。,第2章 单片机结构及原理,第2章 单片机结构及原理,2.1 MCS-51单片机结构 2.2 MCS-51的存储器结构 2.3单片机的复位、时钟与时序 1.复位与复位电路 2.时钟电路 3. CPU时序 2.4并行I/O口,时序是计算机指令执行时各种微操作在时间上的顺序关系,其作用是保证CPU中各种微操作有序运行。,(1)时序的概念,第2章 单片机结构及原理,时序定时单位共有4个参数: 拍(振荡周期、时

28、钟周期)P、状态周期S、机器周期、指令周期,一个状态(S)包含2个拍(P); 一个机器周期由6个S或12个P组成; 一个指令周期约为14个机器周期。,第2章 单片机结构及原理,例:外接晶振为12MHz时,MCS-51单片机的四种时序周期的具体值为:,更正:P.30,振荡周期 = 1/12 us 状态周期 = 1/6 us 机器周期 = 1 us 指令周期 = 14 us,振荡周期 = 1/24 us 状态周期 = 1/12 us 机器周期 = 1 us 指令周期 = 14 us,振荡周期是机器周期的1/12,正,误,(正),机器周期是振荡周期的1/12,(误),第2章 单片机结构及原理,第3章

29、单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 1. 汇编语言指令格式 2.描述操作数的简记符号 3.寻址方式 3.2指令系统简介 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,汇编语言是用助记符形式表示指令的一种计算机语言, 其中助记符由约定的英文字母组成,而指令则是完成特定动作所需的指示和命令。汇编语言程序需要经过编译程序翻译成机器码,让计算机执行。 汇编语言编程的优点是代码精炼、执行速度快,但不便于编写较复杂的程序。 本章学习目的是了解汇编语言的规则,要求借助指令手册能读懂一

30、般汇编程序。,一条汇编语言指令中最多包含四个区段,其一般格式为: 标号: 操作码 操作数 ;注释,汇编语言指令格式,第3章单片机的汇编语言与程序设计,标号区段由用户定义的16个字符组成,以英文字母开始(不区分大小写 ),冒号结尾。,标号代表当前指令的首字节在存储器单元中的存放地址,可以省略。,标号: 操作码 操作数 ;注释,第3章单片机的汇编语言与程序设计,操作数区段是指令要操作的对象。根据指令的不同功能,操作数可以是3个、2个、1个或没有操作数;操作数大于1时,操作数之间用英文逗号隔开,不区分大小写。,START: MOV A,#12H ;立即数12HA SETB P1.0 ;P1.01 C

31、JNE A,R0, START ;若AR0,转START,举例:,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 1. 汇编语言指令格式 2.描述操作数的简记符号 3.寻址方式 3.2指令系统简介 3.3汇编语言的编程方法,单片机指令手册中,每条指令的操作数都以简记符号表示。,第3章单片机的汇编语言与程序设计,操作数的简记符号,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 1. 汇编语言指令格式 2.描述操作数的简记符号 3.寻址方式 3.2指令系统简介 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计

32、,寻址方式寻找操作数所在地址单元的方式。,寻址方式越多,计算机的功能就越强。 51单片机共有七种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。,可以先跳过这一节,待学完指令系统后再返回学习可能会易于理解。,第3章单片机的汇编语言与程序设计,(1)直接寻址,MOV A,68H ;A(68H),机器码为E568H,对于片内低128字节单元可在指令中直接给出单元地址(如MOV A,68H),但对于特殊功能寄存器(位于高128字节区)除了可用其单元地址给出外,还可用它们的符号形式给出。如:,MOV A,0D0H ;A(0D0H),机器码为E5D0H MOV A,

33、PSW ;APSW,机器码为E5D0H,它们的形式虽然不同,但汇编后的机器码是完全一样的,均为E5D0H。为增强所编程序的可读性,一般提倡尽量采用后者方式。,(2)寄存器寻址,指令中以通用寄存器的形式表示操作数的寻址方式称为寄存器寻址,这里的通用寄存器特指:A、B、DPTR、R0R7和CY。,MOV A,R1 ;AR1 MUL AB ;BAAB,乘积高位存B,低位存A INC DPTR ;DPTRDPTR+1,第3章单片机的汇编语言与程序设计,注意:B寄存器仅在乘法和除法指令中属于寄存器寻址,在其它指令中则属于直接寻址。此外,除上面所指出的几个寄存器外,其它特殊功能寄存器也一律为直接寻址,寄存

34、器间接寻址是二次寻找操作数地址的寻址方式。,(3)寄存器间接寻址,由指令指出某一个寄存器的内容作为操作数地址的寻址方式,称为寄存器间接寻址方式。计算机执行这类指令时,它首先根据指令中的寄存器名称找到所需要的操作数地址,再由操作数地址找到操作数,并完成相应操作。,第3章单片机的汇编语言与程序设计,寄存器间接寻址使用的寄存器叫做间址寄存器,用R0、R1和DPTR表示。,MOV A,R0 ;寻址范围为256B,MOVX A,DPTR ;寻址范围为64KB,第3章单片机的汇编语言与程序设计,MOV A,#0E2H ;A#0E2H MOV DPTR,#2000H ;DPTR#2000H,(4)立即寻址,

35、如果操作数在指令中直接给出,并与操作码的机器码一起存放在程序存储器内,则程序执行时便可立即得到,而不需要另外寻找,故称为立即寻址。该操作数称为立即数,并在其前冠以“#”号,以表示非地址。立即数可以是8位或16位二进制数,一般用十六进制数表示,汇编语言规定,凡以字母开始的十六进制数(立即数或地址),在最高位前要加0以便与变量名区分,因而上述数据E2H要写为0E2H。,第3章单片机的汇编语言与程序设计,MOVC A,A+DPTR ;A(A+DPTR) MOVC A,A+PC ;A(A+PC) JMP A+DPTR ;PC(A+DPTR),(5)变址寻址,变址寻址是以DPTR或PC作为基址寄存器,以

36、累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址。51指令集中采用变址寻址的指令共有三条:,A为偏移量寄存器,DPTR或PC为变址寄存器。程序执行时,A中的无符号数先与DPTR或PC中的内容相加,形成访问地址,再通过寄存器间接寻址方式取得实际操作数。其中前两条是程序存储器读指令,后一条是无条件转移指令。,第3章单片机的汇编语言与程序设计,MOV C,7FH ;Cy(7FH),其中,7FH是位地址 MOV C,2FH.7 ;Cy(7FH),其中,2FH.7是位地址 MOV C,ACC.7 ;CyACC.7,其中,ACC.7是位地址,(6)位寻址,51单片机片内RAM

37、里的部分存储单元和某些特殊功能寄存器除了具有字节地址外,还具有位地址。这些单元既可以采用字节方式访问,也可采用位地址方式访问。指令中直接给出操作数所在单元位地址的寻址方式称为位寻址,例如:,第3章单片机的汇编语言与程序设计,SJMP START ;PCPC+2+rel,(7)相对寻址,相对寻址方式是为了程序的相对转移而设计的,它以PC的内容为基址,与指令中给出的偏移量rel进行合成,得到转移目的地址,进而改变PC值实现程序的跳转功能。,该指令的功能是将PC值修改为START语句行所在的首地址,从而使程序从START语句继续执行,该指令的的原形是SJMP rel。 注意,由于rel只能形成-12

38、8+127字节的跳转,故编程时必须考虑当前行与被跳转行之间的地址范围不能超限。,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换类指令 2.算术运算类指令 3.逻辑运算及移位类指令 4.控制转移类指令 5 .伪指令 3.3汇编语言的编程方法,计算机中全部指令的集合称为指令系统。 MCS-51单片机指令系统共有111条指令,按功能可划分为四大类: 数据传送与交换类 算术运算类 逻辑运算类 转移控制类(位操作也可作为第五类考虑),第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换

39、类指令 2.算术运算类指令 3.逻辑运算及移位类指令 4.控制转移类指令 5.伪指令 3.3汇编语言的编程方法,数据传送与交换类指令可实现RAM、SFR和ROM之间的数据互传或交换,共31条。,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,数据传送类指令的基本通式为: , 它表示将源单元(src)的内容传送给目的单元 (dest) ,传送后源单元中内容不变。 transfer是传送指令的操作码: MOV在片内RAM范围内传送 MOVX在片外RAM范围内传送 MOVC在全部ROM范围内传送,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与程序设计,举例1:分析如下

40、程序段并指出运行后20H和21H单元的结果 MOV R0,#20H MOV R0,#38H MOV 21H,#48H,结果:(20H)=38H,(21H)=48H,将data送入Ri的内容所指向的单元中(寄存器间接寻址) R0=20H MOV R0,#38H 等价于MOV 20H,#38H,;MOV Rn,#data ;MOV Ri,#data ;MOV direct,#data,;Rndata ;(R0)data ;directdata,第3章单片机的汇编语言与程序设计,举例2:已知片内RAM 38H单元中的数为12H,试分析如下程序段并指出其功能,注意:片内RAM 38H单元中数不能直接传

41、送到外部RAM的1818H单元,必须经过累加器A的转传。,MOV R0,#38H MOV DPTR,#1818H MOV A,R0 MOVX DPTR,A,; Rndata ; DPTR data16 ; A(Ri) ; (DPTR)A,R0=38H DPTR =1818H A(38H)=12H (1818H)=12H,例:设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,端口(P1)=CAH. 分析下面程序执行后各单元及存储器、P2口的内容。 MOV R0, #30H ; MOV A,R0 ; MOV R1, A ; MOV B , R1 ; MOV R1 , P1 ;

42、 MOV P2 , P1 ; MOV 10H , #20H ; 结果:(R0)=30H , (R0)(A)40 H , (B)=10H , (40H)=(P1)=(P2)=CAH , (10H)=20H,外部数据存储器数据传送指令,功能:单片机CPU对外扩数据存储器RAM或I/O口进行数据传送。 外部RAM单元只能使用间接寻址方法,通过累加器来完成。 DPTR (16位 )和Ri作间址寄存器。 数据传送通过和2口完成。 /(P0传送低8位地址,P2传送高8位地址;数据总线8位有P0 口与地址线分时双向传送) 指令操作码助记符:X,指令: MOVX A ,DPTR ;(A) (DPTR) MOV

43、X A ,Ri ;(A) (Ri) MOVX DPTR,A ; (DPTR)(A) MOVX Ri ,A :(Ri)(A),1、设外部RAM(0203H)=FFH 分析运行结果,MOV DPTR , #0203H MOVX A , DPTR MOV 30H , A MOV A , #0FH MOVX DPTR , A (DPTR)=0203H (30H)=FFH (0203H)=(A)=0FH,第3章单片机的汇编语言与程序设计,举例3:试分析如下程序段并指出其功能,MOV DPTR,#120H MOV A,#5 MOVC A,A+DPTR MOV 30H,A,; DPTR data16 ; A

44、data ; A(A+DPTR) ; (30H)A,; DPTR =120H ; A=5 ; A(125H) ; (30H)A,意义:采用DPTR作为基址寄存器,A作为变址寄存器,查找事先存放在ROM数据块中的数据值,其中DPTR指向数据块的首地址。,第3章单片机的汇编语言与程序设计,传送类指令中的两类特殊指令 交换类使操作数的内容互换(XCH、XCHD、SWAP) 堆栈类使操作数的内容进出堆栈(PUSH 、POP),0-3,4、若 (R0)=30H, (30H) = 4AH , (A) =28H,1 XCH A , R0 ; 2 XCHD A , R0 ; 3 SWAP A ; A=82H,

45、堆栈操作类指令,PUSH direct ; SP (SP) + 1, (SP) (direct) / PUSH指令把数据压入堆栈:首先(SP)+1(SP),指向栈顶上的一个空单元;然后把直接寻址单元的内容压入所指单元。 POP direct ; (direct)SP ,(SP) (SP) - 1 / POP 指令把堆栈顶的数据弹出到直接寻址指定的单元中,恢复片内RAM 128)或SFR的内容:首先(SP)direct,然后把(SP)-1SP,形成新的栈顶指针。,用指令实现下述功能。 (1)内部RAM30H单元内容送R0。 (2)将立即数10H送入内部RAM30H单元。 (3)R0内容送入R1。

46、 (4)外部RAM3000H单元内容送内部RAM30H单元。,1 MOV R0,30H 2 MOV 30H,#10H 3 MOV A,R0 MOV R1,A 4 MOV DPTR,#3000H MOVX A,DPTR MOV 30H,A,已知内部RAM中,(30H)40H,(40H)50H,(50H)5AH,(5AH)60H,ROM中(125AH)88H,试分析下面程序的运行结果,并指出每条指令的源操作数寻址方式。 MOV A,50H ; MOV R0,A; MOV P1,0F0H; MOV R0,30H ; MOV DPTR,1200H ; MOVX DPTR,A ; MOVC A,ADPT

47、R ; MOV 40H,50H ; MOV P2,P1 ;,程序执行后,P2=F0H ; (40H)= 5AH ;(A)=88H ;(1200H)=5AH; (5AH)=40H,已知(30H)=38H,请分析以下各是什么指令,说明源操作数的寻址方式以及执行结果。 MOV A,40H ; MOV R0,A; MOV P1,#0F0H ; MOV R0,30H; MOV DPTR,#3848H; MOV 40H,38H; MOV R0,30H; MOV P0,R0; MOV 18H,#30H ; MOV A,R0 ; MOV P2,P1 ;,MOV A,40H ;直接寻址(40H)A MOV R0

48、,A;寄存器寻址(A)R0 MOV P1,#0F0H ;立即数寻址0F0P1 MOV R0,30H;直接寻址(30H) (R0) MOV DPTR,#3848H;立即数寻址 3848HDPTR MOV 40H,38H;直接寻址 (38H) 40H MOV R0,30H;直接寻址 (30H) R0 MOV P0,R0;寄存器寻址( R0 )P0 MOV 18H,#30H ;立即数寻址30H18H MOV A,R0 ;寄存器间接寻址 (R0) A MOV P2,P1 ;直接寻址 (P1)P2,最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=

49、3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H 注意:左边是内容,右边是单元,设(R1)31H,内部RAM31H的内容为68H,32H单元的内容为60H,(A)10H。请指出运行下面的程序后各单元内容的变化。 MOV A,R1 ; MOV R1,32H ; MOV 32H,A ; MOV R1,45H ; 程序前3条指令将内部RAM31H和32H单元内容互换。,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换类指令 2.算术运算类指令 3.逻辑运算及移位类指令 4.控制转移类指令 5 .

50、伪指令 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,算术运算类指令共有24条,包括加、减、乘、除和增减1运算等。,第3章单片机的汇编语言与程序设计,设,(R0)=7EH,(7EH)=FFH,(7FH)=40H,执行下列程序,分析结果 INC R0; INC R0; INC R0;,设(R0)=7EH, (7EH)=FFH , (7FH)=38H , (DPTR)=10FEH P.58,INC R0 ; INC R0 ; INC R0 ; INC DPTR ; INC DPTR ; INC DPTR ;,执行下面程序,分析PSW有关标志位内容,MOV A,#7AH; MOV R0

51、,#65H; ADD A,R0;,设 (A)=13H,(R0)=0FFH,(00H)=34H,(DPTR)=1235H执行以下程序后,结果为多少? INC A; INC R0; INC R0; INC DPTR;,第3章单片机的汇编语言与程序设计,举例5:试解读如下程序并说明其功能,MOV A,#34H ADD A,#0E7H MOV 40H,A MOV A,#12H ADDC A,#0FH MOV 41H,A,; A 34H ; A= A+data ; (40H) A ; A 12H ; A= A+data+CY ; (41H) A,A =34H A= 1BH; C=1H (40H) = 1

52、BH A = 12H A= 21H (41H) =22H,功能:1234H与0FE7H两个16位数相加,结果为221BH。第一步先对低8位相加,结果存入40H单元;第二步再对高8位相加,结果存入41H单元,其中第二步为带进位相加。,注意:对于用十六进制数表示的数字或地址,若其最高位是AF,则需在最高位前加零(与“标号” 或“标示符”区分)。,第3章单片机的汇编语言与程序设计,若 CY=1,执行下面程序,说明PSW有关标志位内容,MOV A,#85H; MOV 54H,#0AEH; SUBB A,54H;,第3章单片机的汇编语言与程序设计,举例6:试解读如下程序并说明其功能,CLR C MOV

53、A,#34H SUBB A,#0E7H MOV 40H,A MOV A,#12H SUBB A,#0FH MOV 41H,A,注意:运算时需要首先清理CY位。,第3章单片机的汇编语言与程序设计,举例6:试解读如下程序并说明其功能,CLR C MOV A,#34H SUBB A,#0E7H MOV 40H,A MOV A,#12H SUBB A,#0FH MOV 41H,A,; CY位清零 ; A 34H ; AA -0E7H-CY ; (40H) A ; A 12H ; AA -0FH-CY ; (41H) A,C=0 A=34H A=4D;C=1 ; (40H) =4C ; A =12H ;

54、 A= 03H ; (41H) = 03H,注意:运算时需要首先清理CY位。,编程,进行两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30和31H单元,30H存低八位。 CLR C MOV A,#5DH ;被减数的低8位A MOV R2,#B4H ;减数低8位R2 SUBB A,R2 ;被减数减去减数,差A MOV 30H,A ;低8位结果30H MOV A,#6FH ;被减数的高8位A MOV R2,#13H ;减数高8位R2 SUBB A,R2 ;被减数减去减数,差A MOV 31H,A ;高8位结果30H,第3章单片机的汇编语言与程序设计,设(A)=00H,(R3)=1

55、9H,(40H)=5FH,(R0)=34H,(34H)=0FFH,分析,DEC A; DEC R3; DEC 40H; DEC R0;,第3章单片机的汇编语言与程序设计,设(A)=00H,(R3)=19H,MUL AB,第3章单片机的汇编语言与程序设计,举例7:试解读如下程序并说明其功能,MOV A,#17H MOV B,#68H MUL AB MOV 30H,A MOV 31H,B,; A17H ; B68H ; ABBA ; (30H) A ; (31H) B,; A=17H ; B=68H ; B= 9;A=58H ; (30H) 58H ; (31H) 09H,第3章单片机的汇编语言与

56、程序设计,设(A)=80H,(B)=60H,分析,DIV AB,第3章单片机的汇编语言与程序设计,算术运算指令快捷记忆法,规律:除形成闭环连线的运算外(只有1个操作数),其余运算都要以A为目的操作数。,第3章单片机的汇编语言与程序设计,3.1汇编语言概述 3.2指令系统简介 1.数据传送与交换类指令 2.算术运算类指令 3.逻辑运算及移位类指令 4.控制转移类指令 5 .伪指令 3.3汇编语言的编程方法,第3章单片机的汇编语言与程序设计,逻辑运算及移位类指令共有34条,可以实现二进制数的与、或、异或、求反、置1、清零、移位等逻辑操作。,第3章单片机的汇编语言与程序设计,第3章单片机的汇编语言与

57、程序设计,已知(A)=53H,(40H)=6AH, ANL A,40H;,第3章单片机的汇编语言与程序设计,编程 1 使内部RAM30H单元低四位置1,高四位不变。 2 使内部RAM30H单元低四位不变,高四位置1。,第3章单片机的汇编语言与程序设计,举例9:试解读如下程序并说明其功能。,ANL A,#0FH ANL P1,#0F0H ORL P1,A,功能:把累加器A中低4位送入P1口低4位,P1口的高4位不变(实现了一次数据组合),; AA0FH ; P1P1F0H ; P1P1A,逻辑或的特性:x 0 = x(屏蔽);x 1 = 1(置位),; A = 0000 xxxxB ; P1= XXXX0000B ; P1= XXXXxxxxB,第3章单片机的汇编语言与程序设计,举例分析 (30H)=65H MOV A,30H; ANL A,#00001111B; MOV 31H,A; MOV A,30H; ANL A,#11110000B; SWAP A; MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论