中国石油大学电机微机测控及功率接口(一)全部课件_第1页
中国石油大学电机微机测控及功率接口(一)全部课件_第2页
中国石油大学电机微机测控及功率接口(一)全部课件_第3页
中国石油大学电机微机测控及功率接口(一)全部课件_第4页
中国石油大学电机微机测控及功率接口(一)全部课件_第5页
已阅读5页,还剩439页未读 继续免费阅读

下载本文档

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

文档简介

电机微机测控及功率接口(一)

主讲教师胡慧慧

2015年3月

课程介绍我校电气专业目前主要有两个研究方向:

◆电力电子与电气传动;

◆电力系统自动化;前者主要研究对象为大功率执行部件,如电机等。而针对电机的自动控制主要采用单片机应用系统。为了将单片机和大功率被控对象的接口技术结合起来。从08年开设此系列课程,本学期讲述第(一)部分,以研究单片机的基本原理和构造为主。下学期第(二)部分以介绍实际应用的接口技术为主。主要内容第一章单片机基础第二章MCS-51单片机的硬件结构与原理第三章MCS-51指令系统第四章汇编语言程序设计第五章定时器/计数器与中断系统第六章单片机系统扩展第七章MCS-51单片机系统配置及接口技术第八章串行通信技术

参考书目1、单片机原理与应用技术清华大学出版社2、单片机原理及应用哈尔滨工业大学出版社3、单片机原理及接口技术北京航空航天大学出版社4、MCS-51单片机及应用系统设计北京航空航天大学出版社

课程导学1、重视实践环节,本课程有12学时实验环节,结合实验仪器,做到活学活用。2、强调平时作业和考勤。

3、注重答疑。联系方式:47467586018254265787基础B211第一章单片机基础★

单片机的内部结构★

单片机的结构特点★

单片机的发展概况★

单片机的主要技术发展方向★

单片机的应用领域什么是单片机?单片机(Single-chip-Microcomputer)又称单片微控制器,其基本结构是将微型计算机的基本功能部件:中央处理器(CPU)、存储器、输入/输出接口、定时器/计数器、中断系统等全部集成在一个半导体芯片上,也称嵌入式微控制器。嵌入式微控制器大多工作在为特定用户群专用设计的系统中,可将许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,还具有高效率和高可靠性的优点。一、单片机的内部结构1、CPU单片机的核心部件,由运算部件和控制部件两部分组成。(1)运算部件由算术逻辑运算单元、暂存寄存器、累加器、寄存器和程序状态寄存器等组成,用于完成算术运算和逻辑运算功能。(2)控制部件由程序计数器PC、指令寄存器、指令译码器、振荡器以及定时电路等组成,用于完成控制功能。2、存储器(1)程序存储器ROM用于存放编制好的程序和表格常数。(2)数据存储器RAM用于存放程序运行中采集的数据和所需要的变量。扩充:★只读存储器ROM(readonlymemory)①掩膜只读存储器ROM:这种ROM中的信息是在芯片制造时由厂家用“掩膜”工艺写入(固化)的,用户在使用过程中无法改变其中的内容。②可编程只读存储器PROM:用户可用专门设备将存储信息写入芯片中。一旦写入即不能更改,且只能写一次。③紫外线擦除可编程只读存储器EPROM:用户可多次用紫外线照射的方式擦除已写入的信息,并允许再重新写入。④电擦除可编程只读存储器EEPROM:允许用户写入信息,并可用外加电压擦除已写入的信息,并允许再重新写入。⑤闪存可编程/擦除只读存储器FPEROM:简称闪存(FlashMemory),信息在闪电式的一瞬间被存储,之后即使除去电源,存储器中信息仍可保留。闪存也是电擦除可重复编程存储器,体积小、功耗低、不易受物理破坏,存储密度高。★随机存取存储器RAM(randomaccessmemory)正常工作时可随时读写,但在系统断电后,其内容会消失。3、I/O接口

I/O接口用以实现对外控制或信息的传递。(1)并行接口:在单片机和存储器或外围设备之间并行传送8位数据信息。(2)串行接口:在单片机之间或单片机与外围设备之间实现串行通信。单片机内部具有特殊功能的两个部件,利用它们可实现对外事件的定时和计数控制功能。4、定时/计数器通过外接石英晶体产生频率固定的时钟脉冲,为单片机提供时钟脉冲序列,用以协调指挥整个单片机的有序工作。5、时钟电路(1)集成度高、体积小、重量轻;(2)抗扰能力强,可靠性高;(3)运行速度快、控制功能强;(4)开发使用方便,易于产品化;(5)具有优异的性能价格比。二、单片机的结构特点三、单片机的发展概况□第二阶段(1978-1982年):高性能单片机阶段。这类单片机带有串行I/O口,8位数据线、16位地址线(可以寻址的范围达到64K字节)、控制总线以及较丰富的指令系统等。其应用范围较广,并在不断的改进和发展。单片机的发展历史可划分为四阶段:□第一阶段(1974-1978年):低性能单片机的探索阶段。以公司的MCS-48为代表,采用单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等。主要用于工业领域。□第三阶段(1982-1990年):16位单片机阶段。16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制器的特征。例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有10位A/D转换器和高速输入/输出部件等。□第四阶段(1990年至今):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。四、单片机的主要技术发展方向(1)多功能:尽可能将存储器、各种功能的I/O口都集成在一块芯片中,即外围器件内装化。(2)高性能:使用RISC体系结构、并行流水线操作和DSP等的设计技术使单片机的指令运行速度大大提高,电磁兼容性能也更优越。(3)全盘CMOS化:从第三代开始,淘汰非CMOS工艺。此举会带来本质低功耗和低功耗管理技术的快速发展。(4)推行串行扩展总线:可以显著减少芯片的引脚数量,简化系统结构。(5)闪存FlashROM的推广。五、单片机的应用领域

