MCS-51单片机原理与应用小结(精品).ppt
MCS-51单片机原理与应用小结一、什么是单片机一、什么是单片机二、二、MCS-51单片机系统结构单片机系统结构三、三、MCS-51存储器与布尔处理器存储器与布尔处理器四、四、MCS-51指令系统指令系统五、五、MCS-51中断系统中断系统六、六、MCS-51的定时器的定时器/计数器计数器七、七、MCS-51的串行通信口的串行通信口八、八、MCS-51的汇编语言程序设计基础的汇编语言程序设计基础九、九、MCS-51系统的功能扩展系统的功能扩展一、什么是单片机一、什么是单片机一、什么是单片机它是将组成微型计算机所必须的部件(中央处理器CPU、程序存贮器(ROM)、数据存贮器(RAM)、输入/输出(I/O)接口、定时/计数器、串行口、系统总线等)集成在一个超大规模集成电路芯片上。二、MCS-51单片机系统结构MCS-51硬件配置基本配置:8位CPU振荡器和时钟电路片内4K/8K字节ROM/EPROM、128/256字节RAM可寻址外部程序存储器和数据存储器各64K字节二十多个特殊功能寄存器(SFR)32线并行 I/O接口2/3个片内16位定时器/计数器片内中断处理系统(5/6个中断源,2个优先级)1个片内全双工串行I/O口位处理功能P0.0-P0.7P0.0-P0.7 P2.0-P2.7P2.0-P2.7P1.0-P1.7P1.0-P1.7P3.0-P3.7P3.0-P3.7PSENPSENALEALE/EA/EARSTRSTVccVssXTAL1XTAL1 XTAL2XTAL2MCS-51单片机内部硬件结构单片机内部硬件结构PCONSCONTMODTCONTH0TL0TH1TL1T2CONTH2TL2RCAP2LRCAP2HSBUFIEIP中央处理器(CPU)8051的核心部件是一个8位CPU,它是8051的指挥中心、执行机构,读入和分析每条指令,控制单片机的各个部件执行制定的操作。它是由8位算术/逻辑运算部件ALU、布尔处理器、定时/控制部件和若干寄存器等主要部件组成。算术/逻辑运算部件ALUALU包括运算器、布尔处理器、累加器A、寄存器B、暂存器、程序状态字PSW寄存器等。其功能是实现数据的算术/逻辑运算、位变量处理和数据传送等操作。(+、算术运算,与、或、非、异或 逻辑运算、循环移位、位处理)8051的指令代码不超过3字节,当主频12MHZ时,指令的执行时间为:1us(64条)、2us(45条)、乘除法指令为4us。专用寄存器 8051内部有工作寄存器、专用寄存器和特殊功能寄存器。累加器A(8位)寄存器B(8位)数据指针DPTR(16位)程序状态字PSW(8位)堆栈及栈指针SP(8位)CyCyACACF0F0RS1RS1RS0RS0OVOV P P向向CPU提供两相时钟信号提供两相时钟信号振荡器输出信号振荡器输出信号单片机时钟电路单片机时钟电路 一个机器周期=6个状态=12个振荡周期P1P2S1P2振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2MCS-51单片机各种周期的相互关系单片机各种周期的相互关系MCS-51取指取指/执行时序图执行时序图MCS-51单片机有4个双向并行的8位I/O口P0P3,可并行输入或输出8位数据,也可按位使用。MCS-51 并行I/O口结构8051有4个8位并行 I/O 接口,各具特殊的电路结构,每位具有自己的锁存器、输出驱动和输入缓冲器。这种结构在输出时锁存,即输出新数据之前通道口上的数据保持不变。不扩展外部功能时,P0、P1、P2均可做典型I/O口使用,P3作做典型I/O口和第二特殊功能口用;当外部功能扩展时,P0口做低8位地址和数据总线复用,P2口做高8位地址,P1口典型I/O端口P0口1地址/数据复用总线口n 控制信号为1,输出的地址数据通过与门驱动T1,同时通过反相器驱动T2。锁存器 一般I/O口控制信号为0,与门输出为0使T1截止,输出为漏极开漏电路,需外接需外接上拉电阻。上拉电阻。除了读引脚操作外,还可以读锁存器,实现读锁存器修改再写入操作。P0口访问外部存储器时是地址/数据复用总线口,真正双向I/O口。做通用I/O口是准双向,由输出状态变为输入时,置锁存器为1再输入。输出级能驱动8个TTL负载。一般P0做地址/数据复用总线口,就不能再做通用I/O口时用。复位后自动置成地址/数据复用总线口。P0口P2口当系统外部功能扩展时,P2口输出高8位地址,这时不能再做通用I/O口使。不扩展时可做通用I/O口。输出级能驱动4个TTL负载。当开关接通地址信号,地址信号通过反相器驱动T1,输出到引脚。当开关接通Q,进行通用I/O口操作。属于准双向口,由输出转为输入状态时,必须先置位锁存器使T1截止。P2口内部有上拉电阻。锁存器P1口P1是标准的8位准双向并行通用I/O口。输出级能驱动4个TTL负载。锁存器P1.X引脚P3口P3是双功能口,即可做8位准双向并行通用I/O口,又具有第二变异功能。输出级能驱动4个TTL负载。P3口的第二功能表P3.2P3.3位线引脚第二功能P3.010RXD(串行输入口)P3.111TXD(串行输出口)12INT0(外部中断0)13INT1(外部中断1)P3.414T0(定时器0的计数输入)P3.515T1(定时器1的计数输入)16WR(外部数据存储器写脉冲)17RD(外部数据存储器读脉冲)P3.7 P3.6 并行I/O口的读-修改-写操作读-修改-写操作每个并行I/O口均有读引脚和读锁存器两种读方式。MCS-51有些指令是读引脚内容,有些是读锁存器内容。读锁存器指令是从锁存器种读出内容,进行处理,然后再写入锁存器,称为读修改写操作。当指令的目的操作数为某个I/O口或其中的某一位时,该指令读的是锁存器内容。具有该功能的指令有:逻辑与 ANL P1,A 逻辑或 ORL P1,A逻辑异或 XOR P1,A 位取反 CPL P3.0增量指令 INC P2 减量指令 DEC P2循环判跳 DJNZ P3,LABEL 传送指令 MOV P1.0,C清0指令 CLR P1.0 置位指令 SETB P1.0 并行I/O口结构总线总线当访问外部存储器时,P2口输出高8位地址,P0输出低8位地址,通过ALE信号将P0口的低8位地址锁存到外部地址锁存器,为P0口接收数据作准备。/PSEN用于访问外部程序存储器;访问外部数据存储器时,执行MOVX指令,P3口自动产生/RD和/WR信号允许对外部数据存储单元进行读写。MCS-51 节电运行方式(低功耗运行方式)待机待机(休闲休闲)方式(方式(IdleIdle)掉电保护掉电保护方式(方式(Power DownPower Down)。)。在在VccVcc=5V=5V,foscfosc=12MHz=12MHz条件下,条件下,正常工作时电流约正常工作时电流约20mA20mA;待机待机(休闲休闲)方式时电流约方式时电流约5mA5mA;掉电保护方式时电流仅掉电保护方式时电流仅7575 A A。两种低功耗工作方式由电源控制寄存器两种低功耗工作方式由电源控制寄存器PCONPCON确定。确定。其中:其中:SMODSMOD:波特率倍增位(在串行通信中使用)波特率倍增位(在串行通信中使用)GF1GF1、GF0GF0:通用标志位通用标志位 PDPD:掉电方式控制位,掉电方式控制位,PD=1PD=1,进入掉电工作方式;进入掉电工作方式;IDLIDL:待机待机(休闲休闲)方式控制位方式控制位,IDL=1,IDL=1,进入待机工作方式。进入待机工作方式。SMODSMODGF1GF1GF0GF0PDPDIDLIDLPCONPCON 待机(休闲)方式待机(休闲)方式 待机(休闲)状态待机(休闲)状态退出退出 产生中断;产生中断;复位。复位。待机(休闲)方式待机(休闲)方式状态状态片内时钟仅向中断源提供,其余被阻断;片内时钟仅向中断源提供,其余被阻断;PCPC、特殊功能寄存器和片内特殊功能寄存器和片内RAMRAM状态保持不变;状态保持不变;I/OI/O引脚端口值保持原逻辑值;引脚端口值保持原逻辑值;ALEALE、保持逻辑高电平;保持逻辑高电平;CPUCPU不工作,不工作,但中断功能继续存在。但中断功能继续存在。待机(休闲)状态待机(休闲)状态进入进入 只要使只要使PCONPCON中中IDLIDL位置位置1 1。掉电保护方式掉电保护方式 掉电保护状态掉电保护状态退出退出 掉电保护方式掉电保护方式状态状态片内振荡器停振,所有功能部件停止工作;片内振荡器停振,所有功能部件停止工作;片内片内RAMRAM数据信息数据信息保存不变;保存不变;ALEALE、PSENPSEN为低电平;为低电平;VccVcc可降至可降至2V2V,但不能真正掉电。但不能真正掉电。掉电保护状态掉电保护状态进入进入只要使只要使PCONPCON中中PDPD位置位置1 1。唯一方法是硬件复位,复位后片内唯一方法是硬件复位,复位后片内RAMRAM数据不变,数据不变,特殊功能寄存器内容按复位状态初始化。特殊功能寄存器内容按复位状态初始化。三、MCS-51存储器与布尔处理器MCS-51:程序存储器与数据存储器分为两个独立存储器逻辑空间,各有自己的寻址系统、控制信号和功能,分开编址,称为哈佛结构。MCS-51的存储空间分为三类:片内、片外统一编址的64K字节程序存储器空间64K字节的外部数据存储器地址空间128/256字节的内部程序存储器空间,其中包括特殊功能寄存器特殊功能寄存器SFR通用RAM区00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)FFFFH外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000H程序存储器(c)工作寄存器区MCS-51单片机存储器结构位寻址区128BRAM MCS-51的程序存储空间:MCS-51设置16位的程序计数器PC,可寻址64K字节程序存储器空间.8051/8751片内4K字节的ROM/EPROM;8052片内8K字节的ROM/EPROM;8031/8032无内部程序存储器;/EA引脚为高电平,CPU首先访问内部程序存储器,访问超过4K(8K)字节的程序存储器时,CPU自动转向访问外部程序存储器,/PSEN输出有效信号./EA引脚为低电平,CPU只访问外部程序存储器.程序存储器的某些单元专用于某些特定的程序段:0000H0002H 程序的起始0003H0032H 中断服务程序 中 断 源 首 地 址外部中断0(/INT0)0003H定时器0溢出中断000BH外部中断1(/INT1)0013H定时器1溢出中断001BH串行口中断0023H定时器2溢出002BH每个中断只保留8个单元,一般不够存放中断服务程序,常用转移指令转向实际的中断服务程序段.MCS-51的数据存储器MCS-51的数据存储器也分为内部和外部,分别用MOV和MOVX 指令访问.特殊功能寄存器SFR通用RAM区00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)工作寄存器区位寻址区128BRAM内部数据存储器的空间分配内部数据存储器的空间分配内部数据存储器中的位地址 特殊功能寄存器地址及功能表特殊功能寄存器地址及功能表外部程序存储器与访问对于8051/8751/8052/8752片内4K/8K字节的程序存储器外,还可扩展60/56K程序存储器;对于8031/8032无内部程序存储器,必须全部由外部配置,一般选用EPROM;若低地址程序段在片内,/EA引脚为高电平,CPU从0000H访问内部程序存储器,程序执行超过4095/8191单元后,CPU自动转向访问外部程序存储器,内部和外部访问速度相同.若无外部程序存储器,4095/8191单元不能有数据.外部程序存储器与访问CPU访问外部程序存储器时,PC的低8位地址由P0口输出,高8位地址由P2输出.从外部程序存储器读入的指令由P0口输入./ALE为地址锁存信号,每个机器周期出现两次,只有访问外部数据存储器时才减为一次.因此/ALE信号为主振频率的1/6,实际应用中可借用作定时信号./PSEN是访问外部程序存储器的专用选通信号,低电平有效.每个机器周期有效两次.外部数据存储器与访问MCS-51片内配置128/256字节的RAM,可根据需要扩展至64KRAMCPU访问外部数据存储器的地址由数据指针DPTR或工作寄存器Ri提供,Ri提供8位地址,由P0口输出;DPTR提供16位地址,由P0口输出DPL,DPH由P2输出.读写操作的数据由P0口输入/输出.访问外部RAM的读/写选通信号由/RD、/WR提供。访问内部还是外部RAM是通过不同的指令来区别。访问内部RAM选用MOV类指令,访问外部RAM选用MOVX指令。MOVX A,Ri/MOVX A,DPTR,MOVX Ri,A/MOVX DPTR,A由于访问外部程序或数据存储器各有不同的选通信号,提供访问的地址单元不同,从而在结构上把程序存储器和数据存储器分开。外部扩展地址/数据总线P0口既是低8位地址总线,又是8位数据总线,分时复用,P2口为高8位地址总线,从而形成了16位地址总线和8位数据总线.ALE、/PSEN以及P3口的一部分组成控制总线,形成总线结构。P0口分时复用,具有双向功能,不需外接上拉电阻。一旦外部扩展存储器,P2口不能作一般I/O口使用。MCS-51单片机有7种基本寻址方式序号 寻址方式相应存储器、寄存器空间1寄存器寻址R0R7,Acc,B,Cy,DPTR2直接寻址内部RAM低128字节和特殊功能寄存器3寄存器间接寻址内部RAM(R1,R0,SP)外部RAM(R1,R0,DPTR)4立即寻址程序存储器 立即数5基址寄存器加变址寄存器间接寻址程序存储器(A+DPTR,A+PC)6相对寻址有效地址=PC当前值为基址+偏移量7位寻址内部RAM和特殊功能寄存器的可位寻址单元布尔(位)处理器为了更好地“面向测控系统”。MCS-51系列单片机内部设置有完整的功能极强的位处理器,被誉为具有双CPU的单片机。位累加器,位寻址寄存器,位寻址I/O口,位寻址内部RAM,位寻址指令,程序存储器等组成MCS-51的位处理器对每个位单元可以进行置位,清零,求反,传送,判跳和逻辑运算.操作结果一般存于位累加器中.四、四、MCS-51指令系统指令系统MCS-51 指令系统数据传送类指令指令系统数据传送类指令MCS-51 指令系统数据传送类指令指令系统数据传送类指令MCS-51 指指令令系系统统算算术术运运算算指指令令MCS-51指指令令系系统统 逻逻辑辑运运算算指指令令MCS-51 指令系统控制转移指令指令系统控制转移指令MCS-51 指令系统位操作指令指令系统位操作指令五、MCS-51中断系统MCS-51有5个(或6个)中断源,2个中断优先级,可实现两级中断嵌套。定时器控制寄存器TCON 88HTF1TR1TF0TR0IE1IT1IE0IT0TIRI串行口控制寄存器SCON 98Hv完成一帧数据的接收(发送),RI(TI)置1。v因为RI(TI)共用一个中断矢量,中断服务程序中必须判断是接收/发送中断。v必须由软件清0v若禁止中断,可以软件查询方式处理。当INT0/INT1中断请求有效,IE0/IE0置1。主机在S5P2采样标志位。响应中断后硬件自动复位IE0/IE1IT0/IT1=0(1),决定INT0/INT1低电平(负跳变)有效,定时器T0/T1溢出中断请求标志TF0/TF1,主机在S5P2采样标志位,响应中断后,硬件自动清0。若禁止中断,可以软件查询方式处理。中断允许寄存器IE A8HEAESET1EX1ET0EX0外部中断INT0/INT1中断响应控制位,1允许,0禁止定时器T0/T1溢出中断响应控制位。1允许,0禁止。串行通讯接收/发送中断响应控制位。1允许,0禁止。允许/禁止所有中断。1允许,0禁止。中断优先级寄存器IP(B8H)PSPT1PX1PT0PX0外部中断INT0/INT1中断优先级设置位,1高优先级,0低优先级。定时器T0/T1中断优先级设置位。1高优先级,0低优先级。串行通讯中断优先级设置位。1高优先级,0低优先级。v当同时有两个以上同优先级的中断请求时,按优先顺序查询响应中断。同级内的优先顺序由高到低是:/INT0 T0 /INT1 T1 串行口中断v优先级注意问题v任一中断源可通过IP设置优先级别为高或低。v不同级别中断请求,优先响应高级别中断。v只有高级别中断可以中止低级中断服务子程序,实现中断嵌套。同级别的中断不能实现中断嵌套。中断服务程序的入口地址 中 断 源首 地 址外部中断0(/INT0)0003H定时器0溢出中断000BH外部中断1(/INT1)0013H定时器1溢出中断001BH串行口中断0023H定时器2溢出002BH中断响应条件有中断请求信号(TCON寄存器有置位)系统处于开中断状态(IE寄存器有置位:EA=1,对应控制位=1)无同级或高优先级中断服务程序在执行。当前指令已执行到最后一个机器周期并已经结束。当前执行的不是RETI指令或访问IE、IP寄存器指令。若是,则除执行完该指令外,还要执行完下一条指令,以保证中断服务子程序的正确返回以及IE、IP寄存器功能的设置。中断响应条件和过程中断响应阻断当CPU未执行完一条指令。当有同级或高级中断服务。执行RETI指令或访问IE、IP的指令后,不能立即响应中断。中断响应时间(见教材p103)正常中断响应时间至少为3-8个机器周期,如果有同级或高级中断服务,将延长中断响应时间。中断返回中断返回指令:RETI=RET指令+通知CPU中断服务已结束。中断响应条件和过程中断系统的应用中断系统的应用 中断初始化中断初始化 设置堆栈指针设置堆栈指针SPSP 定义中断优先级定义中断优先级(IPIP寄存器寄存器)定义外中断触发方式定义外中断触发方式(TCONTCON寄存器寄存器)开放中断开放中断 (IEIE寄存器,包括寄存器,包括EAEA、各用到的中断、各用到的中断)安排好等待中断或中断发生前主程序应完成的操作内容。安排好等待中断或中断发生前主程序应完成的操作内容。中断服务主程序中断服务主程序 中断服务子程序内容要求:中断服务子程序内容要求:在中断服务入口地址设置一条跳转指令,转移到中断服务在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。程序的实际入口处。根据需要保护现场。根据需要保护现场。中断源请求中断服务要求的操作。中断源请求中断服务要求的操作。恢复现场。与保护现场相对应,注意先进后出、后进先出恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。操作原则。中断返回,最后一条指令必须是中断返回,最后一条指令必须是RETIRETI。六、MCS-51的定时器/计数器l80C51单片机内部有单片机内部有两个定时两个定时/计数器计数器T0和和T1,其核心是计数器,基本功能是其核心是计数器,基本功能是加加1。l对外部事件脉冲(对外部事件脉冲(下降沿下降沿)计数,是计数器;对)计数,是计数器;对片内机周脉冲计数片内机周脉冲计数,是定时器。,是定时器。l计数器由计数器由二个二个8位计数器位计数器组成。组成。l定时时间和计数值可以编程设定,其方法是在计定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后数器内设置一个初值,然后加加1计满后溢出计满后溢出。调整。调整计数器初值,可调整从初值到计满溢出的数值,计数器初值,可调整从初值到计满溢出的数值,即调整了定时时间和计数值。即调整了定时时间和计数值。l定时定时/计数器作为计数器时,外部事件脉冲必须从计数器作为计数器时,外部事件脉冲必须从规定的引脚规定的引脚Tx(P3.4、P3.5)输入。且外部脉冲的输入。且外部脉冲的最高频率不能超过时钟频率的最高频率不能超过时钟频率的1/24。K1K1K2K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(定时)(定时)外部输入脉冲外部输入脉冲(计数)(计数)溢出信号溢出信号计数脉冲计数脉冲计数初值计数初值TCONTMOD 加加法法计计数数器器是是计计满满溢溢出出时时才才申申请请中中断断,所所以以在在给给计计数数器器赋赋初初值值时时,不不能能直直接接输输入入所所需需的的计计数数值值,而而应应输输入入的的是是计计数数器器计计数数的的最最大大值值与与这这一一计计数数值值的的差差值值,设设最最大大值值为为 M,计计数值为数值为 N,初值为初值为 X,则则 X的计算方法如下的计算方法如下:计数状态计数状态:X=MN 定时状态定时状态:X=M定时时间定时时间/T 而而 T=12晶振频率晶振频率 TMOD方式寄存器(89H)T1T0n n1 1)功能选择位功能选择位C/TC/T:n=0,定时功能,计数内部机器周期脉冲;定时功能,计数内部机器周期脉冲;n=1,计数功能,计数引脚,计数功能,计数引脚T0(T1)输入的负脉冲输入的负脉冲功能描述功能描述方式方式M1 M0M1 M08 8位自动重装位自动重装2 210101616位位1 101011313位位0 00 00 0为两个为两个8 8位位3 31111n2)方式选择位M1、M0:4 4种工作方式种工作方式:(:(13/16/813/16/8位)位)n n3 3)门控方式选择位)门控方式选择位GATE GATE:n=0,非门控方式非门控方式(内部启动内部启动):TRx=1,启动定时器工作;启动定时器工作;TRx=0,停止定时器工作。停止定时器工作。n=1,门控方式,门控方式(外部启动外部启动):TRx=1且且引脚引脚INTx=1才启动。才启动。TMODTMOD字节地址字节地址89H,89H,不能位操作不能位操作,设置设置TMODTMOD须用字节操作指令。须用字节操作指令。2.TCON 定时器控制/状态寄存器 88Hn n1 1)启动控制位)启动控制位TR0TR0、TR1TR1n=0,停止定时器工作停止定时器工作n=1,启动定时器工作,启动定时器工作n n例:启动例:启动T0T0:SETBSETBTR0TR0n n溢出中断标志位溢出中断标志位TF0TF0、TF1TF1n定时器溢出使定时器溢出使TFx=1,引起引起中断请求,中断请求,CPU响应响应Tx中断中断后,自动清后,自动清0 TFx。IT0/IT1=0(1),决定INT0/INT1低电平(负跳变)有效,当INT0/INT1中断请求有效,IE0/IE0置1。主机在S5P2采样标志位。响应中断后硬件自动复位IE0/IE16.1.3 定时器工作方式方式0n n1313位。位。THxTHx 8 8位和位和TLxTLx低低5 5位组成位组成1313位加位加1 1计数器。计数器。TLxTLx低低5 5位位计数满时不向计数满时不向TLxTLx第第6 6位进位,而是向位进位,而是向THxTHx进位,进位,1313位计满位计满溢出,溢出,TFxTFx置置“1”1”。n计数外部脉冲个数:计数外部脉冲个数:18192(213)n定时时间定时时间(T=1 s):1 s 8.19msTCONIE6.1.3 定时器工作方式方式1n n1616位。位。THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器计数器n计数外部脉冲个数:计数外部脉冲个数:165536(216)n定时时间定时时间(T=1 s):1 s 65536T=65.54msTCONIE6.1.3 定时器工作方式 方式2n n自动恢复初值自动恢复初值8 8位定时位定时/计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器位初值暂存器,设置初值时同时送设置初值时同时送TLxTLx 和和THxTHx 。n用于需要重复定时和计数的场合。一般用于串行通信波特率用于需要重复定时和计数的场合。一般用于串行通信波特率的产生。的产生。n最大计数值:最大计数值:256(28)n最大定时时间最大定时时间(T=1 s):256 sTCONIE去串行口去串行口 方式方式3 3仅适用于仅适用于T0T0,T1T1无方式无方式3 3。T0T0方式方式3 3 在方式在方式3 3情况下情况下,T0T0被拆成二个独立的被拆成二个独立的8 8位计数器位计数器TH0TH0、TL0TL0。TL0TL0可以为定时可以为定时/计数器;计数器;TH0TH0只能作为只能作为8 8位定时器。位定时器。TL0TL0使用使用T0T0原有的控制寄存器资源原有的控制寄存器资源:TF0,TR0,GATE,C/T,INT0,:TF0,TR0,GATE,C/T,INT0,组成一个组成一个8 8位的定时位的定时/计数器;计数器;TH0TH0借用借用T1T1的中断溢出标志的中断溢出标志TF1,TF1,运行控制开关运行控制开关TR1,TR1,只能对只能对片内机周脉冲计数片内机周脉冲计数,组成另一个组成另一个8 8位定时器位定时器(不能用作计数器不能用作计数器)。T0T0方式方式3 3情况下的情况下的T1T1 T1 T1由于其由于其TF1TF1、TR1TR1被被T0T0的的TH0TH0占用,计数器溢出时,只能将占用,计数器溢出时,只能将输出信号送至串行口,即输出信号送至串行口,即用作串行口波特率发生器用作串行口波特率发生器。6.1.3 定时器工作方式工作方式工作方式36.1.3 定时器工作方式工作方式工作方式36.1.4.定时/计数器编程初始化编程格式:MOV TMOD,#方式字方式字 ;选择方式;选择方式MOV THx,#XH;装入装入Tx时间常数时间常数MOV TLx,#XL(SETB EA);开;开Tx中断中断(SETB ETx)SETB TRx;启动启动Tx定时器定时器n n1.1.按实际需要选择定时按实际需要选择定时/计数功能计数功能n n2.2.按时间或计数长度选择方式按时间或计数长度选择方式n n3.3.计算时间常数计算时间常数6.1.4.定时/计数器编程 溢出处理编程格式:n n查询方式:先查询定时器溢出标志,再进行溢查询方式:先查询定时器溢出标志,再进行溢出处理。出处理。;定时器初始化;定时器初始化WAIT:JBC TFx,PT;检测溢出标志检测溢出标志 SJMP WAITPT:MOVTHx,#XH;重装时间常数重装时间常数 MOVTLx,#XL ;溢出处理溢出处理SJMP WAIT6.1.4.定时/计数器编程n n2 2)中断方式:初始化后执行其他任务,中断)中断方式:初始化后执行其他任务,中断服务程序处理溢出。服务程序处理溢出。ORG 0000H LJMPMAIN ORG 000BH(001BH);Tx中断入口中断入口 LJMPPTSMAIN:;初始化后执行其他程序初始化后执行其他程序 PTS:;溢出中断服务程序溢出中断服务程序MOV THx,#XH;重装时间常数重装时间常数MOV TLx,#XLRETI七、MCS-51的串行通信口1.串行通讯的基本方式异步通信及帧格式同步通信2.串行数据传送方向(串行通信的制式)单工、半双工、全双工3.串行通信波特率串行通信波特率6-2-2 MCS-51串行接口4.51单片机的串行接口单片机的串行接口SBUF(发)发)SBUF(收)收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄存器移位寄存器RxD(P3.0)TxD(P3.1)去申请中断去申请中断引脚引脚引脚引脚CPU内内部部6-2-2 MCS-51串行接口串行口控制/状态寄存器SCON(98H)功能描述功能描述(波特率波特率)方式方式M1 M0M1 M09 9位位(1/32(1/32或或1/64fosc)1/64fosc)2 21 01 08 8位位(可变可变)1 10 10 1移位寄存器方式移位寄存器方式(1/12(1/12 foscfosc)0 00 00 09 9位位(可变可变)3 31 11 1方式选择位方式选择位SM0SM0、SM1SM1:SM2:SM2:多机控制位,用多机控制位,用于多机通讯。于多机通讯。RENREN:允许接收控制允许接收控制位,位,REN=1REN=1,允许接允许接收;收;REN=0REN=0,禁止接禁止接收。收。TB8TB8:发送的第发送的第9 9位数位数据位,可用作校验位据位,可用作校验位和地址和地址/数据标识位数据标识位RB8RB8:接收的第接收的第9 9位位数据位或停止位数据位或停止位TITI:发送中断标志,发送中断标志,发送一帧结束,发送一帧结束,TI=1TI=1,必须软件清零必须软件清零RIRI:接收中断标志,接收中断标志,接收一帧结束,接收一帧结束,RI=1RI=1,必须软件清零必须软件清零接收接收/发送数据发送数据,无论是否采用中断方式工作无论是否采用中断方式工作,每接每接收收/发送一个数据都必须用指令对发送一个数据都必须用指令对 RI/TIRI/TI 清清0 0,以以备下一次收备下一次收/发。发。6-2-2 MCS-51串行接口节电控制寄存器节电控制寄存器PCONPCONPCONPCONPCONPCOND7D7D7D7D6D6D6D6D5D5D5D5D4D4D4D4D3D3D3D3D2D2D2D2D1D1D1D1D0D0D0D0位名称位名称位名称位名称SMODSMODSMODSMODGF1GF1GF1GF1GF0GF0GF0GF0PDPDPDPDIDLIDLIDLIDLSMODSMOD=1=1,串行口波特率加倍。串行口波特率加倍。PCONPCON寄存器不能进行位寻址。寄存器不能进行位寻址。SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,是中,是波特率波特率加倍位加倍位 =1=1 时,波特率加倍时,波特率加倍 =0=0 时,波特率不加倍。时,波特率不加倍。(在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关)工作方式工作方式工作方式工作方式帧帧帧帧 格格格格 式式式式波波波波 特特特特 率率率率方式方式方式方式0 0 0 08 8 8 8位位位位全全全全是是是是数数数数据据据据位位位位,没没没没有有有有起起起起始始始始位位位位、停停停停止止止止位位位位固固固固定定定定,即即即即每每每每个个个个机机机机器器器器周周周周期期期期传传传传送送送送一位数据一位数据一位数据一位数据方式方式方式方式1 1 1 110101010位位位位,其其其其中中中中1 1 1 1位位位位起起起起始始始始位位位位,8,8,8,8位位位位数数数数据据据据位位位位,1,1,1,1位停止位位停止位位停止位位停止位不不不不固固固固定定定定,取取取取决决决决于于于于T1T1T1T1溢溢溢溢出出出出率率率率和和和和SMODSMODSMODSMOD方式方式方式方式2 2 2 211111111位位位位,其其其其中中中中1 1 1 1位位位位起起起起始始始始位位位位,9,9,9,9位位位位数数数数据据据据位位位位,1,1,1,1位停止位位停止位位停止位位停止位固定固定固定固定,即即即即2 2 2 2SMODSMODSMODSMODfosc/64fosc/64fosc/64fosc/64方式方式方式方式3 3 3 3同方式同方式同方式同方式2 2 2 2同方式同方式同方式同方式1 1 1 1八、MCS-51的汇编语言程序设计基础伪指令本章习题及作业九、MCS-51系统的功能扩展外部存储器扩展外部存储器扩展并行并行I/O口扩展口扩展D/A和和A/D扩展扩展