单片微型计算机原理及应用全套教学课件_第1页
单片微型计算机原理及应用全套教学课件_第2页
单片微型计算机原理及应用全套教学课件_第3页
单片微型计算机原理及应用全套教学课件_第4页
单片微型计算机原理及应用全套教学课件_第5页
已阅读5页,还剩262页未读 继续免费阅读

下载本文档

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

文档简介

单片微型计算机原理及应用,学习资源免费共享联盟基地,说明:该资料由学习资源库广大学友共享整理,原创版权归原作者所有,仅供学习使用!学习资源库课件免费共享中心:/thread.php?fid=30,第1章 单片计算机概述1-1现代计算机技术的两大分支 MPU微处理器(用于大数量数值计算无止尽要求,满足数字模拟 仿真,数字信号处理,图象分析,人工智能等领域)。 重要指标:数据总线宽度及外围寻址能力。数据总线宽度从816 3264位过渡,指令系统上突出了数字运算和逻辑运算 MCU微控制器(用于快速实时对外部事件、对象实现信号采集, 判断、处理、参数控制等要求,构成工控系统,适应各种对象的控制 需要) 重要指标:高速I/O口,计数器的捕获,比较功能,A/D,D/A转换,功率 驱动I/O口,位寻址及位操作,程序运行监督等,数据总线宽度及外围寻 址只是单片机众多指标之一。,1-2 微型计算机 单板机 单片机1.微型计算机 若将运算器与控制器集成在一块硅片上,称该芯片为中央处理器CPU或MPU。若再将它与大规模集成电路制成的主存储器,I/O接口电路用总线结构联系起来就构成了微型计算机2.单板机 将CPU 、 RAM、 ROM、 I/O接口封装在一块印刷电路板上,就成为单板机3.单片机 若在一块半导体芯片上,能容纳一台数字计算机的4个基本组成部分,则这种芯片就被称为单片微型计算机,1-3单片机的发展简况及应用 1976年INTEL公司推出第一个8位单片机系列(MCS-48)至今,经历了外围集成、 总线完善、功能集成、 全方位发展阶段,已走过了三代发展历程一、 第一代单片机始于1976年,主要实现单个芯片上计算机的集成,为初级阶段。典型产品:Intel公司MCS-48系列、 Motorola公司6801系列、 Zilog公司Z8系列特点:采用专门结构设计,将CPU及外围单元集成在一块芯片上,指令系统设计面向控制功能要求,具有较强的控制功能。8位CPU,并行I/O口,8位定时/计数器,RAM等。无串行I/O口,寻址范围不大于4K。,二、 第二代单片机19781983。高性能单片机阶段。典型代表:Intel的MCS-51系列特点:完善外部总线,确立了单片机的基本控制功能。单片机均带有串行I/O口,具有多级中断处理系统, 16位定时/计数器,寻址范围可达到64K三、第三代单片机1983至今。8位单片机巩固完善,16位单片机推出普及应用及32位单片机也投入使用典型产品:各大公司纷纷开发出自己的单片机系列,如Motorola,Philips,Intel等技术特点:全速发展单片机的控制功能。16位单片机除CPU为16位以外,片内RAM/ROM容量进一步扩大,片内RAM增加为232B,ROM为8KB,且片内带有高速I/O部件,保证程序可靠运行的WDT,多通道10位A/D转换器,具有8级中断,人机接口等等。,1-4 我国单片机16年探索时期(80年代初)起步时期(19861990)开拓时期(19901995)发展时期(1995至今)5 新时期新理念,1-5 单片机的结构特点以MCS-51系列举例:在数据RAM区开辟了一个工作寄存器区,区内共分4组,每组8个寄存器,共计32个工作寄存器,提供21个特殊功能寄存器,完成定时,串口,中断等功能存储结构上:从空间将程序、数据存储器分开,采用不同寻址方式,用两个不同地址指针。PC-程序存储器,DPTR-数据存储器I/O接口特点:通道口引线在程序控制下都可有第二功能,用户可灵活使用。内部有一个全双功的串行接口,可同时发送接收数据有专门的位处理机。,1-6单片机的开发及开发工具开发:提出任务定型生产投入使用的过程称 对微机进 行开发包括:系统(产品)总体方案论证,设计硬件, 软件开 发,目标样机的调试等。开发过程明显特点:微计算机化的产品软,硬件分 不开为 此设计了专门的微 型机开发系统MDSP3图1-2,单片计算机开发系统一般应具有4方面的基本功能:硬件电路诊断、检查用户程序输入、修改程序运行、调试、单步、断点运行程序可固化到EPROM中去,1-7 单片机的应用领域工业自动化智能仪表及集成智能传感器家用电器领域办公自动化五 汽车、航空航天电子系统,18 嵌入式应用系统一 定义: 将计算机软件和硬件结合起来,构成一个专门的计算装置,完成特定的功能或任务。是一个大系统或大电子设备中的一部分,工作在一个与外界发生交互并受到时间约束的环境中,在无人工干预的情况下进行实时控制。其中软件用以实现有关功能并使其系统具有适应性和灵活性;硬件用以满足性能甚至安全的需要。二 特性: 1 完成单一或一组紧密相关的特定功能 2 具有高性能和实时的要求,且这些要求正不断增加 3 系统作为设备的一部分,其运行一般不需要人工干预,系统的电源可靠性和安全性通常是影响设计的重要因素处理器的选择是嵌入式系统设计关键一步用途:用途很广,如移动通信设备(手机)、数字相机或摄像机、洗衣机、微波炉、打印机、复印机、工业仪器/仪表、汽车刹车、引擎控制等。对于各个嵌入式系统其要求是千变万化的,既要求体积小(如手机),性能高(信号处理),又要求安全可靠(如核电站)四嵌入式系统的主要特征实时性是嵌入式系统的主要特征。,五 嵌入式系统开发 嵌入式系统开发或设计与一般意义计算机应用开发或计算机软件设计有很大不同,不但要考虑软件,而且还要考虑硬件设计,不但要考虑功能设计(如完成什么功能),还应考虑性能设计(如精度,实时性,安全可靠性等等一些指标)。,思考题现代计算机技术的两大分支?各自适合的领域2 什么叫单片机?简述微型计算机,单板机,单片机的异同点。世界上第一个单片机是什么系列?什么时间产生的?谁家生产的?数据为几位?(自查资料回答)我国单片机的发展现状?我国主要有哪些从事单片机生产、制造的企业,它们各自产品的性能和特点是什么?5 什么是嵌入式应用系统?嵌入式系统的主要特征是什么? 嵌入式应用系统的开发或设计与一般意义计算机应用开发 或计算机软件设计的不用点在哪里?,第2章 MCS-51单片机的组成及结构分析2-1 MCS-51单片机的内部结构框图(以8031为例)框图见P8 双总线:数据/地址 分时传送8位CPU,片内振荡器4K字节ROM,128字节RAM21个特殊功能寄存器4个P口共32根I/O线可分别寻址64K的外部数据存储器、程序存储器空间2个16位的定时/计数器,5个中断源,2个优先级一个全双工串行口可位寻址,适于布尔处理的位处理机 2-2 CPU结构单片机的CPU由三部分组成:,一 运算器:看书P81 结构: ALU(8位)+TMP1+TMP2+ACC+B+PSW+布尔处理机组成逻辑电路。2 ALU作用:完成2#的四则运算及逻辑运算ACC(A)是一个8位的寄存器,又称累加器。作用:一般在运算前暂存一个数,运算后保存结果,也即A既可放源码,也可放目的操作数。B是一个8位的寄存器作用:用于乘/除运算,或作为其它运算的暂存器。PSW为程序状态标志寄存器,8位。用来存放运算结果的一些特征,每位含义如下表:,注意:CY特性(反映无符号数+/-,有无借进位)。OV(对带符号数而言)功能算术运算:、1及BCD码加法的10#调整逻辑运算:AND 、OR、 CLR、 XRL、 NOT移位运算:左/右移、循环二 布尔处理机17条位操作指令,是单片机CPU中运算器的重要组成部分,有自己的位累加器 位寻址RAM 位I/O空间 位指令系统操作均围绕累加器C进行,位操作指令可寻址:内部数据RAM里的128个位和SFR里的位地址空间,可进行置位,取反,满足条件转移等操作。功能:可方便利用指令完成硬件逻辑完成功能 为用户设置标志。如:置1或置0含义?控制器是CPU的大脑中枢,包括:定时控制逻辑指令寄存器译码器地址指针DPTR程序计数器PC堆栈指针SPRAM地址寄存器16位地址缓冲器,功能:8031或51系列CPU从程序存储器中取出的指令字节指令寄存器储存。在整个分析、执行过程中一直受控于这些指令。指令寄存器中的这些代码被分析翻译成一种或各种电平讯号,这些电平讯号与外部时钟脉冲在CPU定时与控制电路的组合后,形成各种按一定时间节拍变化的电平和脉冲控制信息,在CPU内部协调各部分工作PC:程序存储器指针,每取一条指令地址自动+1SP:8位堆栈指针。指示当前堆栈栈顶地址。注意:单片机复位后,SP=07H,若不重新定义SP,第一个压栈的数据将存入08H单元DPTR:外部数据存储器或I/O口的地址指针为16位,分成两个字节,高字节DPH,低字节DPL8031的时钟:由两种方式产生:内部 外部参看书P8, 2-3 存储器空间及存储器 单片机存储器结构主要特点:程序存储器和数据存储器的寻址空间是分开的。51系列(8031/8032除外) ,有4个物理上互相独立的存储器空间即程序存储器的8051片内有4K ROM 8751片内有4K EPROM 8052,8752片内有8K 字节的容量,注意:8031,8032无片内程序存储器,需在片外外接程序存储器,所以片内有无程序存储器是区别51系列产品8031/8051/8751的重要标志。 片外程序存储器容量,用户可根据需要任意选择,但片内外总容量合起来不得超过64KB片内存放数据的RAM容量为256字节,而片外RAM一般为64KB,这对8031/8051/8751均适用3 空间分配图,一 程序存储器作用:存放要执行的程序指令及固定的表格,常数等。程序计数器:PC 使用地址:16位地址 寻址范围:64K 寻址指令:MOVC对有内部ROM,EPROM的8051,8751,内部程序存储器地址安排在0000H0FFFH的4K空间。外部程序存储器的地址空间为1000HFFFFH之间为60KB。,EA(头上有)接高电平,执行程序当PC0FFFH 寻址内部存储器当PC1000H 控制自动转向外部程序存储器,执行其间的内容EA(头上有)接低电平或接地,取址只对外部程序存储器进行,不用内部程序存储器。8031因无内部程序存储器, EA(头上有)应接地。程序存储器容量可据需要扩展。地址空间原则上可由用户安排注意:单片机复位后程序计数器的内容为0,使单片机必然 从0单元取指令,执行程序。0003H 0023H为定死的5个中断服务子程序入口地址,往往予留该存储空间,而由0000H开始存放一条绝对跳转指令。用户设计的程序则由跳转后的地址开始存放。,单片机访问外部程序存储器需提供两类信号:地址信号确定选中某单元控制信号接在ROM或EPROM的数据允许输出端单片机无专门的地址/数据总线,常用P2口输出高8位地址,P0口分时复用输出地址的低8位及8位数据线,并由ALE将低8位地址锁存在地址锁存器中。访问指令为MOVC单片机的程序存储器是只读的,是单片机的一个特点,数据存储器作用:存放和读取数据。数据存储器分为:内部RAM地址空间为00H FFH,访问指令为MOV外部RAM地址空间为0000H FFFFH,访问指令为MOVX一般情况应充分利用内部数据存储器,仅在数据采集,处理或数据量太大时才扩充数据存储器,常用静态RAM。访问外部数据存储器:采用16位数据存储器地址指针:DPTR地址分配:P2口输出地址高8位,P0口输出地址低8位,ALE锁存地址信号,数据存储器可读/写,内部数据RAM外部数据RAM,内部数据存储器地址:00H FFH共256个字节,由两部分组成 内部数据RAM00H 7FH(包括位地址空间) 特殊功能寄存器80H FFH在内部数据RAM中,有些单元既可对其执行按字节的操作,也可对其中每个单元的8位二进制代码执行按位操作分配为:,由图:在内部RAM128个单元中,3248共计16个单元为位地址空间,计168=128个位。SFR中有12个专用R是可位寻址的计128=96个位,但要除去IP.7 IP.6 IE.6 (96-3)为93个位,总的内部数据存储器共可进行的位操作为221个位地址(128+93=221)内部数据RAM1)结构特点: 单片机内部共有128个字节的RAM,CPU为其提供了丰富的操作指令,均可按字节操作。用户:可当数据缓冲区,也可在其中开辟自己的栈区,还可利用所提供的工作寄存区进行数据的快速交换和处理。单片机的特点之一:内部工作寄存区以RAM形式组成。与CPU直接有关或表示CPU状态的寄存器和堆栈指针SP,A,PSW等统统归并于SFR之中。,在RAM的00H FFH区,按地址划分出四组工作寄存器,每组有工作寄存器8个,分别是R0 R7,共可提供48=32个寄存器。2)作用:用来暂存运算的中间结果以提高运算速度 也可用R0, R1存放8位地址值访问256字节块中的单元, 此时高8位地址事先由P2已定好 R0 R7也可用作计数器,在指令作用下1缺点:与通用寄存器不同的是它们不能组成所谓的寄存器对,因 而也不能当16位地址指针使用3)堆栈指针SP的设置由于它是8位的,只能限制在内部数据存储区,原则上可由用户分配在片内的任意区,只要对SP赋不同初值就可指定不同的堆栈区域。注意:具体操作时堆栈区的设置应和RAM的分配统一考虑即工作寄存器和位寻址区域分配好后,再指定堆栈区域。8031复位后人为做成SP为07H,指向工作寄存区0,因此用户初始化程序都应对SP设初值。一般设在30H以后的范围为合适。8031的堆栈是向上生成的,RAM空间分配建议表如下:,特殊功能寄存器SFR1)地址空间:128 255 地址范围:80H FFH51系列中,除PC和4个工作寄存区外,所有其它寄存器均位于这个地址空间,5个为双字节寄存器,后面学习。MCS-51规定,对SFR只能直接寻址P16表2-6列出了单片机的SFR及他们的映象地址。2)功能:反映了8031的状态8031的状态及控制字可分为两类: 一类与芯片引脚有关 如P口 另一类作芯片内部功能的控制用 如IE8031中的一些中断屏蔽及优先级控制不是采用硬件优先链方式解决,而是用程序在SFR中设定。定时器,串行口的控制字等全以SFR出现,就使单片机有可能把I/O口与CPU,M集成在一起,替代多片机中多个芯片连在一起完成的功能,这是单片机设计的一大特色,P0 P3实际为4个锁存器,(每个锁存器)(一个输出驱动器)(一个输入缓冲器)就构成了一个并行口。51系列共有4个并行口,32根I/O线,每线为双向,且有第二功能位地址空间51系列有很强的位处理功能,丰富的位操作指令,硬件上有位累加器及位地址空间。共有221个位地址范围:00H FFH低128位处于内部数据RAM20 2F字节单元,见图2-8高93位则在SFR区,但不连续,从80H开始,每8个单元有一个可位寻址的专用寄存器,见图2-9位处理的数据仅为一位二进制数,指令系统中位地址及字节地址很好区分,因大多数位操作均围绕C进行,图2-8,图2-9,注意:在内部数据RAM128 255共128个字节单元,SFR只占用了26个字节,其余单元现在无定义,用户不能对这些单元读/写,若要访问会得到一个不确定的随机数,24 I/O口及相应的SFR MCS-51系列单片机,数据线和地址线低8位分时合用通道口0,且地址高8位亦与其它信号合用通道口2,借助于P0P3使每个通道在程序控制下都可有第二功能即可使有限的管脚完成更多的功能。 P0P3四个通道口都包含: 一个锁存器(特殊功能寄存器), 一个输出驱动器 两个(P3为三个)三态缓冲器输入/输出的指令有两类:(这两类的操作是有区别的) 读锁存器 读引脚,一 P0口结构:书P20 由一个输出锁存器,两个三态缓冲器,一个输出驱动电路(由一对FET组成)和一个输出控制电路组成。,2工作原理:从P0口输出A(地址)/D(数据)当P0口输出A/D时,控制信号电平应为1,MUX与地址控制线相连将P0口作为一般I/O口使用i当CPU向端口输出数据时,对应的输出控制信号电平应为0,MUX与锁存器Q的反相连,ii从P0引脚输入(读)数据从P0引脚输入数据应先向P0口写入1,使两个FET均截止,才能用作高阻抗,但在P0口连接外部存储器时,由于访问外部存储器期间,CPU会自动向口0的锁存器写入0FFH,因而对用户来讲,P0口用作A/D总线时则是一个真正的双向口。,注意:有时要用一根口线去驱动一个晶体管的B极,则应向此口写1,晶体管导通,但引脚上的电平却被拉低,若此时再从引脚上读数据,会错读为0。为避免错读的可能性,单片机还提供了另一类所谓读锁存器操作。特点:先读口,随之再对读入数据修改,然后再写到端口上。例:ORL P0,A 操作如下:先将P0口的内容CPU,再将P0口的内容与A按位“相或”,再将结果P0口,实现读修改写操作的指令。目的操作数一般为I/O口的某一位或I/O口概括如下:P0口既可作A/D总线,也可作通用I/O线,在有外部存储器扩充时,它作为A/D总线,时序上先输出低8位地址线到外部地址锁存器,再输入/输出指令代码或数据。在没扩展到外部存储器,作为通用I/O口。当用作输出口时,输出级为漏极开路形式,在驱动NMOS器件时,应外接上拉电阻;用作输入口时,应先由软件向输出锁存器写1,然后方可输入信息。,P1口1 结构:,是一个8位准双向并行I/O口。输出驱动器结构与P0不同,接有内部上拉电阻,可加速输出数据从“0” “1”的转变 。,在位操作方式下,P1口可进行每位单独的I/O操作,给应用带来许多方便。在8032/8052中,P1.0,P1.1有复用功能。除用作一般双向I/O口外,P1.0用作定时/计数器2的外部输入端,并以T2表示,P1.1用作定时/计数器2的外部控制输入,以T2EX表示。P2口1 结构:,工作原理:地址输出:若MUX接通地址端,则地址信号加到输出端经反相器,FET在输出引脚上出现地址信号,数据输出:若MUX接锁存器,则输出信号线路连通。要输出的数据经内部总线锁存入P2,该数据出现在口2的输出引脚上。同样P2中的数据也可由读锁存器内部总线读入CPU。 从引脚输入:若要将口2的某一位做输入时,先要给锁存器写入“1”,使FET封闭,即Q=1,经反相器=0,使FET截止,与P2.X相连的端口=1,不影响P2.X,再经缓冲器读引脚将信号内部总线,读入CPU注意:若不使Q=1的后果,可能使Q=0,反相后=1,使FET导通,与P2.X相连的那一端为0,使口2钳位在低电平,不可能将高电平送入。复位后,各引脚均为高电平,P3口结构:,是一个双功能口,用作I/O口时,功能和P2一样,每位可定义为输入/输出。当P3口工作于第二功能时,应先由软件对输出锁存器置“1”,第二功能是单片机的控制信息,由主机自动产生。各位含义如下:P3.0 RXD 串行输入通道P3.1 TXD 串行输出通道P3.2 INT0 (头上有“-”) 外部中断0P3.3 INT1 (头上有“-”) 外部中断1P3.4 T0 定时器0外部输入P3.5 T1 定时器1外部输入P3.6 WR (头上有“-”) 外部数据存储器写选通P3.7 RD (头上有“-”) 外部数据存储器读选通,工作原理 输出:用于一般I/O口的输出时,选择输出功能端应为“1”,使与非门对Q来说是畅通的。用于第二功能做专用信号输出时,应使锁存器Q=1,使与非门对选择输出功能是畅通的。输入:无论该位是用作 一般I口或第二功能入口,相应的输出锁存器和选择第二功能均应置“1”(道理同前)注意:51系列单片机所有口上的锁存器在上电复位时均置“1”,自然符合要求,使用者不必做任何工作小结P0口:地址低8位与数据线分时使用P1口:按位可编程的I/O口P2口:PC高8位,DPTR高8位或I/O口P3口:双功能口,实际应用时口子常用来扩展系统,要考虑P口的输出驱动能力一般P1,P2,P3的输出能驱动3个LS TTL输入,P0能驱动8个LS TTL输入,都可直接驱动固态继电器工作。对NMOS而言,P1,P2,P3无需外加提升电阻就可直接驱动,P0需外加提升电阻。但当P0用作地址/数据线时,可直接驱动MOS输入而不必外加提升电阻,实际应用时这些因素都要加以考虑利用端口组成8031应用系统举例何谓最小系统?包含有程序存储器的单片机系统为最小系统。以8031 为例学习:8031最小系统的结构图如P24图2-14,2-5 MCS-51单片机的引脚信号和CPU时序8051 单片机引脚功能注意:51系列单片机是一个有40个引脚双列直插式器件。4个并行I/O口共32根引脚,分别做: 地址线 数据线 I/O口另外有6根控制线,2根电源线,共计40个引脚P0 P3(已学过)控制信号引脚:6根ALE/PROG (头上有“-”)地址锁存允许信号。访问外部存储器时,当ALE的下降沿到来时,将P0口的低8位地址信息打入锁存器进行EPROM编程时,该口又是编程脉冲输入端(PROG头上有“-”),PSEN(头上有“-”)为外部程序存储器选通信号,低电平有效。在读外部程序存储器时,每个机器周期内输出两次有效信号在执行内部程序存储器中的程序时该信号无输出 访问外部数据存储器时, PSEN(头上有“-”) 无有效信号输出EA (头上有“-”)/VPP EA (头上有“-”)为低电平,访问外部程序存储器 EA (头上有“-”)为高电平,若PC值0FFFH,访问内部程序存储器,若PC值0FFFH,访问外部程序存储器, VPP为内部EPROM的编程电源(+21V)输入,XTAL1振荡器的倒相放大器的输入端,使用外振荡器时,须接地电位 XTAL2振荡器的倒相放大器的输出端和内部时钟发生器的输入,使用外振荡器时,须接外振荡器信号 RST/VPD为复位端。VCC处于掉电情况下,作为内部RAM的备用电源。复位后P0P3口输出高电平,体现在编程上即P0.0 P3.7全为“1”,SP指针重新赋值为07H,其它SFR和程序计数器PC被清“0”,复位后各内部寄存器初态见书P28。常见的复位电路有两类: 上电复位电平/脉冲方式开关复位,上电复位图电源线VCC编程,检验及正常工作时的电源为+5VVSS接地端,CPU时序 单片机的基本操作周期为机器周期。一个机器周期可分为6个状态,分别记作S1S6。每个状态由两个脉冲组成(即两相),前一个脉冲叫(相位1)P1,后一个脉冲叫(相位2)P2,所以一个机器周期共有12个振荡脉冲。将一个机器周期的12个振荡脉冲分别用S1P1S1P2S6P6表示,书P29图2-19规定:51系列单片机的振荡频率为1.2-12MHZ,P1在每个状态的前半周期有效。P2在每个状态的后半周有效。一般情况下,P1期间进行算术/逻辑运算,P2期间进行内部寄存器之间的传送。图2-19为外部时钟振荡信号和ALE信号作的示意图。在每个机器周期(S1-S6)中,ALE下降沿有两次,一次在S1P2和S2P1,另一次在S4P2及S5P1中,(a)/(b)图具体操作:执行单字节单周期指令/双字节单周期。在S1P2期间读入操作码,并将其锁存到指令寄存器中若为双字节指令,第二字节在同一机器周期的S4期间读出若为单字节在S4期间仍有一个读操作,但这时读出的字节是不处理的。程序计数器也不+1。不论怎样,指令都在S6P2期间执行完。通常,两字节码在一个周期内从程序存储器取出,但在执行MOVX指令时例外。MOVX指令是访问外部数据存储器的单字节双周期指令。在MOVX指令期间少执行两次取指操作,用以寻址和选通外部数据存储器。,具体操作过程如下:执行MOVX指令,仍在第一个机器周期的S1期间读入操作码,在S4期间也读入下一个操作码,但读入的该码不予处理。由第一个机器周期的S5开始送出片外数据存储器地址,随后读/写数据,直至第二周期无ALE信号。在第二周期的S4期间,由于片外数据存储器已被寻址及选通,所以也不产生取指操作。,复习思考题MCS-51单片机由哪些功能部件组成?各部分功能?MCS-51单片机引脚ALE,PSEN(头上有“-”)各是什么信号?功能?EA (头上有“-”)是什么信号?对8031芯片的处理?PC及DPTR各是几位寄存器?各自的功能?工作寄存器位于单片机内部哪一个部件中?具体地址是如何安排的?PSW是?由哪些位组成?每一位的含义?SP是?在堆栈操作中SP的内容变化怎样?51系列内部RAM的低128个单元按其功用可分几部分?各部分的功能?,试简述四个并行I/O口的功能10 什么是SFR?51系列有那些SFR及那些是可位寻址的?常用单片机复位方式有哪些?一个机器周期由几个状态组成?每个状态又分为几相?为什么要了解CPU的时序?14 位地址7CH与字节地址7CH有什么区别?位地址7CH具体在内存中什么位置,第三章 指令系统指令系统指单片机能执行的全部指令的集合单片机共有条指令,其中系统时钟为,有种助记符,种寻址方式,单片机的助记符语言助记符就是根据机器指令不同的功能和操作对象来描述指令,便于记忆,理解和分类的一种符号语言。由两部分组成: 例:ADD A,#00H(一)操作码是指令功能的英文缩写。例:传送类: MOVMOVCMOVX,数据操作类: ADD SUBB MUL DIV 等 | | | | 加 带借位减 乘 除程序控制:AJMP SJMP LJMP CJNE ACALL 等逻辑操作ANL ORL XRL(二)操作数:是一条指令操作的对象,功能不同指令,操作对象形式也不同1 传送类指令:指明操作对象从哪来(源)传到哪去(目的)书写格式:助记符 目的地址 源地址例:MOV A,R0,数据操作类:靠运算器完成。常用到A,既参与运算又存储结果书写格式:助记符 被运算数 运算数例:ADD A,#00H程序控制类指令:操作对象是PC和一个数(控制去向的绝对或相对转移地址)实际上操作数是2个,但因一个是PC,故省略不写如:AJMP 操作数逻辑操作类:一般 LA、RA等为单操作数而 AND 、 OR、 XRL等需双操作数,结果目的操作数,位移操作固定在累加器A中进行。位移只需一个操作数,操作数可是数据,也可是地址何谓立即数?若操作数是数据时,被称为立即数,“#”为其标志,分为两种:8位16位操作数更常见的是存放数据的地址,这些地址通常是:1某一个工作寄存器区的R0 R7,A,B,C,DPTR等可编址的寄存器2 片内数据存储器低128字节,SFR可寻址的221位3 片外数据存储器空间4 程序存储器空间参看P33,表,例:MOV A,#03H相当于:A为:MOV DPTR,#2400H,注意:1 同样是data,前加“#”表示立即数,否则表示地址2 同样是选定工作区寄存器的R0-R7,但既能存放数据也能存放地址的只有R0,R1。若R0,R1前加“”表示其中存放地址否则表示存放数据。DPTR同理3 对SFR讲,仅有直接寻址3-2 MCS-51 指令格式及分类指令格式:51系列单片机指令:标号: 操作码 目的操作数 源操作数:注释 | | | 表示该指令 表示执行 可有可无所在符号地 什么功能 被操作对象可是一个,也址,由字母 可是两个,也可无操作数打头的字母数字串组成,例:MOV 74H,#00H INC A RETI分类单字节指令格式 操作码这种格式只有一个字节,操作码中包含了操作数的信息。两种情况下其指令为一字节。(1)操作数固定,无须附加空间来指定即它可完整明确的表示出指令的功能例:INC A机器代码为04,(2)操作数在工作寄存器中,其寻址变化只需3位2#码即可表示,此时操作码占一个字节中的5位,操作数占3位。例:MOV A,Rn 机器代码为E8HEFH,归纳起来基本都与A,C,Rn有关双字节指令 操作码 操作数或地址 双字节指令中,操作码,操作数各占一个字节例:MOV A,#0FH机器代码为740FH三字节指令操作码 操作数或地址 操作数或地址各占一个字节,例:MOV DPTR ,# data16-机器代码为指令字节数 90H DPH DPL注意:指令字节数越多,占用内存单元越多,但不一定执行时间越长。例:乘/除法指令为一个字节,执行时间要4个机器周期。若将111条指令按功能可分为5大类:数据传送 28逻辑操作 24算术运算 25位操作 17控制转移 17,3-3 寻址方式寻址即寻找操作数的地址。寻址方式是通过确定操作数的位置或地址,将操作数提取出来的方法。系列共有种寻址方式立即寻址:指令中跟在操作码后面 01110100 操作码 00110000 操作数的一个字节就是实际操作数,参加指令规定的操作.立即寻址在立即数前加“#”例:MOV A,#30H,直接寻址 :指令中包含了操作数的真实地址.该地址直接给出了参加运算或传送的单元或位,可访问三种地址空间(1)SFR(2)内部数据RAM128个字节单元(3)221个位地址空间例:MOV A,30H 内部RAM : 30H 68H,寄存器寻址操作数在寄存器中.指定了寄存器就得到了操作数,寄存器寻址方式的指令均是一字节指令,以符号名称表示寄存器。例: MOV A, R1功能:将寄存器R1的内容送A寄存器寻址方式的寻址范围:(1)工作寄存器组R0R7,4组共32个寄存器注意:指令中只能使用当前工作寄存器组中的寄存器,因此使用前可通过对PSW寄存器中的位RS1RS0的设置来选择当前工作寄存器组具体操作如下:先看是4组寄存器中的哪一组,再用操作码低3位确定组内哪一个寄存器得到地址,例:INC R3Pc 00001011,4 寄存器间接寻址(1)定义:寄存器内存的是操作数的地址。即操作数是通过寄存器间接得到的,因此称寄存器间接寻址。(2)寄存器间接寻址表示形式:寄存器间接寻址符号+寄存器名(3)51系列可用来寻址的寄存器有选定工作寄存器区的R0,R1,SP,及16位数据指针DPTR例:MOV A,R0,设R0中的内容为30H 30H 68H,30H,R0,A,68H,内部RAM,规定:1)用R0,R1作间接寻址,寻址范围为片内数据RAM的低128字节和片外数据存储器的头256字节 2)用DPTR间接寻址,寻址范围为整个数据存储器的64KB空间 3)SP用于指示堆栈操作的地址5 变址寻址指由指令指定的偏移量寄存器和变址寄存器DPTR或PC相加所得的结果作为操作数地址例:MOVC A,A+PC功能:将PC和A的内容相加得到的程序存储器中的地址单元的内容传送给A设该指令执行前,A=30H,PC=22F1H,则: 2 2 F 1 +) 3 0 2 3 2 1 (H) 最后结果A的内容为38H,6 相对寻址为程序相对转移设计的将PC的当前值+指令给出的偏移量(rel),构成程序转移的目的地址注意:PC的当前值为该相对转移指令的下一条指令的地址。转移目的地址可表示如下:目的地址=转移指令地址+转移指令字节数+relRel一个8位带符号2#补码。范围:当前PC值的+127-128之间例:JZ 30HJZ:A=0,跳转 A=1,不跳转转移时要刨掉操作码+操作数占的字节数,再加偏移量,本例:JZ 30H 是2字节指令假设JZ即操作码原PC为1005H,则操作数占据1006H,刨掉这两个单元此时PC应指向1007H+30H=1037H,位寻址指令能对片内数据RAM中的128位和SFR的93位进行位操作,即对地址空间的每一位都可进行运算和传送操作1)位寻址范围:内部RAM中字节地址20H2FH的16B单元共128个2#位,位地址为00H7FH字节地址可被8整除的11个SFR中的各个有定义的位2)51系列中位地址的表示可采用以下几种形式:直接使用位地址表示,如A的位的4的位地址为E4H采用字节单元地址加位的表示法,如 20H.5表示字节单元地址20H的位5.对可位寻址的SFR可直接用寄存器名称加位的方法.如ACC.4表示A的位4使用位名称.例:PSW中位5是F0可用F0表示该位,注意:位地址与直接寻址中的字节地址形式完全一样,主要由操作码来去分小结见书P38, 3-4 数据传送类指令:共28条,8种助记符,按操作方式可分为三种: 数据传送 数据交换 堆栈操作见下表或书P39,按操作码助记符又可分为三类:MOV MOVX MOVC注意: 除了在用POP或MOV指令将数据传送到PSW时,一般传送操作不影响标志位 源地址的内容目的地址后,源地址内容不变 SFR只能直接寻址,几个表示法:Rn表示R0 R7Ri 表示R0 R1 表示源,目的地址可互换 表示内容可互换一 通用传送指令MOV格式:MOV , 功能:传送字节变量允许有15种源目的寻址方式组合范围:内部数据存储器中工作寄存器Rn,片内数据RAM,SFR及A之间的传递,立即数A Rn 片内RAM SFR 目的 源 机器代码 操作MOV A, #data 74data A#data MOV data, #data 75data (data) #data MOV Ri, #data 76data (Ri) #dataMOV Rn, #data 78data (Rn) #data例:MOV R0,#data设R0的内容为20H,则指令执行结果:20H # data例:MOV 40H,#20H,例:MOV A, #20H例:MOV R3,#20H例: MOV P1,#80H例:MOV R1, #82H MOV A, R1指令本身没错,但要注意82H是SFR的DPL的地址值,对SFR来讲,只有直接寻址,故该种寻址方式无效,使用时要注意,若要从DPL中取值送A,可用直接寻址方式 MOV A, 82H 就可,

温馨提示

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

评论

0/150

提交评论