1、在智能仪表上的应用

单片机广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、等各种物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

2、在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

3、在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子称量设备,五花八门,无所不在。

4、在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

5、单片机在医用设备领域中的应用

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。

6、在各种大型电器中的模块化应用

某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。

7、单片机在汽车设备领域中的应用

单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片机通过软件方法实现了。这种以软件取代硬件,并能提高系统性能的控制技术,称之为微控制技术,这标志着一种全新概念的建立。结论MCS-51单片机(MicroControllorSystem)MCS-51是指由美国INTEL公司生产的一系列单片机的总称。51系列单片机源于Intel公司的MCS—51系列,在Intel公司将MCS—51系列单片机实行技术开放政策之后,许多公司,如Philips、Siemens、Atmel、Dallas、华邦、LG等都以MCS—51中的基础结构8051为基核推出了许多各具特色、具有优异性能的单片机。这样,把这些厂家以8051为基核推出的各种型号的兼容型单片机统称为51系列单片机。这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。

8051:内部包含4KB的ROM(片内掩膜)、128B的RAM、21个特殊功能寄存器、4个8位并行口、一个全双工串行口、两个16位定时器/计数器以及一个处理功能很强的中央处理器。8751:是以4KB的EPROM代替4KBROM的8051。8951:是以4KB的E2PROM或FlashROM代替4KBROM的8051。8031:是内部无ROM的8051。8031单片机必须外接ROM作为程序存储器。MCS-51子系列

52子系列也包含4个产品,分别是51子系列的增强型。由于资源数量的增加,芯片的功能有所增强。片内ROM容量和RAM容量增加了一倍;定时器数目从2个增加到3个;中断源从5个增加到6个等。

80C31/87C51/80C51:采用CMOS工艺适于电池供电或其它要求低功耗的场合。★

MCS-51单片机的结构与工作原理★

中央处理单元与时序

存储器配置★

并行I/O端口★

复位及复位电路第二章MCS-51单片机的硬件结构与原理一、内部结构第一节

MCS-51单片机的结构与工作原理P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器256BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1

XTAL2PSENALEEARET由上图可见,8051内部集成有如下功能部件:1)8位中央处理器CPU2)4KB程序存储器ROM(8031内部无ROM)3)256B数据存储器RAM4)21个特殊功能寄存器5)4个8位并行I/O端口(P0~P3)6)1个可编程串行I/O端口7)2个16位定时/计数器(T0,T1)8)时钟振荡器和时钟电路二、工作原理以ADDA,R0指令为例说明其工作原理执行指令的过程是:取指令——译码——执行取指令:CPU把PC的值送入程序地址寄存器,并向ROM发出读指令,PC值加1。译码:把读出的指令代码送入指令寄存器IR,再送入指令译码器ID,译码结果送到定时与控制电路。执行:根据译码的结果对数据进行运算。程序的执行是指令一条接一条执行的过程,每执行一条指令,PC值自动加1,指向下一条指令。三、引脚及功能MCS-51单片机是40个引脚的双列直插式封装形式。控制引脚I/O口引脚逻辑图时钟引脚电源引脚第二功能1、电源引脚Vcc和Vss

★Vcc(40脚):电源端,接+5V电源

★Vss

(20脚):接地端2、外接晶体引脚XTAL1,XTAL2

★XTAL1(19脚):片内反向放大器输入端

XTAL2(18脚)

:片内反向放大器输出端采用内部时钟时,2个引脚各接外部晶体和微调电容的一端;采用外部时钟时,XTAL2脚输入外部时钟脉冲,XTAL1脚接地。各个引脚的功能说明如下:3、控制信号引脚★

RST/VPD(9脚):RST复位信号;VPD备用电源输入端。★

ALE/PROG(addresslatchenable/programming,30脚):

ALE是地址锁存允许信号;PROG是编程脉冲输入端。ALE信号说明:1.当CPU访问外部存储器时,ALE端作为锁存低8位地址的控制信号,下降沿有效。2.当CPU不访问外部存储器时,ALE端以1/6的振荡频率固定输出正脉冲。★

EA/VPP(enableaddress/voltagepulseofprogramming,31脚):EA外部程序存储器选择端;

VPP编程电源输入端。EA信号说明:1.EA为低电平时,CPU只访问外部ROM;2.EA为高电平时,CPU首先访问内部ROM并自动延至外部ROM。★

PSEN(programstoreenable,29脚):

外部程序存储器选通信号说明:在访问片外程序存储器时,此引脚定时输出负脉冲作为读片外存储器的选通信号,低电平有效。★

P0.0~P0.7:P0口,8位双向I/O端口。当CPU访问片外存储器时,P0口分时提供复用的低8位地址线和8位双向数据线。★

P1.0~P1.7:P1口,内部带上拉电阻的8位准双向I/O端口。★

P2.0~P2.7:P2口,内部带上拉电阻的8位准双向I/O端口。当CPU访问片外存储器时,输出高8位地址。

P3.0~P3.7:P3口,内部带上拉电阻的8位准双向I/O端口。P3口作一般I/O端口使用外,每个引脚都有专门的第二功能。4、I/O端口引脚引脚转义引脚功能说明P3.0RXD串行数据接收端P3.1TXD串行数据发送端P3.2INT0外部中断0请求P3.3INT1外部中断1请求P3.4T0计数器0外部输入P3.5T1计数器1外部输入P3.6WR外部数据存储器写P3.7RD外部数据存储器读P3口的第二功能引脚连接图1RST引脚连接图2EA

