单片机原理与应用基础资料.ppt_第1页
单片机原理与应用基础资料.ppt_第2页
单片机原理与应用基础资料.ppt_第3页
单片机原理与应用基础资料.ppt_第4页
单片机原理与应用基础资料.ppt_第5页
已阅读5页,还剩275页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理与应用,主编 魏力,单片机原理与应用,第一章 计算机系统概述第二章 MCS-51单片机结构第三章 MCS-51单片机指令系统第四章 MCS51汇编语言编程技术 第五章 存储器第六章 MCS-51的片内接口第七章 MCS-51输入/输出接口扩展和应用 第八章 数/模、模/数转换 第九章 单片机应用系统设计,单片机原理与应用,第一章 计算机系统概述,第二章 MCS-51单片机结构,第三章 MCS-51单片机指令系统,第四章MCS51汇编语言编程技术,第五章 存储器,第六章 MCS-51的片内接口,第七章 MCS-51输入/输出接口扩展和应用,第八章 数/模、模/数转换,第九章 单片机应用系统设计,单片机原理与应用,课程介绍:“单片机原理及应用 ”是一门技术基础课,它的实践性、应用性很强,通过本课程的学习,使学生较好地掌握MCS-51系列单片微型计算机的基本结构、工作原理、接口技术和应用等方面的知识。掌握单片机应用系统的设计和应用程序的设计方法,学习单片机应用于工业测控等方面的基本技术。并通过实践环节的学习,学会单片机应用系统的设计和调试方法。为将来从事自动测控技术、智能电器、电子、检测等工业领域相关工作,进行各种智能化电子产品的设计和研发等提供技术准备,奠定坚实的技术基础。,单片机原理与应用,教学内容:单片微型机的基本工作原理汇编语言程序设计方法单片微型计算机应用单片微型计算机应用系统设计方法学习方法:同学来思考!,第1章 计算机系统概述,讲授内容:1.计算机的发展、应用以及分类 2.单片机概述 3.单片机的发展过程4.常用单片机系列简介5.单片机的应用领域6.微型计算机的常用术语7.数制、码制8计算机中数的表示 本章重点: 1. 微处理器、微机和单片机的基本概念、单片机的结构特单片机特点与应用。常用术语。2.数制、码制。3.计算机中数的表示。,第一节计算机的发展、应用以及分类,一、微型计算机组成(冯诺伊曼机 )硬件:微处理器,存储器,总线,I/O接口软件:系统软件,应用软件,二、微型计算机的分类,多板机,二、微型计算机的分类,单板机,CPU,CPU芯片,内存条,存储器接口,存储器芯片,输入输出接口,输入输出接口芯片,定时计数器芯片,A/D、D/A芯片,输入输出接口芯片,二、微型计算机的分类,单片机,单 硅 晶 片,CPU,存储器,控制电路,定时器,时钟电路,I / O口,二、微型计算机的分类,微处理器 微型计算机的控制和运算器部分; 微型计算机 有完整运算及控制功能的计算机,包括微处理器、存储器输入/输出(I/O)接口电路以及输入/输出设备等; 单片机 单片微型计算机,它将CPU、RAM、ROM、定时器/计数器、输入/输出(I/O)接口电路、中断、串行通信接口等主要计算机部件集成在一块大规模集成电路芯片上,组成单片微型计算机简称单片机 。 单片机的形态是一块芯片,但是它已具有了微型计算机的组成结构和功能。由于单片机的结构特点,在实际应用中常常将它完全融入应用系统之中,故而也有将单片机称为嵌入式微控制器,第二节 单片机概述,一、单片机发展概述 一般根据控制应用需要: 可设计成通用单片机、专用单片机按内部数据总线的宽度: 单片机分为4位、8位、16位及32位等。Intel 8位单片机的发展: 第一代:以1976年推出的MCS-48系列为代表。 第二代:以MCS-51的8051为代表的单片机, 第三代:以51系列、AVR、PIC等为代表。,单片机发展四个阶段,第一代:单片机初级阶段。第二代:单片机上升阶段。第三代:微控制器构成阶段。第四代:微控制器全面发展。,二、单片机的发展方向,未来单片机技术的发展向多功能、高性能、高速度、低电压、低功耗、外围电路内装化以及片内存储器容量增加的方向发展。 1)强化指令功能 2)增加各种接口部件 3)提高专用程度,三、MCS-51单片机系列,四、80C51单片机系列,80C51也是Intel公司的产品,与8051是完全兼容的,兼容包括指令、引脚信号、总线等诸多个方面。 80C51芯片采用CHMOS工艺。CHMOS是CMOS和HMOS的结合,80C51除了具有HMOS高速度和高密度的特点之外,还具有CMOS低功耗的特点。,五、常用单片机系列简介,1、ATMEL单片机 ATMEL公司所生产的ATMEL89系列单片机(简称89系列单片机),就是基于Intel公司的MCS-5l系列而研制的,该公司的技术优势在于Flash存储器技术。 应用较多的有:AT89C51系列 STC89C51/52系列 SST89系列 AT-tiny、AT90/、ATmega等系列 这些都是是一种可下载的Flash单片机,它和IBM微机通信进行下载程序十分方便。,五、常用单片机系列简介,2、Philips单片机 Philips公司的的单片机都属于MCS-51系列兼容的单片机。3、Maxim-Dallas单片机4、WinBond单片机5、Motorola单片机6、其他公司的单片机 1)NEC单片机; 2)东芝单片机; 3)Epson单片机;8051内核的单片机 ,其他单片机 。,六、单片机的一般结构、特点及应用,1、单片机的一般结构一般 单片机有2种基本结构形式: 一种是在通用微型计算机中广泛采用的将程序存储器和数据存储器合用一个存储空间的结构,称为普林斯顿(Princeton)结构或称冯诺依曼结构; 另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Har-vard)结构。Intel公司的MCS-51和80C51系列单片机采用的是哈佛结构。目前的单片机以采用程序存储器和数据存储器截然分开的结构较多。,2、单片机的特点,1)体积小,成本低,运用灵活,易于产品化2)可靠性高,3、单片机的应用工业方面 农业方面 仪器仪表方面 通信方面 日常生活用品方面(消费类产品) 导航控制与数据处理方面汽车控制方面,第三节 微型计算机的常用术语,1位(Bit) 位是计算机中构成信息的最小单位,表示二进制数中的某个数位“0”或“1”。Bit是Binarg Digit的缩写。2字节(Byte) 一字节为8位二进制数(bit),是存储器的单位。3字(Word) 字是CPU与输入/输出设备和存储器之间传送数据的基本单位,由若干位组成它与数据总线的宽度(根数)一致,一般一个字是由若干字节组成。4指令 指令(Instruction):指规定计算机完成某种操作的命令。目前计算机只能直接识别由二进制编码的指令,即机器码。,第三节 微型计算机的常用术语,5指令系统 指令系统(Instnction Set):指一台计算机所能识别的全部指令的集合。 6程序 程序(Progrom):为完成特定任务而设计的一组指令有序的集合。7地址 地址(Address)地址指存贮单元的编号。8K、M、G和KB、MB、GB 1K=210=1024;1M=220;1G=230。 KB常用作计算存储器容量的单位。1KB=1024Byte;MB;GB依此类推。 9时序 所谓时序,就是计算机在工作过程中,CPU控制器所发出的一系列控制信号在时间上的相互关系。,第四节 数制及其转换,对于一个十进制数an an1a2 a1 a0 . a1 a2am可以表示为: N= an10 nan110 n1a1101a0100a1101a2102am10m由上所述,按进位计数制规则,可以得到任意一个R进制NR的表示方法: 其中:R为基数;k为位置i处的数码,其范围为0 R1中的任意一个整数;m,n,i 为正整数。,一、常用数制 1、十进制数,其一为基数是10,用0,1,2,3,4,5,6,7,8,9十个数码表示数值,逢十进一。其二为位置i处的位权值是10 i。一般用后缀D 表示。例如:1985 = 1000+900+80+5 = 1103+9102+8101+5100 如 1985D ,或无后缀。,2、二进制数 二进制数的特点:其一为基数是2,有0,1两个不同的数码表示数值,逢二进一。其二为各数位上的位权值是2 i。二进制数的后缀为B。,2、二进制数,二进制表示数值的方法为: 其中k i = 0或1 例如:1001.101B =123+022+021+12012-1 + 02-2 + 12-3 = 9. 625D,3、八进制数 八进制数的特点:其一为基数是8,有0,1,2,3,4,5,6,7八个数码表示数值,逢八进一。其二为各数位上的位权值是8 i。八进制数的后缀为Q。用八进制表示数值的方法为: 其中k i = 0,1,2,3,4,5,6,7例如:45.75Q = 48158078-158-2,4十六进制数,十六进制数的特点:其一为基数是16,有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个数码表示数值,逢十六进一。其二为各数位上的位权值是16 i。十六进制数的后缀为H。用十六进制表示数值的方法为: 其中k i = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F例如:56B.C3H = 51626161111601216-1316-2,二、进制间的转换1、二进制数与十进制数之间的转换,1)二进制数转换成十进制数 方法是:将二进制数按“位权”展开再相加即可。例111011.11B = 12302212112012-112-2= 80210.50.25=11.75D,2、十进制数转换成二进制数十进制数转换成二进制数,分整数部分和小数部分分别转换。整数部分:除2(基数)取余数法;小数部分:乘2(基数)取整数法。,例12 将152. 0.375D转换为二进制数结果为: 152. 0.375D = 10011000 .011B,3、二进制数和八进制数、十六进制数间转换,二进制数到八进制转换采用”三位对应一位” 001 000 110 . 010B 1 0 6 . 2 Q 3 5 2 . 6 Q 011 101 010 . 110B,二进制数到十六进制数 转换采用”四位对应一位” 0100 0110 . 0100B 4 6 . 4 H B 6 . 8 H 1011 0110 . 1000 B,第五节 码制,非数值型数据是指声音、图象、字符等类型的数据,对这类数据进行编码 码制 一、ASCII码 在计算机系统中采用美国标准信息交换代码(American Standard Codefor Information Interchange)作为标准,简称ASCII码。其中低7位表示字符本身的编码,第八位(bit7)用作奇偶校验位或规定为0 。,基本ASCII码表,二、二进制编码的十进制数BCD码,BCD码: 是由四位 二进制编 码表示一 位十进制 数。 常用BCD码,第六节 计算机中数的表示,一、机器数和真值机器数:数值数据在计算机中的表示形式真值 :机器数所代表的实际数值 机器数基本特点:1)数的符号数值化,数的最高位,为符号位用“0”表示正号,用“1”表示负号 2)数的位数固定 ,计算机内一次能表示二进制数的位数叫计算机的字长,一台计算机的字长是固定的。字长有8位、16位、32位和64位。,机器数和真值举例,例如,设字长为8位,有数+13,-13,求机器数和真值。 解: +13的真值是+1101B,机器数为00001101B; -13的真值是-1101B, 机器数为10001101B。0的原码表示形式:0 原= 00000 0 原= 10000,二、机器数的表示方法,机器数表示方法有三种:原码、反码和补码 1、原码表示法X= +X1X2Xn X原= 0 X1X2XnX=X1X2Xn X原= 0 X1X2Xn例16写出真值X1 = +1011 X2 = 1011的原码,设字长为8位。 X1 原 =00001011 X2 原 = 10001011,1、原码表示法,0的原码表示形式:0 原= 00000 0 原= 100008位原码表示的最大和最小数。MAXX原=01111111 原= 1111111B =127MINX原=11111111 原 = 1111111B =1278位原码表示整数的范围是127127,2、反码表示法,X= +X1X2Xn X反= 0X1X2XnX=X1X2Xn X反= 0反 = 0000000 0反 = 11111111例17写出真值X1 = +1100111 X2 = 1100111的反码。 X1反 =01100111 X2 反= 10011000例18写出8位反码表示的最大和最小数。MAXX 反=01111111 反= 1111111B=127MINX 反=10000000 反= 1111111B=1278位反码表示整数的范围是127127,3、补码表示法,X= +X1X2Xn X补=X原= 0 X1X2XnX=X1X2Xn X补=X 反+1例19写出真值X1 = +1100111 X2 = 1100111的补码。X1补 =01100111 X2 补= 10011001由定义可知:0补 = 0补 = 0补 = 00000补码中零的表示是唯一的。8位的补码表示的数值的范围是128+127。,4、补码的性质,补码的符号位是数值的一部分,因此补码的符号可以参加运算。1)在补码的表示中,0只有一种表示,即00000,负数补码的表示范围比原码多一种组合,即10000可以表示绝对值最大的负数,此时最高的1表示符号,又表示数值。 8位的补码表示的数值的范围是128+127。2)负数补码的实质是将负数映射为正数,从而可以化减法为加法,即: XY 补 = X(Y)补 = X补Y补。3)已知一数的补码,求该数负数的补码。 方法是:连同符号位一起求反再加一。4)已知一数的补码,求该数负数的原码。 方法是:X原=X补补,在微型计算机中,带符号数用补码表示,减法可用补码相加来实现,运算结果为补码。5、负数补码快速求法6、补码运算举例,第二章 MCS-51单片机结构,主要内容:1.MCS-51单片机组成(结构、引脚功能)2.并行I/O端口结构3.储器组织与操作重点理解:1 .MCS-51系列单片机存储器结构特点2. 单片机特殊功能寄存器的作用3 .不同场合下单片机引脚的复用功能4 . 单片机的位处理功能及其作用,第一节 内部结构及引脚功能,冯诺伊曼经典结构框架:计算机是由运算器、控制器、存储器、输入和输出设备五部分。一、 MCS-51单片机结构 1、中央处理单元CPU(8位):数据处理、位操作(位测试、置位、复位)2、只读存储器ROM(4K、8K、16K、32K、64K)3、随机存取存取器RAM(128B、256B、512B,1024B)4、21个特殊功能寄存器(SFR)5、并行输入/输出口:I / O(32线):系统总线、扩展外存、I / O接口芯片6、串行输入/输出口: UART (二线):串行通信、扩展I / O接口芯片7、定时/计数器 T(16位增量可编程)它与CPU之间各自独立工作,当它计数满时向CPU中断8、时钟电路 fosc: 分为内部振荡器、外接振荡电路9、中断系统: 五源中断、两级优先,可编程进行控制。,MCS-5单片机的结构框图,二、MCS51的内部结构框图,三、MCS-51的信号引脚,40脚分三类:1、I/O口线32根- MCS-51系列单片机P0、P1、P2、P3共32位,对应着芯片的32根引脚。2、控制线6根RST复位信号,晶振工作后2个机器周期的高电平复位CPU. ALE地址锁存信号访问外部存储器时该信号锁存低8位地址;无RAM时,ALE为晶振6分频;PSEN外部程序存储器读从程序存储器中取指令或读取数据时,该信号有效。EA程序存储器有效地址,EA=1从内部开始执行程序;EA=0从外部开始执行程序;X1时钟振荡器输入端,内部振荡器输入端;X2时钟振荡器输出端,内部振荡器输出端;3、电源线2根VCC,GND电源和地+5V电源供电,,图23 8031引脚,第二节 MCS-51存储器系统,MCS51系列单片机其存储结构特点是:将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构的单片微机称为哈佛型结构单片微机。在物理上有4个相互独立的存储空间:片内和片外程序存储器;片内和片外数据存储器。在逻辑上有三个彼此独立的地址空间:(1)片内外统一编地址的64KB程序存储器地址间;(2)256字节的片内数据存储器地址空间;(3)64KB片外数据存储器地址空间,一、 MCS51程序存储器,MCS5l采用16位的程序计数器PC和l6位的地址总线,64KB片内、外的程序存储器空间连续、统一 。,二、片内数据存储器,内部数据存储器在物理上又可分成三部分:低128字节RAM、高128字节RAM(仅80320852才有)和专用寄存器(SFR)。,1. 工作寄存器区,2. 20H-2FH位寻址区,既可进行字节寻址,又可进 行位寻址。这16个单元共有168128位。 3. 30H-7FH 通用存储区,数据存储器地址空间,字节地址,位地址,三、特殊功能寄存器,共有21个专用寄存器SFR(Special Functional Register ),它们离散地分布在片内RAM的高128字节地址80H0FFH中。程序计数器PC不占据RAM单元,在除PC外的专用寄存器SFR中,有12个专用寄存器既可字节寻址,又可位寻址。 注意:(1)表中共有5个双字节寄存器。(2)PC也为双字节寄存器,但是不在80H FFH 范围内。 (3)表中,凡地址能被8整除的寄存器都是可位寻址的寄存器。,位地址的表示法例: 位名称 CY 、RS0 寄存器名加序号 PSW.7 ACC.1 字节地址加序号 20H.3 直接位地址 00H,特殊功能寄存器地址空间,1.累加器ACC 累加器A在大部分的算术运算中存放某个操作数和运算结果。2.寄存器B寄存器B主要用于与累加器A配合执行乘法和除法指令的操作。3.程序状态字PSW8位寄存器,用来存放程序状态信息。某些指令的执行结果会自动影响PSW的有关状态标志位,有些状态位可用指令来设置。,特殊功能寄存器的功用,:进位标志位:半进位标 :用户标志位:工作寄存器组选择:溢出标志 P :奇偶标志, A中1的个数为奇数 P = 1;否则 P = 0。,RS1 RS0 寄存器组 内部RAM地址0 0 寄存器组0 00H07H0 1 寄存器组1 08H0FH1 0 寄存器组2 10H17H1 1 寄存器组3 18H1FH,4.堆栈指针SP堆栈是一个特殊的存储区,用来暂时存放数据和地址,它是按照“先进后出”的原则存放数据。栈指针SP为一个8位专用寄存器,每存入(或取出)一个字节数据,SP就自动加1(或减1),SP始终指向新的栈顶。系统复位后钱指针初始化为07H。,特殊功能寄存器,5.数据指针DPTR16位的专用寄存器,由高位字节DPH和低位字节DPL组成。可作为一个16位寄存器使用,也可以作为2个独立的8位寄存器DPH和DPL使用。,6.I/O端口P0P3 专用寄存器P0P3分别是I/O端口P0P3的锁存器。可以把I/O口当作般的专用寄存器来使用,没有专门设置的口操作指令,全部采用统一的MOV指令。,四、MCS-51的堆栈操作,堆栈是一种“后入先出,先入后出”的数据结构。1堆栈的功能堆栈功能有三:一是保护断点;二是保护现场;三是用于数据的临时存放。2堆栈的区域设置栈在片内数据存储器中。这种堆栈的特点是操作速度比较快,但堆栈的容量受限制。3堆栈指针SPSP是一个8位寄存器,它的内容是堆栈栈顶存储单元的地址。当系统复位后,(SP)=07H,由于堆栈开辟在RAM的30H7FH单元中,故在程序设计时应注意把SP的值初始化为30H以后,一般堆栈指针的位置是可以上下浮动的。,4堆栈的类型堆栈有两类:地址增大型和地址减小型。MCS-51采用的是地址增大型,如图所示:地址增大型堆栈,栈底在低位地址单元,随着数据的入栈,地址递增,SP的内容增加,指针向上移动;反之,随着数据的出栈,地址递减,SP的内容减小,指针向下移动。进栈操作:先修改指针,再输入数据。即先SP加1,后写入数据。出栈操作:先读出数据,再修改指针。即先读出数据,后SP减15堆栈的使用 一是自动式即在调用和中断时自动进栈;另一种是指令式,要用专用的堆栈指令进行操作(PUSH,POP)。,五、片外数据存储器,(1)根据地址总线宽度,在片外可扩展的存储器最大容量为64KB,地址范围为0000HFFFFH。,(2)片外数据存储器与程序存储器的操作使用不同的指令和控制信号,允许两者的地址重复。因此,片外要扩展的数据存储器与程序存储器各为64KB。,(3)数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存在重叠,通过不同指令来区别(对片外RAM用MOVX指令),所以也允许两者的地址重复,内部数据存储器的地址00FFH,外部扩展数据存储器的地址可以从0000HFFFFH。,注:采用R0、R1或DPTR寄存器间址方式访问片外数据存储器。当采用R0、R1间址时只能访问低256字节,采用DPTR间址可访问整个64K字节空间。,第三节 并行I/O接口,一、P0口的位结构与功能 8位漏极开路型双向并行IO口 使用:P0口为三态双向口,即可作为一般I/O口使用,也可作地址/数据总线口。 (1)P0口作一般I/O口-“读引脚先写1”“在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态,可作高阻抗输入” (2)访问外部存储器时,它是一个复用的地址/数据总线。(分时使用)输出地址总线低8位A7A0(利用ALE信号的下降沿将地址锁存,锁存)作数据总线 D7D0 8。,P0口某位的结构图,二、P1口的位结构与功能,1)P1口是个准双向IO口,2)应用:通常作一般I/O口用,三、P2口的位结构与功能,(1)在结构上比P0口少了一个输出转换控制部分,多路开关MUX的倒向由CPU命令控制,且P2口内部接有固定的上拉电阻 。(2)P2口既可作为通用IO口使用(先写“1”),又可作为地址总线口,输出高8位地址。(A15A8),四、P3口的位结构与功能,P3.0(RXD):串行输入端。P3.1(TXD):串行输出端。P3.2(INT0):外部中断0输入端,低电平有效。P3.3(1NT1):外部中断1输入端,低电平有效。P3.4(T0):定时计数器0外部事件计数输入端。P3.5(T1):定时计数器1外部事件计数输入端。P3.6(RD):外部数据存储器写选通信号,低电平有效。P3.7(WR):外部数据存储器读选通信号,低电平有效。,P3口与Pl口的输出驱动部分及内部上拉电阻相同,但比P1口多了一个第二功能控制部分的逻辑电路。,单片机的片外三总线结构,地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;控制线:P3口的8位加上/PSEN、ALE共同完成 控制总线。,P0P3的功能及使用时的注意事项,1. 在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用IO端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口作为双向总线,分时作为低8位地址和数据的输入输出线。,2. P0口作为通用双向IO口用时,必须外接上拉电阻。,3. P3口除了作通用IO使用外,它的各位还具有第二功能。当P3口某一位用于第二功能作输出时,则不能再作通用IO使用。,4. 当P0P4端口用作输入时,为了避免误读,都必须先向对应的输 出锁存器写入“l” ,使FET截止。然后再读端口引脚。 如:MOV P1,#0FFH MOV A, P1,5. I/O口 可按字节寻址,也可按位寻址,位处理功能,单片机的位处理功能很强,体现在:(1)具有专门的位累加器Cy;(2)具有专门的位存储区;(3)一些特殊功能寄存器可以位寻址;(4)具有丰富的位操作指令。 如SETB P1.0 CLR P1.0,第四节 振荡器、时钟电路及时序,一、时钟电路 MCS5l单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTALl和XTAL2分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器,如图24所示。这种方式形成的时钟信号称为内部时钟方式。图25所示,为外部时钟方式,二、有关51单片机CPU的时序,(1)振荡周期: 指为单片机提供定时信号的振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。(2)时钟周期:也称为状态周期,用S表示。时钟周期是计算机中最基本的时间单位,在一个时钟周期内,CPU完成一个最基本的动作。MCS51单片机中一个时钟周期为振荡周期的2倍。(3)机器周期:完成一个基本操作(例如,取指令、存储器读、存储器写等)所需要的时间称为机器周期。MCS51的一个机器周期含有6个时钟周期。(4)指令周期 完成一条指令所需要的时间称为指令周期。MCS5l的指令周期含14个机器周期不等,其中多数为单周期指令,还有2周期和4周期指令。4周期指令只有乘、除两条指令。,复位是单片机的初始化操作,其作用是使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作 。RST端至少要保持2个机器周期(24个振荡周期)为高电平,才完成一次复位。,复位后片内各专用寄存器的状态,第五节 MCS-51单片机的复位,几种实用的复位电路,本章重点:指令的寻址方式、功能、使用方法 指令使用的一般方法和技巧 讲授内容:MCS-51单片机的寻址方式 MCS-51单片机指令分类 应用举例,第三章MCS-51单片机指令系统,基本概念,指令:指示计算机完成特定操作的命令。指令系统:计算机能够执行全部命令的集合。指令系统特点:没有通用性 ,取决于计算机的硬件结构,指令系统因机器而异。程序:为完成某项特定任务的一组指令的集合。程序执行过程:计算机按程序一条一条地依次执行指令,从而完成指定任务。程序功能:用户通过设计各种程序,让计算机完成各项任务。,程序设计语言,机器语言:用二进制代码表示指令和数据,CPU可直接识别。汇编语言:用助记符表示指令操作功能,用标号表示操作对象,与机器语言一一对应。高级语言:独立于机器,面向过程,接近自然语言和数学表达式。,第一节 MCS51单片机的寻址方式,一、指令格式1、指令所包含的内容操作码:规定指令的操作功能操作数:指令操作的具体对象(地址、数据).注:有些指令中有2个操作数,有些只有一个,有些无操作数,仅有操作码。2.、指令格式 单字节指令 双字节指令 三字节指令,二、指令分类及符号约定,1、指令分类MCS-51单片机的指令系统共有111条指令,7种寻址方式,共分为五大类:数据传送指令(29条)算术运算指令(24条)逻辑运算指令(24条)控制转移指令(17条)位操作指令 (17条),2、常用的符号,#data8、#data16:分别表示8位、16位立即数。 direct:片内RAM单元地址(8位),也可以指特殊功能寄存器的地址或符号名称。addr11、addr16:分别表示11位、16位地址码。rel:相对转移指令中的偏移量,为8位带符号数(补码形式)。bit:片内RAM中(可位寻址)的位地址。A:累加器A;ACC则表示累加器A的地址。Rn:当前寄存器组的8个工作寄存器R0R7。Ri:可用作间接寻址的工作寄存器,只能是R0、R1。:间接寻址的前缀标志。 : 当前指令存放的地址。(x): x中的内容。,三、寻址方式,1、立即寻址 立即寻址是指在指令中直接给出其操作数,该操作数称为立即数。为了与直接寻址指令中的直接地址相区别,在立即数前面必需加上前缀“#”。例如:MOV A,#30H,2、直接寻址 直接寻址是指在指令中直接给出存放数据的地址(注意:不是立即数,并且只限于片内RAM范围)。直接寻址只能访问特殊功能寄存器、内部数据存储器和位地址空间。例如:MOV A,30H 比较以上两指令的区别,A,30H,A,30H 55,55H,三、寻址方式,3、寄存器寻址寄存器寻址是指指令中的操作数为寄存器中的内容。例如:MOV A,R14、寄存器间接寻址寄存器间接寻址是指指令中的操作数在寄存器的内容所指的地址单元中。例如:MOV R1,#30H;把立即数30H送R1寄存器 MOVA,R1 ;把30H单元中的数送到A中,比较以上两指令的区别,A,R1,A,30H 11(R1),11H,三、寻址方式,5、变址寻址变址寻址用于访问程序存储器中的一个字节,该字节的地址是:基址寄存器(DPTR或PC)的内容与变址寄存器A中的内容之和。例如: MOV DPTR,#3000H ;立即数3000H送DPTR MOV A,#02H ;立即数02H送A MOVC A,A+DPTR ;取ROM中3002H单元中的数送A,A(前),DPTR,+,A(后),三、寻址方式,6、相对寻址 以当前值为基准,加上相对偏移量rel形成转移地址转移范围:以当前值起始地址,相对偏移在字节单元之间。相对寻址方式为相对转移指令所采用,转移的目的地址为:目的地址=转移指令所在地址+转移指令字节数+rel,计算方法PC目标=PC当前+rel =(PC指+指令字节数)+relrel=PC目标 -(PC指+指令字节数),三、寻址方式,7、位寻址位寻址是指对片内RAM的位寻址区(20H2FH)、可以位寻址的专用寄存器的各位,并进行位操作的寻址方式。例如: MOVC,00H;把20H单元中D0位的值送C位 MOVP1.0,C;把C位中的值送P1口的D0位 SETB20H. 0;把00H位置1,位地址的表示方法位名称 例:CY、RS0寄存器名加序号 例:ACC.1、P0.1字节地址加序号 例:20H.3直接位地址 例:00H、 07H,操作数的7种寻址方式和寻址的空间,第二节 数据传送类指令,数据传送类指令特点:除第一操作数为A的指令影响P位外,其它并不影响标志位有三种传送指令: MOV 片内RAM和特殊功能寄存器之间的传送 MOVX 片外RAM与ACC之间的传送 MOVC 程序存储器的数据送ACC,一、片内RAM传送的指令(1)以累加器CC 为目的操作数 ,n ; , direct; , Ri (R1,R0) , #data,(2)以 Rn 为目的操作数 n, A n, direct n, #data( 3)以直接地址为目的操作数 direct, direct, Rn direct, #data direct, Ri (R1,R0) direct, direct ;,(4)以 寄存器间址 为目的操作数 Ri, direct; Ri, A; Ri, #data(5)16位数据送数据指针 DPTR DPTR,#Ddata16,例如:MOV 30H,#7AH ;将立即数7AH送片内RAM 30H单元中 MOV R0,#30H ;将立即数30H送R0寄存器 MOV A,R0 ;将R0指定的30H中的数7AH送A中 MOV DPTR,#1000H;将1000H送DPTR寄存器,练习:将R1中的内容送R2?,二、片外RAM传送指令组 执行过程中会使/WR、/RD有效 片外RAM单元的地址为16位,一般用DPTR间接寻址;也可使用Ri来间接寻址(低8位编址时)。,(1)外部RAM低256字节单元与之间的传送 , i i, 例: 0, , 0;将外部RAM单元内容()外部RAM单元与之间的传送 ,DPTR DPTR, 例: DPTR, #2000H ,DPTR;将外部RAM中2000H单元内容A,思考:将片内RAM 50H单元内 片外RAM 5000H单元,三、程序存储器(ROM)传送指令,MOVC A,A+DPTR;(A)(A)+DPTR))MOVC A,A+PC ;(A)(A)+(PC) 以PC的当前值为基址,A为变址,例3-1:在ROM 1000H开始存有5个字节数,编程将第二个字节数取出送片内RAM 30H单元中。程序段如下:MOV DPTR,#1000H ;置ROM地址指针(基址)DPTRMOV A,#01H ;表内序号送A(变址) MOVC A,A+DPTR ;从ROM 1000H单元中取数送到AMOV 30H,A ;再存入内RAM 30H中ORG1000H ;伪指令,定义数表起始地址TAB: DB 55H,67H,9AH,;在ROM 1000H开始的空间中 定义5单字节,例3-2:设某数N已存于20H单元(N10),查表求N平方值,存入21H单元。 程序段如下: MOV A,20H;取数N ADD A,#01;加查表偏移量 MOVC A,A+PC;查表 NOP TAB:DB 00H,01H,04H,09 ;定义数表,由于PC为程序计数器,总是指向下一条指令的地址在执行第三条指令“MOVC A,A+PC”时,在查表前应在A累加器中加上查表偏移量。 用DPTR查表时,表格可以放在ROM的64K范围,用MOVC A,A+PC指令时则必须把表格就放在该条指令下面开始的255个字节的空间中。,四、数据交换指令,(1)字节交换 XCH A, Rn ; (A)(Rn) XCH A, direct XCH A, Ri,思考:用不同的方法实现片内RAM(20H)R1,有3条为整个字节相互交换,XCHD指令为低4位相互交换,SWAP为ACC中的高、低4位互换。,A,30H 11,55H,55H,11H,a7a4,a3a0,(2)半字节交换 XCHD A, Ri ; (3)ACC中的高、低4位互换。 SWAP A,例如:已知(A)=34H,(R6=29H 执行以下指令后,(A)=? XCH A,R6; SWAP A,堆栈是在内RAM开辟的一个数据的暂存空间,遵守“后进先出”原则操作,其地址指针为SP,它指出栈顶的位置,复位时SP=07H。,入栈:PUSH direct ;SP先加1,再将数据压栈。出栈;POP direct ;数据先出栈,再SP减1。,五、堆栈操作指令,A,88H,例如,已知(A)=44H,(30H)=55H,执行以下程序段MOVSP,#5FH ;栈起点设置为5FHPUSH ACC ;A中的44H压到60H中保存PUSH 30H ;30H中的55H压到61H中保存POP 30H ;把61H中的55H弹出到30HPOP ACC ;把60H中的44H弹出到A中,88H,指令运用举例: 例:将片内RAM 30H单元与40H单元中的内容互换。,方法1(直接地址传送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$,方法2(间接地址传送法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$,方法3(字节交换传送法): MOVA,30H XCHA,40H MOV30H,A SJMP$,方法4(堆栈传送法): PUSH30H PUSH40H POP30H POP40H SJMP$,例:将片内RAM 30H单元与40H单元中的内容互换。,例:设A中有 一个BCD码常数,试用查表法获得其相应的ASCII码,解法: MOV DPTR,#TAB MOVC A,.A+DPTR TAB:DB 30H DB 31H DB 32H,33H,34H,35H ,解法: MOVC A,A+PC TAB:DB 30H,31H,32H,33H DB 34H,35H,36H,37H ,第三节 算术运算类指令 算术运算类指令有加、减、乘、除法指令,增1和减1指令,十进制调整指令,共24条,使用时应注意判断各种结果对哪些标志位(CY、OV、AC、P)产生影响。,一、加法指令1、不带进位的加法指令 指令助记符为ADD,4条指令的第一操作数都是A,第二操作数有4种寻址方式 。,ADD A,Rn ;A(A)+ (Rn) ADD A,direct;A(A)+(direct) ADD A,Ri ;A(A)+ (Ri) ADD A,#data ;A(A)+data,练习:98H+75H分析各标志位的置位情况,ADDC A,Rn ;A(A)+(Rn)+(CY) ADDC A,direct;A(A)+(direct)+(CY) ADDC A,Ri ;A(A)+((Ri))+(CY) ADDC A,#data ;A(A)+data +(CY),2、带进位的加法指令 指令助记符为ADDC,比ADD多了加CY位的值(之前指令留下的CY

温馨提示

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

评论

0/150

提交评论