1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,课程目标,掌握:,单片微型机的基本工作原理,汇编语言程序设计方法,单片微型计算机应用,单片微型计算机应用系统设计方法,单片机原理与应用,第一章,-1,第一章,绪 论,本讲重点:,微处理器、微机和单片机的基本概念、,单片机的发展、常用系列简介,、应用。,讲授内容:,本章主要介绍单片机的结构特点、单片机的发展及常用系列和单片机的应用领域等。重点介绍单片机的特点以及在各领域中的应用。,第一章,-2,回,顾:,有关微型计算机的基础知识,硬件:微处理器,存储器,总线,,I/O,接口,软件:系统软件,应用软件,第一章,
2、-3,第一节 单片机的特点与发展概述,一、微处理器、微机和单片机的概念,微处理器(,Microprocessor,),微型计算机的控制和运算器部分;,微型计算机(,Microcomputer,),有完整运算及控制功能的计算机,包括微处理器、存储器、输入,/,输出,(I/O),接口电路以及输入,/,输出设备等;,单片机,(single chip microcomputer),直译为单片微型计算机,它将,CPU,、,RAM,、,ROM,、定时器,/,计数器、输入,/,输出,(I/O),接口电路、中断、串行通信接口等主要计算机部件集成在一块大规模集成电路芯片上,组成单片微型计算机简称单片机。,单片机
3、的形态只是一块芯片,但是它已具有了微型计算机的组成结构和功能。由于单片机的结构特点,在实际应用中常常将它完全融入应用系统之中,故而也有将单片机称为嵌入式微控制器,(embedded microcon-troller),。,第一章,-4,单片机有,2,种基本结构形式:,一种是在通用微型计算机中广泛采用的将程序存储器和数据存储器合用一个存储空间的结构,,称为,普林斯顿,(Princeton),结构或称冯,诺依曼结构,;,另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛,(Har-vard),结构。,Intel,公司的,MCS-51,和,80C51,系列单片机采用的是,哈佛结构,。
4、,目前的单片机以采用程序存储器和数据存储器截然分开的结构较多。,单片机的中央处理器,(CPU),和通用微处理器基本相同,只是增设了“面向控制”的处理功能。例如:位处理、查表、多种跳转、乘除法运算、状态检测、中断处理功能等,增强了控制的实用性和灵活性。,二、,单片机的一般结构及特点,1,)存储结构为哈佛结构,将程序存储器和数据存储器分开;,单片机结构特点小结:,4,)面向控制,位处理功能强。,3,)芯片引脚具有复用功能;,2,)片内接口电路丰富,由特殊功能寄存器管理;,第一章,-5,第一章,-7,第二节 常用单片机系列简介,一、,ATMEL,单片机,ATMEL,公司所生产的,ATMEL89,系列
5、单片机(简称,89,系列单片机),就是基于,Intel,公司的,MCS-5l,系列而研制的,该公司的技术优势在于,Flash,存储器技术。,标准型单片机有:,AT89C51,,,AT89LV51,,,AT89C52,,,AT89LV52,;,低档型单片机有:,AT89C1051,和,AT89C2051,两种型号。它们的,CPU,内核和,AT89C51,是相同的,但并行,I/O,较少;,高档型单片机有:,AT89S8252,,这是一种可下载的,Flash,单片机。它和,IBM,微机通信进行下载程序十分方便。,第一章,-8,二、,Philips,单片机,Philips,公司的的单片机都属于,MCS
6、-51,系列兼容的单片机。从内部结构看可以划分为两大类,,8,位机与,80C51,兼容系列和,16,位机,XA,系列。,Philips,公司的的单片机,8,位机的主要产品型号有,P80CXX,、,P87CXX,和,P89CXX,系列,,16,位机的主要产品型号有,PXACXX,、,PXAGXX,和,PXASXX,等。,三、,Maxim-Dallas,单片机,四、,WinBond,单片机,五、,Motorola,单片机,六、其他公司的单片机,1,),NEC,单片机;,2,)东芝单片机;,3,),Epson,单片机;,4)PIC,单片机,M icrochip,公司,第一章,-9,第三节 单片机的应
7、用领域及发展,一、单片机在智能仪器中的应用,智能化仪器内部基本上都是用单片机进行信息控制与处理。特别是近年来出现的数字信号处理器,DSP,是一种速度极高的单片机,它在通信和高速信息处理中起了极大的作用,从而扩展了单片机在智能仪器中的应用。,二、单片机在过程控制中的应用,第一章,-10,三、单片机与,e-Home,在家用网络系统,HNS(home networked system),中,对家用电器提出了“个性化”和“社会化”的要求。,家用电器的嵌入式结构有单核嵌入和双核嵌入,2,种。例如:一般电脑电饭煲,内部只有一个单片机,这种控制系统是单核嵌入;对于分体式空调,室内机与室外机中分别有,1,个单
8、片机,为双核嵌入结构。,四、单片机与,Internet,Internet,技术已经深入到日常生活和工作中。各类家用电器和智能装置,它们的“心脏”多是单片机,由于单片机芯片品种达数百种,,其,硬件结构和指令系统各不相同,不能像,PC,机那样通过标准的硬件接口和接口软件直接接入,Internet,网络。,五、单片机的发展,1,)强化指令功能,2,)增加各种接口部件,3,)提高专用程度,第一章,-11,补充内容:,计算机系统中的,数制、码制复习,2,、带符号数的表示法,3,、原码、反码、补码,特点:,8,位二进制数表示原码、反码、补码的范围,(-127+127,、,-127+127,、,-128+1
9、27),补码的运算,在微型计算机中,带符号数用补码表示,减法可用补码相加来实现,运算结果为补码。,1,、数制及其互换,数制 基数 字符,二进制 (,B,),十进制 (,D,),十六进制 ,9,(,H,),第二章,1-1,第二章,MCS-51,单片机的硬件结构与工作原理,主要内容:,1.MCS-51,单片机组成(结构、引脚功能),2.,并行,I/O,端口结构,3.,储器组织与操作,4.MCS-51,单片机的中断系统,1,)中断系统概述,2,)中断的处理过程,重点理解:,1,.,MCS-51,系列单片机存储器结构特点,2,.,单片机特殊功能寄存器的作用,3,.,不同场合下单片机引脚的复用功能,4,
10、.,单片机的位处理功能及其作用,第二章,1-2,一、,MCS,51,单片微机的硬件组成,1,、,M,CS,51,系列单片机的主要特性,1),8,位字长,CPU,和指令系统。,2)1,个片内时钟振荡器和时钟电路。,3)64K,外部数据存储器的地址空间。,4)64K,外部程序存储器的地址空间。,5)32,条双向且分别可位寻址的,I,O,口线。,6)128,字节的片内,RAM(52,子系列为,256,字节,),。,7)2,个,16,位定时器计数器,(52,子系列为,3,个,),。,8),具有,2,个优先级的,5,个中断源结构,(52,子系列有,6,个,),。,9)1,个全双工串行口。,10)1,个布
11、尔处理器。,第一节,MCS-51,单片机的基本组成,第二章,1-3,2.MCS,51,单片机的内部结构,时钟源,T,0,T,1,P0,P1,P2,P3,TXD RXD,INT,0,INT,1,时钟电路,SFR,和,RAM,ROM,定时,/,计数器,CPU,串行,I/O,口,中断系统,并行,I/O,口,系统总线,图,2,1 MCS,51,单片机的功能模块框图,MCS,51,单片机的功能模块框图如图所示。,MCS-51,单片机由,8,位,CPU,、只读存储器,EPROM,ROM,、读写存储器,RAM,、并行,I,O,口、串行,I,O,口、定时器计数器、中断系统、振荡器和时钟电路等部分组成。各部分之
12、间通过内部总线相连。,第二章,1-4,MCS,51,的内部结构框图,第二章,1-5,二、,MCS,51,单片机的引脚功能,40,脚分三类:,1,、电源线和时钟信号线共,4,根,VCC,,,GND,电源和地,+5V,电源供电,,,X1,时钟振荡器输入端,内部振荡器输入端;,X2,时钟振荡器输出端,内部振荡器输出端;,2,、控制线,4,根,RST,复位信号,晶振工作后,2,个机器周期的高电平复位,CPU.,ALE,地址锁存信号访问外部存储器时该信号锁存低,8,位地址;无,RAM,时,,ALE,为晶振,6,分频;,PSEN,外部程序存储器读从程序存储器中取指令或读取数据时,该信号有效。,EA,程序存
13、储器有效地址,,EA=1,从内部开始执行程序;,EA=0,从外部开始执行程序;,3,、,I/O,口线,32,根,-,MCS-51,系列单片机,P0,、,P1,、,P2,、,P3,共,32,位,对应着芯片,的,32,根引脚。,第二章,1-6,三、振荡器、时钟电路及时序,1.,时钟电路,MCS5l,单片机内部有一个用于构成振荡器的高增益反相放大器,引脚,XTALl,和,XTAL2,分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器,如图,2,4,所示。这种方式形成的时钟信号称为内部时钟方式。图,2,5,所示,为外部时钟方式。,第二章,1-7,
14、2.,有关,单片机,CPU,的,时序,1,)振荡周期,指为单片机提供定时信号的振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。,2,)时钟周期,也称为状态周期,用,S,表示。时钟周期是计算机中最基本的时间单位,在一个时钟周期内,,CPU,完成一个最基本的动作。,MCS51,单片机中一个时钟周期为振荡周期的,2,倍。,3,)机器周期,完成一个基本操作(例如,取指令、存储器读、存储器写等)所需要的时间称为机器周期。,MCS51,的一个机器周期含有,6,个时钟周期。,4,)指令周期,完成一条指令所需要的时间称为指令周期。,MCS5l,的指令周期含,1,4,个机器周期不等,其中多数为单周期指令
15、,还有,2,周期和,4,周期指令。,4,周期指令只有乘、除两条指令。,第二章,1-8,P,1,P,2,S,1,振荡周期,时钟周期,机器周期,机器周期,指令周期,XTAL,2,(OSC),S,2,S,3,S,4,S,5,S,6,S,1,S,2,S,4,S,5,S,3,S,6,P,1,P,1,P,1,P,1,P,1,P,1,P,1,P,1,P,1,P,1,P,1,P,2,P,2,P,2,P,2,P,2,P,2,P,2,P,2,P,2,P,2,P,2,MCS-51,单片机各种周期的相互关系,第二节 并行,I/O,接口,MCS,5l,单片机内有四个,8,位并行,I,O,端口,为,P0,、,P1,、,P
16、2,和,P3,。每个端口都是,8,位准双向,I,O,口,共占,32,根引脚。每个端口都包含一个锁存器、一个输出驱动器和一个输入缓冲器。,一、并行,I/O,接口的内部结构,I,O,口的每位锁存器均由,D,触发器组成,用来锁存输出的信息。在,CPU,的“写锁存器”信号驱动下,将内部总线上的数据写入锁存器中。,P,0,口某位的结构图,第二章,2-1,当由,P0,口输入数据时,由于外部输入信号既加在缓冲输入端上,又加在驱动电路的漏极上。如果这时,T2,是导通的,则引脚上的电位始终被钳位在,0,电平上,输人数据不可能正确地读人。因此,在输入数据时,,应先把,P0,口置,1,,使两个输出,FET,均关断,
17、使引脚“浮置”,成为高阻状态,,这样才能正确地插人数据。这就是所谓的准双向口。,P1,口也是,个准双向,I,O,口,与,P0,口不同的是,没有多路开关,MUX,和控制电路部分。输出驱动电路只有一个,FET,场效应管,同时内部带上拉电阻,此电阻与电源相连。,P1,口可作通用双向,I,O,口用,而不必再外接上拉电阻。,P2,口在结构上比,P0,口少了一个输出转换控制部分,多路开关,MUX,的倒向由,CPU,命令控制,且,P2,口内部接有固定的上拉电阻。,P3,口与,Pl,口的输出驱动部分及内部上拉电阻相同,但比,P1,口多了一个第二功能控制部分的逻辑电路,由一个与非门和一个输入缓冲器组成,第二章,
18、2,-2,P3.0(,RXD,),:串行输入端。,P3.1(,TXD,),:串行输出端。,P3.2(,INTO,),:外部中断,0,输入端,低电平有效。,P3.3(,INT1,),:外部中断,1,输入端,低电平有效。,P3.4(,T0,),:定时计数器,0,外部事件计数输入端。,P3.5(,T1,),:定时计数器,1,外部事件计数输入端。,P3.6(,WR,),:外部数据存储器写选通信号,低电平有效。,P3.7(,RD,),:外部数据存储器读选通信号,低电平有效。,P3,口每位的第二功能:,第二章,2,-,3,P0,P3,的功能及使用时的注意事项,1.,在无片外扩展存储器的系统中,这四个端口的
19、每一位都可以作为准双向通用,I,O,端口使用。在具有片外扩展存储器的系统中,,P2,口作为高,8,位地址线,,P0,口作为双向总线,分时作为低,8,位地址和数据的输入输出线。,2.P0,口作为通用双向,I,O,口用时,必须外接上拉电阻。,3.P3,口除了作通用,I,O,使用外,它的各位还具有第二功能。当,P3,口某一位用于第二功能作输出时,则不能再作通用,I,O,使用。,4.,当,P0,P4,端口用作输入时,为了避免误读,都必须先向对应的输出锁存器写入“,l”,,使,FET,截止。然后再读端口引脚。,如:,MOV P1,#0FFH,MOV A,P1,第二章,2,-,4,单片机的片外三总线结构,
20、第二章,2,-,5,第三节,MCS-51,单片机的复位,MCS5l,的,RST,VPD,引脚是复位输入端,其内的施密特触发器用来抑制噪声,它的输出在每个机器周期的,S5P2,由复位电路采样一次。在振荡器运行时,,RST,端至少要保持,2,个机器周期,(24,个振荡周期,),为高电平,才完成一次复位。,复位后片内各专用寄存器的状态如表,21,。,第二章,3-1,几种实用的复位电路,第二章,3,-2,第二章,4-1,第四节,MCS-51,存储器组织与操作,M,CS,51,系列单片机其存储结构特点是:,将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构的单片微机称为,哈佛型,结构单
21、片微机。,在物理上,有,4,个相互独立的存储空间:,片内和片外程序存储器;片内和片外数据存储器。,在逻辑上,有三个彼此独立的地址空间:,1,、片内外统一编地址的,64KB,程序存储器地址间;,2,、,256,字节的片内数据存储器地址空间;,3,、,64KB,片外数据存储器地址空间,外部,ROM,内部,ROM,(EA=1),外部,ROM,(EA=0),0000H,0FFFH,1000H,FFFFH,外部,RAM,(I/O,口,),0000H,0FFFFH,程序存储器(,c,),特殊功能寄存器区,00H,30H,2FH,0FFH,工作寄存器区,位寻址区,20H,1FH,80H,7FH,0000H,
22、0FFFH,内部数据存储器(,a,),外部数据存储器(,b,),一般,RAM,区,MCS,5l,系列存储器地址空间分配图,第二章,4-2,一、,MCS,51,程序存储器地址空间,7,个特殊单元:,0000H,复位后,PC=0000H.,开始执行程序,0003H,外部中断,0,(,INT0,)入口,000BH,定时器,0,中断(,TF0,)入口,0013H,外部中断,1,(,INT1,)入口,001BH,定时器,1,中断(,TF1,)入口,0023H,串行口中断,TI/RI,入口,002BH,定时计数器,2,溢出或,T2EX,输入负跳变(,52,系列),程序存储器用于存放调试好的应用程序和表格常
23、数。,MCS,5l,采用,16,位的程序计数器,PC,和,l6,位的地址总线,,64KB,片内、外的程序存储器空间连续、统一,。,第二章,4-3,二、,MCS,51,数据存储器地址空间,数据存储器地址空间由内部和外部数据存储器空间组成。,内部和外部数据存储器空间存在重叠。,通过不同指令来区别,内部数据传送指令:,MOV,外部数据传送指令:,MOVX,1,、工作寄存器区(),分成,4,组,每组,8,个寄存器,R0-R7,2,、位寻址区(,20H,2FH,),既可进行字节寻址,又可进行位寻址。这,16,个单元共有,168,128,位,对应位地址,00H-7FH,。,3,、通用存储区(,30H,7F
24、H,),4,、,外部数据存储器,0000,H-FFFFH,范围为,64K,字节,采用,R0,、,R1,或,DPTR,寄存器间址方式访问。,内部数据存储器在物理上又可分成三部分:低,128,字节,RAM,、高,128,字节,RAM(,仅,8032,0852,才有,),和专用寄存器,(SFR),。,低,128,字节,RAM,由工作寄存器区、位寻址区和通用,RAM,区组成。,内部数据存储器地址空间,8032,0852,的高,128,字节,RAM,和专用寄存器,(SFR),空间重合,通过不同寻址方式区别,第二章,4-4,三、特殊功能寄存器地址空间,共有,26,个专用寄存器,SFR,,离散地分布在片内,
25、RAM,的高,128,字节地址,80H,0FFH,中。,程序计数器,PC,不占据,RAM,单元,在除,PC,外的专用寄存器,SFR,中,有,12,个专用寄存器既可字节寻址,又可位寻址(字节地址为,8,的整倍数)。,位地址的表示法,例:,位名称,CY,、,RS0,寄存器名加序号,PSW.7,ACC.1,字节地址加序号,20H.3,直接位地址,00H,第二章,1-19,1.,累加器,ACC,累,加器,A,在大部分的算术运算中存放某个操作数和运算结果。,2.,寄存器,B,寄存器,B,主要用于与累加器,A,配合执行乘法和除法指令的操作。,3.,程序状态字,PSW,8,位寄存器,用来存放程序状态信息。某
26、些指令的执行结果会自动影响,PSW,的有关状态标志位,有些状态位可用指令来设置。,特殊功能寄存器,:进位标志位,:半进位标,:用户标志位,:工作寄存器组选择,:溢出标志,P,:奇偶标志,RS1 RS0,寄存器组内部,RAM,地址,0 0,工作寄存器组,0 00H,07H,0 1,工作寄存器组,1 08H,0FH,1 0,工作寄存器组,2 10H,17H,1 1,工作寄存器组,3 18H,1FH,第二章,1-20,4.,堆栈指针,SP,栈指针,SP,为一个,8,位专用寄存器,每存入,(,或取出,),一个字节数据,,SP,就自动加,1(,或减,1),,,SP,始终指向新的栈顶。,系统复位后钱指针初
27、始化为,07H,。,5.,数据指针,DPTR,16,位的专用寄存器,由高位字节,DPH,和低位字节,DPL,组成。可作为一个,16,位寄存器使用,也可以作为,2,个独立的,8,位寄存器,DPH,和,DPL,使用。,6.I/O,端口,P0,P3,专用寄存器,P0,P3,分别是,I/O,端口,P0,P3,的锁存器。可以把,I/O,口当作,般的专用寄存器来使用,没有专门设置的口操作指令,,全部采用统一的,MOV,指令。,关于数据存储器,第二章,1-21,1,)根据地址总线宽度,在片外可扩展的存储器最大容量为,64KB,,地址范围为,0000H,FFFFH,。,2,),片外数据存储器,与,程序存储器,
28、的操作使用不同的指令和控制信号,允许两者的地址重复。因此,片外要扩展的数据存储器与程序存储器各为,64KB,。,3,),片外数据存储器,与,片内数据存储器,的操作指令亦不同,(,对片外,RAM,用,MOVX,指令,),,所以也允许两者的地址重复,内部数据存储器的地址,00,FFH,,外部扩展数据存储器的地址可以从,0000H,FFFFH,。,注意:采用,R0,、,R1,或,DPTR,寄存器间址方式访问片外数据存储器,。,当采用,R0,、,R1,间址时只能访问低,256,字节,采用,DPTR,间址可访问整个,64K,字节空间。,MCS-51,及其,5l,子系列的其它成员都具有相同的中断结构。,8
29、051,有,5,个中断源,2,个外部中断源,INT0,和,INT1,,,2,个片内定时器计数器溢出中断源,,1,个片内串行口中断源。,分为两级,高级中断和低级中断。其中任何一个中断源的优先级均可由软件设定为高级或低级,能实现两级中断服务程序嵌套。,都是可屏蔽的,由软件设定。,第五节,MCS-51,的中断系统,中断允许寄存器,IE,控制,中断优先级寄存器,IP,控制,中断触发方式位,IT,控制,第二章,3-2,一、,MCS,51,的中断源,1.,中断源,1),外部中断,0,请求,由,P3.2,引脚输入。可由用户设定为两种触发方式,(电平触发方式还是边沿触发方式)。一旦输入信号有效,则向,CPU,
30、申请中断,并且将中断标志,IE0,置,1,。,2),外部中断,1,请求,由,P3.3,引脚输入。亦可由用户设定为电平触发方式还是边沿触发方式。一旦输人信号有效,则向,CPU,申请中断,并将中断标志,IE1,置,1,。,3,)片内定时器,T0,溢出中断请求。当定时器,T0,产生溢出时,,T0,中断请求标志,TF0,置,1,,请求中断处理。,4),片内定时器,T1,溢出中断请求。当定时器,T1,产生溢出时,,T1,中断请求标志,TF1,置,l,,请求中断处理。,5),片内串行口发送接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志,TI,或,RI,置,1,,请求中断处理。,第
31、二章,3-3,2.,中断请求标志,(1)TCON,的中断标志,TCON,是专用寄存器,字节地址为,88H,,它锁存了外部和的中断请求标志及,T0,和,T1,的溢出中断请求标志,TCON,88H,D7,D6,D5,D4,D3,D2,D1,D0,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,1)IT0,:选择外部中断,0,(,INT0,)触发方式控制位。,IT0=0 INT0,为电平触发方式,。,2)IE0,:外部中断,0,请求标志位。,IE0,1,,外部中断,0,向,CPU,申请中断。,3)IT1,:选择外部中断,1,(,INT1,)触发方式控制位。,4)1E1,:外部中断,1
32、,请求标志位。,IE1,1,时,外部中断,1,向,CPU,申请中断。,5)TF0,:片内定时器,T0,溢出中断请求标志。,T0,被启动后,从初始值开始进行加,1,计数,当最高位产生溢出时置,TF0,1,,向,CPU,申请中断,直到,CPU,响应该中断时,才由硬件自动将,TF0,清,0,,也可由软件查询该标志,并用软件清,0,。,6)TF1,:片内定时器,T1,溢出中断请求标志,其操作功能与,TF0,类同。,第二章,3-4,SCON,是串行口控制寄存器,与中断有关的是它的低两位,TI,和,RI,。,1)TI,(,SCON.1,):串行口发送中断标志位。每发送完一个串行帧,由硬件置位,TI,。,C
33、PU,响应中断时,不能清除,TI,,,TI,必须由软件清除。,2,),RI(SCON.0),:串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位,RI,。同样,,RI,必须由软件清除。,TI,RI,SCON,2)SCON,的中断标志,第二章,3-5,二、,MCS,51,的中断控制,1,、中断允许寄存器,IE,中断的允许与开放,第二章,3-6,2,中断优先级寄存器,IP,中断优先级控制,内部自然优先级:入口地址,INT0,高,0003H,T0 000BH,INT1 0013H,T1 001BH,TI/RI,底,0023H,第二章,3-8,中断处理过程一般分为三个阶段,即
34、中断响应、中断处理和中断返回,。,三、响应中断的条件及过程,1.,中断响应,(,1,)中断响应的条件,1,)有中断源发出请求信号,2,)中断是开放的(总允许、源允许),3,)没有封锁(受阻),,受阻情况是:,CPU,正在执行同级或高一级的中断服务程序;,现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前不响应任何中断请求;,当前正在执行的是中断返回指令,RETI,或访问专用寄存器,IE,或,IP,的指令。也就是说,在执行,RETI,或是访问,IE,、,IP,的指令后,至少需要再执行,条其他指令,才会响应中断请求。,第二章,3-9,2,)中断响应过程,进入中断响应周期。,CPU,
35、在中断响应周期要完成下列操作:,1),根据中断请求源的优先级高低,,使相应的优先级状态触发器置,1,。,2),清相应中断请求标志位,IE0,、,IE1,、,TF0,或,TF1,3),保留断点,把,PC,内容,压入堆 保存。,4),把被响应的中断源服务,程序,入口地址,送入,PC,,输入相应,中断服务程序。,第二章,3-10,2.,中断服务与返回,在编写中断服务程序时加注意的几点:,1),因各入口地址之间只相隔,8,个字节,一般的中断服务程序是存放不下的。所以通常在中断入口地址单元处存放,条无条件转移指令,这样就可使中断服务程序灵活地安排在,64KB,程序存储器的任何空间。,2),若要在执行当前
36、中断程序时禁止更高优先级中断,可先用软件关闭,CPU,中断,或禁止某中断源中断,在中断返回前再开放中断。,3),注意在保护现场和恢复现场。,4,)中断服务程序的最后一条是返回指令,RETI,,该指令将清除响应中断时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,装入程序计数器,PC,,使程序返回到被中断的程序断点处,继续向下执行。,第二章,3-11,3.,中断请求的撤除,CPU,响应中断请求后,在中断返回,(RETI),前,该中断请求信号必须撤除,否则会引起另外一次中断。,注意:采用边沿触发的外部中断标志,IE0,或,IEl,和定时器中断标志,TF0,或,TFl,,,CPU,响应中断后
37、能用硬件自动情除。,但在电平触发时,,IE0,或,IEl,受外部引脚中断信号,(,或,),的直接控制,,CPU,无法控制,IE0,或,IEl,,需要另外考虑撤除中断请求信号的措施,如通过外加硬件电路,并配合软件来解决;串行口中断请求标志,TI,和,RI,也不能由硬件自动清除,需要在中断服务程序中,用软件来清除相应的中断请求标志,。,小结:,1,、硬件构成,2,、存储器组织,3,、中断系统,第三章,6-24,三、分支程序与循环程序设计,课间休息,第三章,1-1,本章重点:,指令的寻址方式、功能、使用方法,程序设计的一般方法和技巧,讲授内容:,MCS-51,单片机的寻址方式,MCS-51,单片机指
38、令分类,程序设计方法和算法分析,应用程序设计举例,第三章,MCS-51,单片机的指令系统与程序设计,第一节,MCS,51,单片机的寻址方式,MCS-51,单片机的指令系统共有,111,条指令,,7,种寻址方式,共分为五大类,MCS-51,指令系统简介:,1,、指令所包含的内容,操作码:规定指令的操作功能,操作数:指令操作的具体对象(地址、数据),2,、指令格式,单字节指令:,双字节指令:,三字节指令,第三章,1-2,在,MCS-51,系列单片机的指令中,常用的符号:,#data8,、,#data16,:分别表示,8,位、,16,位立即数。,direct,:片内,RAM,单元地址(,8,位),也
39、可以指特殊功能寄存器的地址或符号名称。,addr11,、,addr16,:分别表示,11,位、,16,位地址码。,rel,:相对转移指令中的偏移量,为,8,位带符号数(补码形式)。,bit,:片内,RAM,中(可位寻址)的位地址。,A,:累加器,A,;,ACC,则表示累加器,A,的地址。,Rn,:当前寄存器组的,8,个工作寄存器,R0,R7,。,Ri,:可用作间接寻址的工作寄存器,只能是,R0,、,R1,。,:间接寻址的前缀标志。,第三章,1-3,第一节,MCS,51,单片机的寻址方式,一、立即寻址,立即寻址是指在指令中直接给出其操作数,该操作数称为立即数。为了与直接寻址指令中的直接地址相区别
40、,在立即数前面必需加上前缀“,#,”,。,例如:,MOV R0,,,#30H,寻址方式,二、直接寻址,直接寻址是指在指令中直接给出存放数据的地址(注意:不是立即数,并且只限于片内,RAM,范围)。直接寻址只能访问特殊功能寄存器、内部数据存储器和位地址空间。,例如:,MOV A,,,30H,比较以上两指令的区别,第三章,1-4,三、寄存器寻址,寄存器寻址是指指令中的操作数为寄存器中的内容。,例如:,MOV A,,,R1,第三章,1-5,四、寄存器间接寻址,寄存器间接寻址是指指令中的操作数在寄存器的内容所指的地址单元中。,例如:,MOV R1,,,#30H,;把立即数,30H,送,R1,寄存器,M
41、OVA,,,R1,;把,30H,单元中的数送到,A,中,五、变址寻址,变址寻址用于访问,程序存储器,中的一个字节,该字节的地址是:基址寄存器(,DPTR,或,PC,)的内容与变址寄存器,A,中的内容之和。,例如:,MOV DPTR,,,#3000H,;立即数,3000H,送,DPTR,MOV A,,,#02H,;立即数,02H,送,A,MOV,C,A,,,A+DPTR,;取,ROM,中,3002H,单元中的数送,A,六、相对寻址,以当前值为基准,加上相对偏移量,rel,形成转移地址,转移范围:,以当前值起始地址,相对偏移在 字节单元之间。,相对寻址方式为相对转移指令所采用。,转移的目的地址为:
42、,目的地址,=,转移指令所在地址,+,转移指令字节数,+rel,第三章,1-6,七、位寻址,位寻址是指对片内,RAM,的位寻址区(,20H,2FH,)、可以位寻址的专用寄存器的各位,并进行位操作的寻址方式。,例如:,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,第三章,1-7,操作数的,7,种寻
43、址方式和寻址的空间,寻址方式,相关寄存器,寻址的空间,立即寻址,程序存储器,ROM,直接寻址,片内,RAM,和,SFR,寄存器寻址,R0,R7,,,A,,,B,,,DPTR,R0,R7,,,A,,,B,,,DPTR,寄存器间接,寻址,R0,,,R1,片内,RAM,R0,,,R1,,,DPTR,片外,RAM,变址寻址,A+PC,,,A+DPTR,ROM,区,相对寻址,PC,ROM,区,位寻址,可位寻址的,SFR,片内,RAM20H2FH,SFR,可寻址位,第三章,1-8,MCS,51,汇编语言指令格式如下:,标号:操作码,操作数,1,,操作数,2,,操作数,3,;注释,其中标号实际上为符号地址,
44、表示这条指令在程序存储器中的存放首地址,以字母开始,后可跟,18,个字母或数字,但标号不能用操作码或专用符号。,操作码规定了指令的具体操作。,指令中的操作数为指令的具体操作对象,,有些指令中有,3,个操作数,有些只有一个,有些无操作数,仅有操作码。,第三章,2-1,第二节,MCS,51,单片机的指令分类,第三章,2-2,指令分类:,一、数据传送与交换类指令,特点:,除第一操作数为,A,的指令影响,P,位外,其它并不影响标志位,有三种传送指令,MOV,片内,RAM,和特殊功能寄存器之间的传送,MOVX,片外,RAM,与,ACC,之间的传送,MOVC,程序存储器的数据送,ACC,1,用于片内,RA
45、M,传送的指令(,16,条),1,)以累加器,CC,为目的操作数,,,n,;,.,,,direct,;,,,Ri,(,R1,,,R0,),,,#data,第三章,2-3,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,,,#Ddata
46、16,例如,:,MOV30H,,,#7AH,;将立即数,7AH,送片内,RAM 30H,单元中,MOVR0,#30H,;将立即数,30H,送,R0,寄存器,MOVA,,,R0,;将,R0,指定的,30H,中的数,7AH,送,A,中,MOV DPTR,#1000H,;将,1000H,送,DPTR,寄存器,MOVX DPTR,A,练习:将,R1,中的内容送,R2,第三章,2-4,2,用于片外,RAM,传送的指令(共,4,条),片外,RAM,单元的地址为,16,位,一般用,DPTR,间接寻址;也可使用,Ri,来间接寻址(低,8,位编址时)。,1,),外部,RAM,低,256,字节单元与之间的传送,M
47、OVX,,,i,MOVX,i,,,),外部,RAM,单元与之间的传送,MOVX,,,DPTR,MOVX,DPTR,例,:,MOV DPTR,#2000H,MOVX,,,DPTR,;,将外部,RAM,中,2000H,单元内容,A,思考:,将片内,RAM 50H,单元,内容 片外,RAM 5000H,单元,第三章,2-5,3,用于,ROM,传送的指令(共,2,条),MOVC A,,,A+DPTR,;,(A)(A)+DPTR),),MOVC A,,,A+PC,;,(A)(A)+(PC),以,PC,的当前值为基址,,A,为变址,例,3-1,:在,ROM 1000H,开始存有,5,个字节数,编程将第二个
48、字节数取出送片内,RAM 30H,单元中。程序段如下:,MOV DPTR,,,#1000H,;置,ROM,地址指针(基址),DPTR,MOV A,,,#01H,;表内序号送,A,(变址),MOVC A,,,A+DPTR,;从,ROM 1000H,单元中取数送到,A,MOV 30H,,,A,;再存入内,RAM 30H,中,ORG 1000H,;伪指令,定义数表起始地址,TAB:DB 55H,,,67H,,,9AH,,,;在,ROM 1000H,开始的空间中定义,5,个,;,字节,第三章,2-6,例,3-2,:设某数,N,已存于,20H,单元(,N,10,),查表求,N,平方值,存入,21H,单元
49、。,程序段如下:,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,个字节的空间中。,第三章,2-7,4,交换指令(共,5,条)
50、,其中,3,条为整个字节相互交换,,XCHD,指令为低,4,位相互交换,,SWAP,为,ACC,中的高、低,4,位互换。,1,)字节交换,XCH,A,Rn ;(A)(Rn),XCH,A,direct,XCH A,Ri,2,)半字节交换,XCHD A,,,Ri,;,SWAP A,例:已知(,A,),=34H,,(,R6,),=29H,执行以下指令后,(,A,),=,?,XCH A,,,R6,SWAP A,思考:用不同的方法实现片内,RAM,(,20H,),R1,第三章,2,-7-2,5,堆栈操作指令(共,2,条),堆栈是在内,RAM,开辟的一个数据的暂存空间,遵守“后进先出”原则操作,其地址指针