一、运算器和控制器1、运算器(1)算数逻辑单元ALU:完成基本的算术运算、逻辑运算;(2)累加器A(ACC):专门用来存放操作数和运算结果;(3)暂存寄存器:暂存数据和状态,便于传送和运算;(4)B寄存器:用于乘法和除法的8位寄存器;第二节中央处理单元与时序位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0标志CYACF0RS1RS0OV-P①CY(C):进位标志位

★存放算术运算的进位或借位标志;

★在位操作中,作位累加器使用。②AC:辅助进位位加减运算中,低4位向高4位有进位或借位时,AC=1。③F0:用户标志位

(5)程序状态字(ProgramStatusWord

PSW

):存放指令执行后的状态信息:RS1RS0选中的工作寄存器组R0~R7地址000组00-07H011组08-0FH102组10-17H113组18-1FH⑤OV:溢出标志位

运算结果超出了累加器A所能表示的带符号数的范围(-128~+127),OV=1。④RS1、RS0:工作寄存器选择位

CPU选择哪一组工作寄存器为当前工作寄存器,确定R0~R7的物理地址。(6)布尔处理器:也称为位处理器,以PSW中的CY为累加器,可执行各种位操作,也可以将CY与其他可寻址位之间进行逻辑与、逻辑或操作,结果存放于CY。⑥P:奇偶标志位累加器A中1的个数的奇偶性,奇:P=1;偶:P=0。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0标志CYACF0RS1RS0OV-P(1)程序计数器PC:是一个16位专用寄存器,用来存放将要执行的下一条指令的地址;(2)指令寄存器IR和指令译码器ID:存放代码及译码;(3)定时控制电路:产生CPU的操作时序。2、控制器

单片机的时钟信号是提供片内各种操作的时间基准。二、时钟电路►内部时钟电路:石英晶体或陶瓷振荡器(晶振):1.2~12MHz。微调电容C01、C02起稳定振荡频率、快速起振的作用。电容值一般为

5~30PF。因片内有高增益运算放大器,外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。►外部时钟电路把外部振荡信号引入XTAL2端,XTAL1端接地。这种方式适宜用于使单片机的时钟与外部信号保持一致。由于XTAL2端的逻辑电平与TTL电平不兼容,故在此引脚外接一个上拉电阻。1、时钟周期又称振荡周期,是一个振荡脉冲的周期,也是时序中最小的时间单位。2、机器周期完成一个最基本操作的时间,通常由若干个时钟周期构成,在MCS-51单片机中,每个机器周期都包含12个时钟周期,分为6个状态S1~S6,每个状态又分为2个节拍P1和P2。3、指令周期执行一条指令所用的时间称为指令周期,用机器周期的个数来表示。MCS-51系统中有单周期指令、双周期指令、四周期指令。三、机器周期与指令周期时钟周期和机器周期是单片机内计算其他时间值(例如:波特率、定时器的定时时间等)的基本时序单位。例:单片机外接晶振频率12MHz时的各种时序单位:

1/frequencyoscillate

=1/12MHz=0.0833us12/fosc=12/12MHz=1us

(1~4)机器周期=1~4us说明:时钟周期=机器周期=指令周期=四、指令取指/执行时序单片机的工作工程是:取指令、译码、执行指令……,一步步地完成各种指令规定的功能。各指令的操作顺序在时间上有严格的次序,这种操作的时间顺序称为时序。单片机的时钟信号用来为单片机芯片内部各种操作提供时间基准。单字节指令、双字节指令是单周期或双周期的;

三字节指令是双周期的;乘除指令是四周期的。MCS-51单片机指令的取指/执行的时序存储器结构第三节存储器配置普林斯顿结构/冯·诺伊曼:ROM、RAM统一编址。哈佛结构:ROM、RAM分开编址。在结构上分为6个存储器编址空间;在物理上分:片内、片外程序存储器;片内、片外数据存储器。在逻辑上分:程序存储器、片内数据存储器、片外数据存储器。程序存储器内部数据存储器外部数据存储器程序存储器ROM存放编制好的固定程序和表格,以16位的程序计数器做地址指针,可寻址64KB空间。

一、程序存储器特殊功能地址单元(1)0000H-0002H:存放复位后初始化引导程序例程序放在内部1000H开始的单元

ORG0000H AJMPMAIN ORG1000HMAIN:MOVA,#0AFH0000H0001H0002H(PC)中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEH程序存储器资源分布中断地址区初始化引导程序(2)0003H-002AH:中断地址区

CPU响应中断后,根据中断类型,自动转入各中断区首地址去执行中断服务程序。8个单元不能放下中断服务程序,因此在中断入口地址放一条无条件跳转指令。

0003H~002AH共40个单元是中断服务程序地址区,它被分为五段,每段8个单元,分别分配给5个中断源:0003H~000AH

外部中断0中断地址区;000BH~0012H

定时器/计数器0中断地址区;0013H~001AH

外部中断1中断地址区;001BH~0022H

定时器/计数器1中断地址区;0023H~002AH

串行中断地址区。中断源入口地址外部中断00003H定时器0溢出中断000BH外部中断10013H定时器1溢出中断001BH串行口中断0023H例:假设外部中断INT0的中断服务程序放在0040H开始的单元

ORG0003HAJMPINT0ORG0040HINT0:PUSHPSW…….二、数据存储器内部RAM(00H-FFH)外部RAM(0000H-FFFFH)数据存储器00H20H2FH7FH1FH30H

用户RAM区位寻址区

工作寄存器区特殊功能寄存器区(80H-FFH)内部RAM(00H-FFH)真正RAM区(1)工作寄存器区(00H~1FH)地址范围在00H~1FH的32个单元,可分成4个工作寄存器组,每组占8个字节。第0组工作寄存器:地址范围为00H~07H

第1组工作寄存器:地址范围为08H~0FH

第2组工作寄存器:地址范围为10H~17H

第3组工作寄存器:地址范围为18H~1FH1、真正RAM区每个工作寄存器组都有8个寄存器,分别称为R0、R1、R2、R3、R4、R5、R6、R7。但在程序运行时,只允许有一个工作寄存器组工作,这组工作寄存器称为当前工作寄存器组,所以每组之间不会因为名称相同而混淆出错。可通过对特殊功能寄存器中的程序状态字PSW的RS1、RS0的状态设置,选择哪组工作寄存器作当前工作寄存器组。

单片机复位时,当前工作寄存器默认为0组。说明►与工作寄存器相连的16个字节地址单元20H~2FH为位寻址区,可以对每个RAM单元中的任何一个位进行位操作,例如对某一位进置0、清0、判1、判0、转移等。►该位寻址区既可以按照字节操作(16个单元),也可以按照位操作(128位)。►每一位可用位地址寻址,也可用字节地址和位地址相结合的表示方法。(2)位寻址区(20H~2FH)2FH.726H.3

30H-7FH共80个RAM单元,用来存放用户数据和堆栈操作使用,称为用户RAM区,该区是按字节存取的。堆栈的概念堆栈是在单片机内部RAM中从某个选定的存储单元开始划定的一个地址连续的区域,在这个区域选定某个存储单元作为栈底,只允许向一个方向写入数据,最后一个写入数据的存储单元称为栈顶。堆栈的生成有两种情况,向高地址方向写入数据生成的堆栈称为向上生长型堆栈,反之称为向下生长型堆栈,MCS-51单片机属于向上生长型堆栈(即向高地址方向生成)。(3)堆栈和数据缓冲区堆栈指针寄存器SP:一个8位寄存器,用于指明堆栈顶部在RAM中的位置,可由软件设置初始值;系统复位后,SP初始化为07H;实际中,一般将SP设置在30-7FH范围内。堆栈的原则:先进后出,后进先出。每存(取)一个字节,SP自动加(减)1,SP始终指向新的栈顶。堆栈操作方式:指令方式:PUSH、POP

自动方式:调用子程序或中断时,将返回地址自动进栈;程序返回时,断点地址自动弹回PC。栈底AB进栈SPSPSP+162H61H60H栈底AB出栈SPSPSP-162H61H60HA先进栈B再进栈B先出栈A再出栈堆栈示意图2、特殊功能寄存器(SFRSpecialFunctionRegisters

)◆

8051单片机中设置了21个特殊功能寄存器,它们不连续地分布在地址为80H-FFH的128个字节的存储空间中。◆

21个SFR只能采用直接寻址方式,但是字节地址能被8整除(16进制的地址码尾数为0或8)的11个单元均具有位寻址能力。可位寻址(1)堆栈指针寄存器SP:(2)数据存储器地址指针DPTR:16位专用寄存器,由DPH、DPL组成。对64KB外部数据存储器寻址,做间址寄存器;访问程序存储器,做基址寄存器。(3)端口寄存器P0~P3:用于控制4个8位并行I/O口。(4)串口数据缓冲器SBUF:由发送缓冲器和接收缓冲器组成,通过读写指令来区别对哪一个缓冲器进行操作。(5)串行口控制与状态寄存器SCON:控制串行通信工作方式、接收或发送控制、设置状态标志。SFR:(6)

定时器/计数器T:MCS51有两个16位定时器T0和T1,每个定时器各包含两个独立的8位寄存器TH0、TL0、TH1、TL1。(7)定时器/计数器工作方式寄存器TMOD:主要确定定时器/计数器的工作方式。(8)定时器/计数器控制寄存器TCON:控制定时器/计数器的启/停操作及对定时器溢出时设定标志位。(9)中断允许寄存器IE和中断优先级寄存器IP:IE用来控制CPU对各中断源的中断请求进行响应,IP用来确定中断源的优先级别。

MCS-51共有4个8位准双向并行I/O端口P0~P3,共32根I/O口线,每根都可以独立作为输入和输出。这四个端口是单片机对外部实现控制及信息交换的输入输出通道。P0:作为外部扩展存储器时的地址/数据线P1:普通I/O口P2:作为外部扩展存储器时的地址线P3:除作为I/O口外,每根口线都有第二功能。第四节并行I/O端口一、P0端口★由两只场效应管组成的输出驱动电路;★由一个与门、反向器和多路转换开关MUX组成输出控制电路;★

MUX的位置由CPU的控制信号确定,当控制信号为低电平时,P0口用作一般I/O口;反之为高电平时,P0口用作地址/数据总线。P0.X1、用作I/O口:控制信号为低电平,V1截至,输出极为漏极开路电路,应接上拉电阻。输出时:内部总线上的数据在写信号控制下,先写入锁存器,经反相端反相,再经V2反相,使输出数据正好出现在P0口引脚上。

输入时:先向锁存器写1,令V1,V2截至,读引脚信号把三态缓冲器打开,则端口上的数据经三态缓冲器输入到内部总线。P0.X为什么输入时要先向锁存器写1?由于输出驱动V2并接在引脚上,如果V2导通会把引脚的高电平拉成低电平,从而产生误读,所以输入时必须先向锁存器写1。P0口在做普通I/O口时,是一个准双向口。对于准双向口,在做输入口时,应先向锁存器写入1,使2个场效应管都截至,引脚处于悬浮状态,可作高阻态输入。因为引脚上的信号是加在输出极场效应管的漏极上,当它导通时,会把引脚上的电位拉为低电平。2、用作地址/数据总线:控制信号为高电平,输出的地址/数据信号经反相器驱动V2,同时通过与门驱动V1。

CPU先输出地址信息,在ALE的下降沿锁存低8位地址,然后转为数据传输线。

P0口用作地址/数据总线时,便不能再用作I/O口。P0.X

P1口只能传送数据,不能作为地址/数据口;在输出驱动部分接有内部上拉电阻;

P1口作为输出口时,输出状态与写入锁存器状态相同;

P1口作为输入口时,要先向锁存器写1。二、P1端口三、P2端口P2口与P0口的区别:﹡用上拉电阻代替上拉场效应管;﹡MUX的一个输入口是地址。1、用作I/O口如果外部没有扩展存储器,或者只扩展小于256B的RAM,这时只需要提供低8位地址,P2口的MUX接锁存器Q端不动,用作普通I/O口。2、用作地址线对于有片外存储器的系统,CPU访问片外存储器时,MUX在控制信号控制下,把地址线和反向器3相连,由此输出高8位地址。此时只能作为地址总线不能作为数据总线。四、P3端口1、P3口比P1口多了一个与非门3和一个输入缓冲器4,既可以作为一般I/O口,也可以作为第二功能口;2、作一般I/O口,第二功能输出信号为高电平,与非门打开,过程与其它口相同。3、实际应用中,P3口基本用作第二功能,此时应首先向锁存器写1,打开与非门,第二功能输出;第二功能输入时,第二功能输出自动置1,V1截至,信号由三态缓冲器输入。1、P0~P3均可作为I/O口,但P0、P2多用作地址/数据总线,P3多用作第二功能,P1真正作为I/O口;2、P0为真正的双向口,P1~P3为准双向口,只有P0可用作系统的数据总线;3、作为I/O口,P0应接上拉电阻,P1~P3没必要,但是P0用作地址/数据总线时,不用接上拉电阻;4、P0~P3作为输入口时,必须首先向端口锁存器写1,P3作为第二功能口输出或输入时,也要先锁存器写1;5、P0口的每1位输出能驱动8个LS型TTL负载;P1、P2、P3口的每一位输出能驱动4个LS型TTL负载。6、单片机内部的I/O口只有数据锁存和缓冲功能,无控制功能,只能实现简单的功能。五、I/O端口小结一、单片机复位复位是单片机的初始化操作,使单片机处于一个固定的初始状态,并从此状态开始运行。在运行中,当单片机的程序受外界因素干扰陷入死循环或跑飞时,为摆脱困境,可将单片机复位,重新启动。

MCS-51单片机的RST引脚为复位端,该引脚保持两个机器周期以上的高电平便可以实现单片机复位。第五节复位及复位电路

P0~P3的端口锁存器被设置成FFH;堆栈指针SP设置成07H;串行口的SBUF无确定值;其它各专用寄存器包括程序计数器PC均被设置成00H;片内RAM不受复位的影响。单片机复位后:(1)上电自动复位上电复位按键脉冲复位按键电平复位二、单片机的复位电路脉冲复位电平复位(2)按键手动复位内部复位电路外部复位电路复位电路

★复位完成后,如果RST端继续保持高电平,则单片机一直处于复位状态,只有RST端恢复低电平后,单片机才能进入其他工作状态。

★复位电路虽然简单,但是其作用非常重要。一个单片机系统能否正常工作,首先要检查其是否能复位成功。说明

思考题:41页第三章MCS-51指令系统★

指令系统概述★

MCS-51单片机指令系统

►数据传送类指令►算术运算类指令►逻辑运算类指令

►控制转移类指令►位操作类指令指令:规定计算机进行某种操作的命令。指令系统:计算机能够执行的各种指令的集合。单字节指令:49条双字节指令:45条三字节指令:17条单周期指令:64条双周期指令:45条四周期指令:2条MCS-51单片机共有111条指令。第一节指令系统概述1)数据传送类指令29条:片内RAM、片外RAM、程序存储器的传送指令;交换及堆栈操作指令;2)算术运算类指令24条:加法、带进位加、减、乘、除、加1、减1指令;3)逻辑运算类指令24条:逻辑与、或、异或、移位指令;4)控制转移类指令17条:无条件转移与调用、条件转移、空操作指令;5)布尔(位)操作类指令17条:位数据传送、位与、位或、位转移指令。按功能分类:

1.指令的组成:操作码和操作数(1)单字节指令:操作数、操作码均在一个字节内;只有操作码,无操作数;(2)双字节指令:一个字节是操作码,一个字节是操作数;(3)三字节指令:一个字节是操作码,二个字节是操作数。一、指令格式[标号]:操作码[操作数];[注释]标号:又称为指令地址符号,一般是由1~6个字符组成,以字母开头的字母数字串,与操作码之间用冒号分开。操作码:是由助记符所表示的指令的操作功能,与操作数之间必须用空格隔开。操作数:是指参加操作的数据或数据的地址,可以没有,也可以是1个、2个或3个,多个操作数之间必须用“,”隔开。注释:是为该条指令作用的说明,以便于阅读。操作码是指令的核心,不可缺少,其他几项根据不同指令为可选项。2、指令的格式1、立即寻址2、直接寻址3、寄存器寻址4、寄存器间接寻址5、变址寻址6、相对寻址7、位寻址二、寻址方式所谓寻址方式就是指如何找到存放操作数的地址的方法。操作数直接出现在指令中。操作数前加“#”号表示,也称立即数。指令的操作数可以是8位或16位数。例:MOVA,#26H ;26H→A指令执行结果:把立即数26H直接送到累加器A中。这类指令大都是双字节指令,只有一条是三字节指令。例:

MOVDPTR,#data16向数据指针DPTR传送的是16位立即数,立即数的高8位送入DPH中,低8位送入DPL中。MCS-51只有1条16位数据传送指令。1、立即寻址2、直接寻址指令直接给出操作数的地址,用direct表示。直接寻址方式可以访问的地址空间有:内部数据存储器的低128个字节单元、位地址空间及特殊功能寄存器SFR,且SFR和位地址空间只能用直接寻址方式访问。例:MOVA,26H;把26H单元的内容送到累加器A中。注意:对于特殊功能寄存器,指令既可使用它们的地址,也可使用它们的名字。3、寄存器寻址指令中指定寄存器的内容作为操作数,使用的寄存器有:工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR和位累加寄存器C等。例:INCR2;(R2)+1→(R2)指令功能是将R2工作寄存器的内容加1后传送回R2。如果选定的工作寄存器属于第一组(RS1RS0=01B)且原来(R2)=24H,则指令执行结果为(R2)=25H。指定寄存器中的内容是操作数的地址,该地址对应存储单元的内容才是操作数。可用间接寻址的寄存器有R0、R1、堆栈指针SP

和16位数据指针DPTR,使用时前面加符号@表示间接寻址。4、寄存器间接寻址例:MOVA,@R1

设当前工作寄存器组为第0组,R1的内容为4FH,片内RAM区4FH单元的内容为27H。指令执行结果:A=27H。R0、R1可寻址片内RAM低128B和片外RAM低256B,DPTR可寻址片外RAM64KB。R0、R1是当前工作寄存器组中可以作为地址指针的2个工作寄存器基址寄存器加变址寄存器间接寻址,简称变址寻址。

MCS-51单片机以数据指针DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器,两者的内容相加形成16位程序存储器地址,该地址就是操作数所在地址。5、变址寻址例:MOVCA,@A+DPTR;(A+DPTR)→A

该指令为单字节指令。指令功能将A+DPTR形成的地址的单元内的内容送入累加器A。假设A=0D0H,DPTR=2000H,(20D0H)=1FH,指令执行后A=1FH。这种寻址方式常用于访问程序存储器ROM中的表格。

MOVCA,@A+PC以PC当前值为基准,加上指令中给出的相对偏移量rel形成转移地址。转移的目的地址=转移指令所在地址+

转移指令字节数+

rel

其中相对偏移量rel是有符号的8位二进制数6、相对寻址相对寻址方式主要用于跳转指令。例:SJMP30H此指令为双字节指令,地址为1068H,则转移的目的地址为109AH。转移范围:以PC当前值为起始地址,相对偏移在-128~+127

字节单元之间。PC当前值7、位寻址指对片内RAM的位寻址区和某些可以进行位寻址的特殊功能寄存器进行位操作时的寻址方式。该寻址方式和直接寻址方式的形式与执行过程基本相同,但参与操作的数据是1位而不是8位。位地址用bit表示,以区别字节地址direct。

MCS-51单片机内的RAM有两个区域可以进行位寻址:一个是20H~2FH的16个单元中的128位,另一个是字节地址能被8整除的特殊功能寄存器的每一位。在8051中,位地址常用下列三种方式表示:1)直接使用位地址;2)字节地址和位地址相结合3)直接用特殊功能寄存器名加位数表示,表示PSW.3。例:SETB2EH判断下列指令中各操作数的寻址方式(1)MOVA,#65H

(2)MOV@R1,65H

(3)MOV30H,R2

(4)MOVC,20H

(5)JZ50H

(6)MOV60H,@R1

(7)MOVCA,@A+DPTR

立即寻址寄存器间接寻址直接寻址直接寻址寄存器寻址位寻址位寻址相对寻址直接寻址寄存器间接寻址变址寻址练习:★

#data:表示指令中的8位立即数(data),“#”表示后面的数据是立即数。★

#data16:表示指令中的16位立即数。★

direct:表示8位内部数据存储器单元的地址。★

Rn:n=0~7,表示当前选中的工作寄存器组R0~R7。★

Ri:i=0或1,表示当前选中的工作寄存器组中的2个寄存器R0、R1,可作地址指针即间址寄存器。★

Addr11:表示11位的目的地址。★

Addr16:表示16位的目的地址。三、指令系统中的符号说明★

rel:表示8位带符号的偏移量。用于SJMP和所有的条件转移指令中。★

DPTR:为数据指针,可用作16位的地址寄存器。★

bit:内部RAM或专用寄存器中的直接寻址位地址。★

/:位操作数的前缀,表示对该位操作数取反。★

A:累加器ACC。★

B:专用寄存器,用于MUL和DIV指令中。★

C:进位/借位标志位,也可作为布尔处理机中的位累加器。★

@:间址寄存器或基址寄存器的前缀。★

$:当前指令的地址。★

→:表示将箭头左边的内容送入箭头的右边。

►数据传送类指令

算术运算类指令►逻辑运算类指令

控制转移类指令►

位操作类指令第二节

MCS-51单片机指令系统数据传送指令是最常用的一类指令,共有29条,可以通过累加器进行数据传送,还可以在数据存储器之间或工作寄存器与数据存储器之间直接进行数据传送。数据传送类指令用到的助记符有:MOV、MOVC、MOVX、XCH、XCHD、SWAP、PUSH、POP共8种,源操作数可以采用寄存器、寄存器间接、直接、立即、变址加基址5种寻址方式,目的操作数可以采用前3种寻址方式。一、数据传送类指令数据传送类指令分类内部RAM数据传送指令(16条)外部RAM数据传送指令(4条)查表指令(2条)堆栈操作指令(2条)交换指令(5条)1、内部RAM数据传送指令(16条)1)以累加器A为目的操作数的指令:(4条)2)以工作寄存器Rn为目的操作数的指令(3条)3)以直接地址为目的操作数的指令(5条)

4)以间接地址为目的操作数的指令(3条)5)16位数据传送指令(1条)﹡

MOVA,R6

MOVA,Rn

;Rn

→AMOVA,@Ri

;(Ri)→AMOVA,direct ;(direct)→AMOVA,#data ;data→A

该组指令的功能是把源操作数指定的内容送入累加器A。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址4种寻址方式。源操作数为寄存器寻址源操作数为寄存器间接寻址源操作数为直接寻址源操作数为立即寻址﹡

MOVA,#38H﹡

MOVA,38H﹡MOVR1,#40H

MOVA,@R11)以累加器A为目的操作数的指令:(4条)

MOVRn,A ;(A)→RnMOVRn,direct;(direct)→

RnMOVRn,#data ;data→

Rn

该组指令的功能是将源操作数指定的内容送入当前工作寄存器组的某个寄存器。源操作数有寄存器、直接、立即3种寻址方式。没有“MOVRn,Rn”指令。﹡MOVR6,A﹡

MOVR5,#38H﹡

MOVR1,40H2)以工作寄存器Rn为目的操作数的指令(3条):源操作数为寄存器寻址源操作数为直接寻址源操作数为立即寻址

MOVdirect,AMOVdirect,RnMOVdirect1,direct2MOVdirect,@RiMOVdirect,#data

该组指令的功能是将源操作数指定的内容送入由直接地址direct所指定的存储单元中。源操作数有寄存器、直接、寄存器间接和立即4种寻址方式。﹡MOV4AH,A﹡MOV20H,R5﹡

MOV26H,#38H﹡

MOV44H,66H3)以直接地址为目的操作数的指令(5条):

MOV@Ri,AMOV@Ri,directMOV@Ri,#data

该组指令的功能是将源操作数指定的内容传送至以R0或R1为地址指针的片内RAM单元中。源操作数有寄存器、直接、和立即3种寻址方式。

MOV@R1,30H假设(30H)=6FH,R1=40H,执行指令后,30H单元中的数据送入R1间接寻址的40H单元,(40H)=6FH4)以间接地址为目的操作数的指令(3条):MOVDPTR,#data16该指令的功能:把16位立即数传送至16位数据指针寄存器DPTR。5)16位数据传送指令:例:把立即数34H送到内部RAM20H单元。例:用寄存器间接寻址把立即数6BH送到内部RAM20H单元。

例:利用直接寻址把P1口的内容送到P3口。MOV20H,#34HMOVR0,#20HMOV@R0,#6BH

MOVP3,P11、MOVA,#30HMOVR0,#45HMOV@R0,A练习:2、MOVR1,#30HMOV30H,#45HMOVA,@R1结果(45H)=30H结果A=45H累加器A与片外数据存储器之间的数据传送是通过P0口与P2口进行的。只能通过寄存器间接寻址方式。由于MCS51指令系统没有专门的输入输出指令,且片外扩展的I/O口与片外RAM是统一编址的,故以下4条指令也可以作为输入输出指令,与外部设备进行数据交换。

MOVXA,@DPTR

;(DPTR)→A,为寄存器间接寻址

MOVX@DPTR,A

;A→(DPTR)2、外部数据传送指令(4条)

★这两条指令以数据指针DPTR为片外数据存储器16位地址指针,寻址范围达到64KB,低8位(DPL)由P0口送出,高8位(DPH)由P2口送出。MOVXA,@Ri

;(Ri)→A,为寄存器间接寻址MOVX@Ri,A

;A→(Ri)

★这两条指令是用R0或R1作低8位地址指针,由P0口送出,寻址范围是256B。例:现有一输入设备地址为DE00H,在这个口中,已有数据A8H,欲将此值存入片内30H单元,则可编写如下指令:MOVDPTR,#0DE00H;DE00H→DPTRMOVXA,@DPTR;A8H→AMOV30H,A;A→(30H)执行指令后30H单元的内容为A8H。例:将累加器A中的内容送入外部数据存储器的0060H单元。MOVP2,#00;输出地址高8位输出00HMOVR0,#60H;地址送间址寄存器MOVX@R0,A;A中内容送外部数据存储器

0060H单元例:将外部存储器的2000H单元的内容送入片外2100H单元。MOVDPTR,#2000H;DPTR=2000HMOVXA,@DPTR;A=(DPTR)MOVDPTR,#2100H;DPTR=2100HMOVX@DPTR,A;(DPTR)

=A查表指令,即程序存储器数据传送指令有两种形式:MOVCA,@A+PC ;PC+1→PC,(A+PC)→AMOVCA,@A+DPTR

;(A+DPTR)→A3、查表指令“MOVCA,@A+DPTR”指令以DPTR为基址寄存器进行查表,使用前,先给DPTR赋地址,查表范围可达64KB程序存储器空间,称为远程查表指令。

CPU执行指令“MOVCA,@A+PC”后,先给PC值加1,将新的PC的内容与累加器A中的8位无符号数相加形成地址,再取出该地址单元中的内容送累加器A中。由于A只有一个字节,所形成的地址空间范围只有256B,称为近程查表指令。

例:在程序存储器中,数据表格为:2010H2011H

2012H

2013H0AH0BH0CH0DH执行程序:

2000H:MOVA,#0DH2002H:MOVCA,@A+PC2003H:MOVR1,A结果A=0AH,R1=0AH,PC=2004H;0DH→A;(0DH+2003H)→A;A→R1例:在程序存储器中,数据表格为:6010H6011H

6012H

6013H0AH0BH0CH0DH执行程序:

2000H:MOVA,#10H2002H:MOVDPTR,#6000H2005H:MOVCA,@A+DPTR结果A=0AH,PC=2006H;10H→A;6000H→DPTR;(10H+6000H)→A例:以查表方式求出片内RAM中20H单元中数的平方,结果存入片内21H单元中。解法一:以DPTR为基址寄存器,平方表首址可灵活安排在适当的位置,如2000H,即平方表的内容从2000H单元放起。程序如下:

ORG1800HMOVDPTR,#2000HMOVA,20H

MOVCA,@A+DPTRMOV21H,AORG2000HDB00H,01H,04H,09H,10H,19H,24HDB31H,40H,51H,64H,...解法二:以PC为基址寄存器,此时表格须紧跟程序之后,且要计算好表格首址的位置。程序如下:

ORG1000H1000H:MOVA,20H1001H:ADDA,

1003H:MOVCA,@A+PC1004H:MOV21H,A1006H:DB00H,01H,04H,09H,10H,19H,24HDB31H,40H,51H,64H,...#02HPUSHdirect;(SP)+1→SP(先指针加1);

(direct)→(SP)(再压栈)POPdirect ;

(direct)→(SP)(先弹出);(SP)-1→SP(再指针减1)

4、堆栈操作指令

PUSH指令是入栈(或称压栈或进栈)指令,其功能是先将堆栈指针SP的内容加1,然后将直接寻址direct单元中的数据压入到SP所指示的单元中。

POP是出栈(或称弹出)指令,其功能是先将堆栈指针SP所指示的单元内容弹出到直接寻址direct单元中,然后将SP的内容减1,SP始终指向栈顶。例:已知片内RAM40H单元中存放数值为66H,设堆栈指针为30H,把此数值压入堆栈,然后弹出到50H。MOVSP,#30H;30H→SPPUSH40H;SP+1→SP,(40H)→(31H)POP50H;(31H)→(50H),SP-1→SP例:将片外4000H单元中的内容压入堆栈,之后弹出到48H单元中,编写指令如下:MOVDPTR,#4000HMOVXA,@DPTR;(4000H)=AMOV20H,A;A→(20H)MOVSP,#30H;30H→SPPUSH20H;20H单元内容压入堆栈POP48H;弹出到48H单元MOVSP,#30HPUSH10HPUSH20HPOP10HPOP20H用堆栈指令实现RAM中10H和20H中的内容交换,设(10H)=54H,(20H)=45H。;设置堆栈指针指向30H;进栈SP+1→SP,(SP)=31H,(31H)=54H;进栈SP+1→SP,(SP)=32H,(32H)=45H;出栈(10H)=45H,SP-1→SP,(SP)=31H;出栈(20H)=54H,SP-1→SP,(SP)=30H练习1)字节交换指令:

XCHA,Rn

;A的内容与Rn的内容交换

XCHA,@Ri

;A的内容与(Ri)的内容交换

XCHA,direct;A的内容与(direct)的内容交换5、数据交换指令例:已知(30H)=88H,(40H)=11H,R0=30H,R1=40HMOVA,30HXCHA,40HMOV30H,A;(A)←(30H),(A)=88H;(A)(40H),(A)=11H,(40H)=88H;(30H)←(A),(30H)=11H结果为A(30H)=11H,(40H)=88H,30H和40H单元的内容互换显然,程序没有用到已知条件R0=30H,R1=40H,可以采用寄存器间接寻址的方式,程序如下:MOVA,@R0XCHA,@R1MOV@R0,AXCHA,BXCHB,A练习:编程实现累加器A与寄存器B的内容互换。√×2)低半字节交换指令:

XCHDA,@Ri

;A的低四位与(Ri)的低四位交换3)累加器A的高、低半字节交换指令

SWAPA;A的低四位与高四位互换例:累加器A中的内容为FFH,间址寄存器R0中的内容为5BH,5BH中的内容为6DH,执行指令“XCHDA,@R0”后。累加器A中的内容变为,5BH单元中的内容变为。FDH6FH练习:(A)=56H,R0=30H,(30H)=74H,执行下列指令:

XCHA,@R0XCHDA,@R0XCHA,R0XCHA,30H;(A)=74H,(30H)=56H;(A)=76H,(30H)=54H;(A)=30H,(R0)=76H;(A)=54H,(30H)=30H※对8位无符号数进行直接的运算,包括加法、减法、加1、减1和乘法、除法。※借助溢出标志对有符号的二进制整数进行加减运算。※借助进位标志,可以实现多字节的加减运算。※对压缩的BCD数进行运算(压缩BCD数,是指在1个字节中存放2位BCD数)。※算术运算指令对程序状态字PSW中的CY、AC、OV三个标志都有影响,根据运算的结果可将它们置1或清除。但是加1和减1指令不影响这些标志。二、算数运算类指令1)不带进位的加法指令ADDA,#data ;A+data

→AADDA,direct ;A+(direct)→AADDA,Rn

;A+Rn

→AADDA,@Ri

;A+(Ri)→A

这4条指令的功能是把累加器A中的数与源操作数所确定的内容相加,其和送入累加器A中。1、加法指令※规则①

求和时总是把操作数直接相加,而无须任何变换。②

若位7进位,CY=1,若为无符号数的相加,CY代表十进制256,但是两个带符号数的相加,CY无意义。③

确定相加后OV

温馨提示

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

评论

0/150

提交评论