收藏 分销(赏)

《单片机原理及应用》项目二--MCS–51单片机入门——流水灯模拟系统设计.pptx

上传人:a199****6536 文档编号:8913354 上传时间:2025-03-07 格式:PPTX 页数:82 大小:8.42MB 下载积分:16 金币
下载 相关 举报
《单片机原理及应用》项目二--MCS–51单片机入门——流水灯模拟系统设计.pptx_第1页
第1页 / 共82页
《单片机原理及应用》项目二--MCS–51单片机入门——流水灯模拟系统设计.pptx_第2页
第2页 / 共82页


点击查看更多>>
资源描述
,#,单片机原理及,应用技术,MCS,51,单片机入门,流水灯模拟系统设计,任务一,MCS-51,系列单片机的基本结构,任务二,MCS-51,系列单片机的存储器配置,任务三,MCS-51 I/O,端口的使用,任务四 时钟电路与时序,Project 2,任务五,MCS-51,系列单片机的工作方式,任务六 典型应用,流水灯模拟系统设计,任务,1,MCS-51,系列单片机的,基本结构,MCS-51,的外部引脚,one,8051,采用,40,引脚,DIP,封装形式(双列直插式封装),,引脚如图所示。受封装形式的限制,有不少引脚具有两种功能。从功能上看,可以分以下三部分。,1,电源与时钟引脚,Vcc,(,40,脚):,电源端,接,+5V,直流电源。,Vss,(,20,脚):,接地端。,XTAL1,(,19,脚),/XTAL2,(,18,脚):,内部振荡器的输入端,接外部晶振;如果采用外部时钟,,XTAL2,引脚连外部时钟,,XTAL1,引脚要悬空。,2,控制引脚,ALE/PROG,(,Address Latch Enable/Programming,,,30,脚):,地址锁存允许信号。当访问片外存储器时,,ALE,作为锁存低,8,位的控制信号。当不访问外存储器时,,ALE,引脚周期性地以,1/6,振荡器频率向外输出正脉冲,可用于对外输出时钟或定时。对片内,ROM,编程时(如,8751,),此引脚作为编程脉冲输入端,PROG,。,ALE,负载驱动能力为,8,个,LSTTL,器件。,提示,LSTTL,器件(,Low-power Schottky Transistor-Transistor Logic,):低功耗晶体管逻辑电路。,PSEN,(,Program Store Enable,,,29,脚):,外部程序存储允许输出端,片外程序存储器读选通信号,低电平有效。,CPU,访问外部程序存储器期间,,PSEN,端在每个机器周期中两次有效。负载驱动能力为,8,个,LSTTL,器件。,EA/V,PP,(,Enable Address/Voltage Pulse of Programming,,,31,脚):,外部程序存储器地址允许输入端。当,EA,为高电平时,,CPU,执行片内存储器指令,当程序计数器,PC,(,Program Counter,)的值超过,0FFFH,时,将自动转向执行片外程序存储器指令。当,EA,为低电平时,,CPU,只执行片外存储器指令。对于片内,RAM,编程时,,V,PP,作为编程电压的输入端。,RST/V,PD,(,9,脚):,复位信号输入端。晶振工作时,在此引脚上保持两个机器周期的高电平将使单片机复位。第二功能为备用电源的输入端,当主电源,Vcc,掉电,,V,PD,将为片内,RAM,供电,以确保,RAM,中的信息不丢失。,3,I/O,引脚,I/O,引脚的功能特性将在任务三中进行讲述。,TXD RXD,时钟源,P0 P1 P2 P3,中断控制,(Interrupt Control),CPU,(8051Core),时钟电路,(OSC),控制总线,(Bus Control),程序存储器,(ROM),并行接口,串行接口,数据存储器,(RAM),定时,/,计数器,INT0 INT1,内部中断,WR RD PSEN ALE,MCS-51,的内部结构,two,1,基本结构与硬件组成,051,的主要硬件资源包括以下几个部分,内部功能模块构成如图所示,(,1,),8,位中央处理单元,CPU,(,2,),4K,字节的程序存储器,ROM,(,3,),128,字节的数据存储器,RAM,(,4,),21,个特殊功能寄存器,SFR,(,5,),4,个,8,位并行,I/O,口,P0,P3,(,6,),2,个,16,位可编程定时,/,计数器,T0,、,T1,(,7,),5,个中断源,具体包括,2,个外部中断源,INT0,和,INT1,,,3,个内部中断源,(,8,),1,个全双工的异步串行接口,(,9,),内部时钟产生电路,2,中央处理器,CPU,中央处理器,CPU,是单片机的核心组成部分,从功能上可以分为控制器和运算器两个部分。控制器产生各种控制信号以协调各部件之间的数据传送、运算等操作;运算器主要执行算术运算、逻辑运算和位操作等。,(,1,)控制器,控制器主要包括,16,位程序计数器,PC,(,Program Counter,)、数据指针,DPTR,(,Data Pointer,)、堆栈指针,SP,(,Stack Pointer,)、指令寄存器,IR,(,Instruction Register,)、指令译码器、控制逻辑电路等。,程序计数器,PC,PC,是一个,16,位的专用寄存器,可寻址范围是,0000H,FFFFH,,共,64K,,,它的作用是存放,CPU,下一条要执行的指令代码所在存储单元的,16,位地址,。,程序的每条指令都存放在,ROM,的某一存储单元中,当单片机开始执行程序时,,PC,中装入程序的第一条指令所在存储单元的地址。在顺序执行过程中,,CPU,每取出一条指令放到地址总线,,PC,的内容会自动加,1,、,2,或,3,(取决于指令的长度),即(,PC,)(,PC,),+X,,指向,CPU,下一条要执行指令的地址。当程序发生分支或转移时,如遇到转移指令、子程序调用或中断服务程序入口地址时,,PC,会改变顺序执行状态,根据指令进行跳转。,单片机复位后,,PC,自动清,0,,即,PC=0000H,,,CPU,从,ROM,单元取第一条指令执行。,数据指针,DPTR,DPTR,是,一个,16,位的专用地址指针寄存器,,由两个,8,位寄存器,DPH,(高,8,位)和,DPL,(低,8,位)组成。当,8051,外接存储器或,I/O,口时,用,DPTR,作为地址指针,存放外部存储器或外设端口的地址。,堆栈指针,SP,SP,指针长,8,位,用于,指示堆栈栈顶地址,。堆栈用于在调用子程序或进入中断程序前保存一些重要数据及程序返回地址。在,CPU,响应中断或调用子程序时,会自动将断点处,16,位返回地址压入堆栈;在中断程序或子程序结束时,返回地址由堆栈弹出。堆栈操作按照“先进后出”的原则存取信息,如图所示。,(,a,)堆栈结构,(,b,)压入操作,(,c,)弹出操作,单片机复位后,,SP,的初始值为,07H,,进入栈区的的数据将从,08H,开始,可用区间为,08H,7FH,。,08H,1FH,为,1,3,区工作寄存器组,,20H,2FH,为位寻址区。,提示,用户可以对根据程序需要,在可用区间内对,SP,指针初始值进行设定。,指令寄存器,IR,IR,字长,8,位,用于暂存待执行的指令,等待译码。,指令译码器,指令译码器对指令寄存器中的指令进行译码,将指令转变为正确的电信号。,控制逻辑电路,控制逻辑电路根据译码器输出的电信号,产生执行指令所需的各种控制信号。,(,2,)运算器,运算器主要包括,算术逻辑单元,ALU,(,Arithmetical Logic Unit,),、,累加器,A,(,Accumulator,),、,通用寄存器,B,(,General Purpose Register,),、,程序状态字,PSW,(,Program Status Word,)暂存器,、,十进制调整电路,、,布尔处理器,等。,算术逻辑单元,ALU,ALU,是一个运算器,主要对,8,位二进制数进行算术与逻辑运算,包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作。另外还具有置位、移位、测试转移等功能。,累加器,A,累加器,A,又记作,ACC,,是一个,8,位寄存器。在算术与逻辑运算中,用来存放一个操作数或运算结果。另外,在与外部存储器或,I/O,端口进行数据传送也要经过,A,完成。,通用寄存器,B,通用寄存器,B,是一个,8,位寄存器,执行乘法或除法指令时,,B,与,A,配合使用。执行指令前,B,用于存放乘数或除数,在完成后存放乘积的高,8,位或除法的余数。在其他指令中,,B,可作为一般寄存器使用。,程序状态字,PSW,程序状态字,PSW,是一个,8,位寄存器,用于存放指令执行后的状态信息,以供程序查询和判断。,PSW,的格式及每位具体含义如表所示:,位序,PSW.7,PSW.6,PSW.5,PSW.4,PSW.3,PSW.2,PSW.1,PSW.0,位标志,Cy,AC,F0,RS1,RS0,OV,P,注:其中,PSW.0,为最低位,,PSW.7,为最高位,其中,PSW.1,是保留位,未使用。,A,进位标志位,Cy,(,Carry flag,),B,辅助进位位,AC,(,Auxiliary Carry,),ALU,中进行加减运算过程中,最高位,A,7,(累加器最高位)产生进位或借位时,,Cy=1,,否则,Cy=0,。另外,该位在位操作中也作为累加器,C,使用。,ALU,中进行加减运算过程中,低四位(,A,3,)向高四位(,A,4,)产生进位或借位时,,AC=1,,否则,AC=0,。此外,,AC,标志也常用于,BCD0000000000000,码运算时的十进制自动调整。,C,供用户定义的标志位,,F0,状态通常不在执行指令过程中自动形成,用户根据程序执行的需要通过传送指令确定。,用户标志位,F0,(,Flag zero,),D,用于设定当前工作寄存器的组号。,8051,有,8,个,8,位寄存器(,R0,R7,),分为,4,组。,RS1,、,RS0,与,R0,R7,的对应关系如表所示。,寄存器组选择位,RS0,和,RS1,RS1,RS0,R0,R7,组号,R0,R7,的物理地址,0,0,0,00,07H,0,1,1,08,0FH,1,0,2,10,17H,1,1,3,18,1FH,用户可以通过对,PSW,整字节操作或用位操作指令改变,RS1,与,RS0,的状态信息,来切换当前工作寄存器,。通过切换工作寄存器组,可以提高中断处理时保护现场和恢复现场的速度。,如执行指令:,MOV PSW,,,#00010000B,则,RS1,、,RS0,两位的值为,10B,,工作寄存器切换到,2,组,当前工作寄存器的物理地址为,10,17H,。,单片机复位后,,PSW=00000000B,,,CPU,选择第,0,组为当前工作寄存器。,D,用于指示运算过程中是否发生了溢出。对于,8,位表示的补码来说,如果运算结果小于,128,或者大于,+127,,则产生溢出,此时,OV=1,否则,OV=0,。通过查看,OV,的状态,可以判断累加器,A,中的数值是否正确。,溢出标志位,OV,(,Over flow,),E,用于跟踪检验累加器,A,中“,1,”的个数的奇偶性。,A,中“,1,”的个数为奇数时,P=1,,否则,P=0,。在单片机串行通信过程中,通过,P,可以判断传输过程中是否发生跳码现象。,奇偶标志位,P,(,Parity,),任务,2,MCS-51,系列,单片机的,存储器配置,片内程序存储器,FFFFH,1000H,0FFFH,0003H,0000H,特殊指令,中断程序,片外程序存储器,程序存储器,one,程序存储器由,片内程序存储器,和,片外程序存储器,两部分构成,用来存放程序及常数。片内和片外程序存储器采用,16,位统一编址方式,地址范围是:,0000H,FFFFH,。端口,P0,和,P2,分别提供地址的低,8,位和高,8,位。,程序存储器结构,如右图所示。,CPU,访问片内外存储器还是片外存储器是由,EA,引脚的电平,决定的,。当该引脚为高电平(即,EA=1,)时,表示单片机复位,,CPU,从片内存储器的,0000H,单元开始读取指令。若指令地址超过,0FFFH,(,4K,),,CPU,将自动转向片外程序存储器读取指令。当该引脚为低电平(即,EA=0,)时,,CPU,只能从片外存储器读取指令。有些单片机片内没有程序存储器(如,8031,),则使用时,EA,引脚必须接地。,在,8051,片内存储器中,有,6,个特殊的地址单元。,0000H,0002H,单元是执行所有程序的入口地址。,通常情况下,该单元存放的是一条无条件转移指令。因为当单片机复位后,,CPU,总是从此单元开始执行程序。存放在此单元中的跳转指令将引导,CPU,进入真正的程序入口地址继续读取指令。,0003H,、,000BH,、,0013H,、,001BH,、,0023H,分别是,5,个中断源的中断服务子程序的入口地址,。因此,用户程序的存放位置选在,002EH,之后才会比较安全。,80H,FFH,00H,片外,RAM,64K,片内,RAM,128,字节,SFR,7FH,0000H,FFFFH,片内数据存储器,片外数据存储器,数据存储器,由,片内数据存储器,和,片外数据存储器,两部分构成,用来存放运算的中间结果。片内数据存储器与片外数据存储器采用,分开编址方式,。片内数据存储器采用,8,位地址,共,256,个字节;片外数据存储器采用,16,位地址,共,64K,。数据存储器结构如图所示。,数据存储器,two,7FH,30H,2FH,20H,1FH,18H,17H,10H,0FH,08H,07H,00H,FFH,80H,通用,RAM,区,位寻址区,工作寄存器,3,组,工作寄存器,2,组,工作寄存器,1,组,工作寄存器,0,组,SFR,1,片内数据存储器,片内数据存储器共,256,字节,,内部数据存储器的结构图,如图所示。,00H,1FH,单元分别对应,4,个工作寄存器组。当前工作寄存器的设定由,PSW,中的,RS1,和,RS0,决定(参见,1.3.2,节中“程序状态字,PSW,”)。,20H,2FH,这,16,个字节(,128,位)作为,8051,的位寻址区。,CPU,通过指令对其中的某一位进行操作,在逻辑运算、实时处理、开关控制等方面有重要作用。若无位寻址需求时,仍可作为普通,RAM,使用。,下表为片内数据存储器位地址分配表。,字节,地址,位地址,D7,D6,D5,D4,D3,D2,D1,D0,2FH,7FH,7EH,7DH,7CH,7BH,7AH,79H,78H,2EH,77H,76H,75H,74H,73H,72H,71H,70H,2DH,6FH,6EH,6DH,6CH,6BH,6AH,69H,68H,2CH,67H,66H,65H,64H,63H,62H,61H,60H,2BH,5FH,5EH,5DH,5CH,5BH,5AH,59H,58H,2AH,57H,56H,55H,54H,53H,52H,51H,50H,29H,4FH,4EH,4DH,4CH,4BH,4AH,49H,48H,28H,47H,46H,45H,44H,43H,42H,41H,40H,字节,地址,位地址,D7,D6,D5,D4,D3,D2,D1,D0,27H,3FH,3EH,3DH,3CH,3BH,3AH,39H,38H,26H,37H,36H,35H,34H,33H,32H,31H,30H,25H,2FH,2EH,2DH,2CH,2BH,2AH,29H,28H,24H,27H,26H,25H,24H,23H,22H,21H,20H,23H,1FH,1EH,1DH,1CH,1BH,1AH,19H,18H,22H,17H,16H,15H,14H,13H,12H,11H,10H,21H,0FH,0EH,0DH,0CH,0BH,0AH,09H,08H,20H,07H,06H,05H,04H,03H,02H,01H,00H,续上表:,注:位的英文为,bit,,通常用,b,表示;字节的英文为,Byte,,通常用,B,表示。,8,位为一个字节,,2,10,个字节即,1024,字节为,1K,。,2,特殊功能寄存器,SFR,(,Special Function Registers,),MCS-51,系列单片机有,21,个特殊功能寄存器,。它们都有自己的固定地址,离散地分布在片内地址,80,FFH,的,RAM,空间中。,CPU,可以直接使用寄存器的名字或者通过直接寻址方式对其进行访问。其中有,11,个寄存器可以通过位寻址的方式进行访问。具体情况见下表。,字节,地址,位地址,/,位功能标记,符号,名称,位寻址,D7,D6,D5,D4,D3,D2,D1,D0,F0H,F7H,B.7,F6H,B.6,F5H,B.5,F4H,B.4,F3H,B.3,F2H,B.2,F1H,B.1,F0H,B.0,B,B,寄存器,是,E0H,E7H,ACC.7,E6H,ACC.6,E5H,ACC.5,E4H,ACC.4,E3H,ACC.3,E2H,ACC.2,E1H,ACC.1,E0H,ACC.0,A,累加器,是,续上表:,字节,地址,位地址,/,位功能标记,符号,名称,位寻址,D7,D6,D5,D4,D3,D2,D1,D0,D0H,D7H,Cy,D6H,AC,D5H,F0,D4H,RS1,D3H,RS0,D2H,OV,D1H,D0H,P,PSW,程序,状态字,是,B8H,BCH,PS,BBH,PT1,BAH,PX1,B9H,PT0,B8H,PX0,IP,中断,优先级,是,B0H,B7H,P3.7,B6H,P3.6,B5H,P3.5,B4H,P3.4,B3H,P3.3,B2H,P3.2,B1H,P3.1,B0H,P3.0,P3,P3,端口,是,A8H,AFH,EA,ACH,ES,ABH,ET1,AAH,EX1,A9H,ET0,A8H,EX0,IE,中断,允许,是,续上表:,字节,地址,位地址,/,位功能标记,符号,名称,位寻址,D7,D6,D5,D4,D3,D2,D1,D0,A0H,A7H,P2.7,A6H,P2.6,A5H,P2.5,A4H,P2.4,A3H,P2.3,A2H,P2.2,A1H,P2.1,A0H,P2.0,P2,P2,端口,是,99H,SBUF,串行口数据,否,98H,9FH,SM0,9EH,SM1,9DH,SM2,9CH,REN,9BH,TB8,9AH,RB8,99H,TI,98H,RI,SCON,串行口控制,是,90H,97H,P1.7,96H,P1.6,95H,P1.5,94H,P1.4,93H,P1.3,92H,P1.2,91H,P1.1,90H,P1.0,P1,P1,端口,是,续上表:,字节,地址,位地址,/,位功能标记,符号,名称,位寻址,D7,D6,D5,D4,D3,D2,D1,D0,8DH,TH1,T1,高字节,否,8CH,TH0,T0,高字节,否,8BH,TL1,T1,低字节,否,8AH,TL0,T0,低字节,否,续上表:,字节,地址,位地址,/,位功能标记,符号,名称,位寻址,D7,D6,D5,D4,D3,D2,D1,D0,89H,GATE,C/T,M1,M0,GATE,C/T,M1,M0,TMOD,定时器模式,否,88H,8FH,TF1,8EH,TR1,8DH,TF0,8CH,TR0,8BH,IE1,8AH,IT1,89H,IE0,88H,IT0,TCON,定时器控制,是,87H,SMOD,GF1,GF0,PD,IDL,PCON,电源控制,否,83H,DPH,DPTR,高,8,位,否,续上表:,字节,地址,位地址,/,位功能标记,符号,名称,位寻址,D7,D6,D5,D4,D3,D2,D1,D0,82H,DPL,DPTR,低,8,位,否,81H,SP,堆栈,指针,否,80H,87H,P0.7,86H,P0.6,85H,P0.5,84H,P0.4,83H,P0.3,82H,P0.2,81H,P0.1,80H,P0.0,P0,P0,端口,是,注:可以进行位寻址的,SFR,在表中采用“寄存器名,.,位”表示。例如:,B.0,和,P1.2,等。,这些,SFR,主要分布在以下几个功能模块中。,CPU,:,包括,6,个,SFR,,分别是,A,、,B,、,PSW,、,SP,、,DPL,和,DPH,。其中,2,个,8,位寄存器,DPL,和,DPH,组成,16,位的,DPTR,。,中断控制,:,包括,2,个,SFR,,分别是,IE,和,IP,。,定时器,:,包括,6,个,SFR,,分别是,TCON,、,TMON,、,TL0,、,TL1,、,TH0,和,TH1,。其中,8,位寄存器,TL0,和,TH0,组成,T0,,,TL1,和,TH1,组成,T1,。,并行接口,:,包括,4,个,SFR,,分别是,P0,、,P1,、,P2,和,P3,。,串行接口,:,包括,3,个,SFR,,分别是,PCON,、,SCON,和,SBUF,。,CPU,和并行接口模块的,SFR,在前面已经进行相关讲解,中断控制、定时器和串行接口模块的,SFR,将在后面相关的内容中进行讲解。,从,SFR,地址分布表中我们可以看出,,21,个,SFR,并没有完全使用,80,FFH,这,128,个地址空间,。,对于没有定义的地址单元,用户不能作为寄存器使用,。,3,片外数据存储器,片外数据存储器的地址范围是,0000H,FFFFH,,共,64K,。在实际应用中,用户可以根据具体需求进行适量的扩展,如,2K,、,4K,、,8K,等。,任务,3,MCS-51 I/O,端口的,使用,寄存器和锁存器,ONE,I/O,端口,是,单片机实现信息交换和对外控制的重要通道,。,I/O,端口分为,串行口,和,并行口,,串行口一次只能传送一个二进制位信息,并行口一次可以传送一个字节信息。,在,MCS-51,单片机中,有一个可编程、全双工的串行端口,它通过端口,P3.0,和,P3.1,的第二功能进行信息输入和输出,这部分知识将在项目六中进行详细讲述。,MCS-51,单片机的,4,组并行端口,即,P0,、,P1,、,P2,和,P3,,下面将学习它们的物理结构和功能。,1,P0,端口,P0.0,P0.7,(,39,32,引脚),P0,端口的位结构,如图所示,由一个输出锁存器(,D,型触发器),两个三态门缓冲器(,U,1,和,U,2,),与门、非门和多路开关,MUX,组成的输出控制电路,一对场效应晶体管(,T,1,和,T,2,)组成。,Vcc,P0.X,控制,地址,/,数据,锁存器,读锁存器,内部总线,写锁存器,读引脚,U,1,U,2,D,CP,Q,Q,MUX,T,1,T,2,提示,多路开关,MUX,:当多路开关和锁存器接通时,,P0,口被作为普通的,I/O,口使用;当多路开关和非门接通时,,P0,口被作为地址,/,数据总线使用。,场效应晶体管,T,1,和,T,2,:,T,1,和,T,2,组成推拉式结构,一次只能导通一个。当,T,1,导通时,,T,2,截止;当,T,2,导通时,,T,1,截止。,B,A,P0,端口具有两种功能,第一,,P0,端口可以作为通用,I/O,接口使用,,P0.0,P0.7,传送,CPU,的输入,/,输出数据;,第二,在访问外部存储器时,,P0,端口可以分时复用地址线和双向数据总线(,AD0,AD7,)。,(,1,),P0,口作为通用,I/O,口,P0,口作为,I/O,端口使用时,多路开关的控制信号为,0,(低电平),,T,1,管截止,多路开关与锁存器的,Q,端相接。,数据输出,由数据总线向引脚输出的工作过程:,写锁存器信号,CP,有效,内部总线的信号锁存器的输入端,D,锁存器的反向输出端,Q,多路开关,MUXT2,管(数据反相),P0.X,。,提示,当多路开关的控制信号为低电平,0,时,与门输出为低电平,,T,1,管是截止的,所以作为输出口时,,P0,是漏极开路输出,当驱动上接电流负载时,需要外接上拉电阻。,数据输入,数据输入有两种方式:,读引脚和读锁存器,读引脚,读芯片引脚上的数据时,读引脚三态门缓冲器,U,2,打开(即,三态缓冲器的控制端有效,),,P0.X,上的数据经三态门,U,2,进入内部数据总线(,注:此时数据并不经过锁存器,)。,注意,执行读引脚操作前,需要先用输出命令(如,MOV P0,,,#0FFH,或,ORL P0,,,#0FFH,)向锁存器写,1,,使,Q,为,0,,,T,2,截止。执行这个操作的原因是,若,T,2,导通,则从,P0.X,引入的信号将被,T,2,短路。,读锁存器,读锁存器中的数据时,读锁存器三态门缓冲器,U,1,打开(即,三态门缓冲器的控制端有效,),锁存器输出端,Q,的数据经三态门,U,1,进入内部数据总线。,注意,当从内部总线输出高电平后,锁存器,Q,1,,,Q,0,,场效应管,T2,截止。若外接引脚信号为低电平,此时从引脚读入的数据与从锁存器读入的数据不同。,为避免原端口的状态被读错,,MCS-51,系列单片机指令系统中提供了“读,修改,写”方式指令,如,ANL,、,ORL,、,XRL,等(这些指令都需要得到原端口输出的状态,修改后再输出),采用读锁存器方式而不是读引脚方式。,(,2,),P0,口作为地址,/,数据总线,P0,口作为地址,/,数据复用口使用时,多路开关控制信号为,1,(高电平),与门输出信号由“地址,/,数据”线信号决定,多路开关与反相器的输出端相连,,地址信号非门(数据反相),T,2,管(数据反相),P0.X,。,P0,口输出低,8,位地址信息后,将变为数据总线,此时控制信号为,0,,,T,1,管截止,多路开关转向锁存器反相输出端,Q,;,CPU,自动将,0FFH,写入,P0,口锁存器(即向,D,锁存器写入一个高电平),使,V2,管截止,在读引脚信号控制下,,P0.X,上数据通过读引脚三态门送到内部总线。,提示,我们已经知道,P0,作为地址,/,数据总线使用时,在读指令码或输入数据前,,CPU,会自动向,P0,口锁存器写入,0FFH,,破坏,P0,口原来的状态,不能再作为通用的,I/O,端口。因此。在系统设计时,注意程序中不能再含有以,P0,口作为操作数的指令。,2,P1,端口,P1.0,P1.7,(,1,8,引脚),P1,端口的结构简单,位结构如图所示,与,P0,端口的主要差别在于,,P1,端口没有非门和多路开关,MUX,,并用内部上拉电阻,R,代替了,P0,端口的场效应管,T,1,。,P1,端口仅作为数据输入,/,输出端口使用,,输出数据时,内部总线输出的数据经锁存器和场效应晶体管后,锁存在端口线上;输入有读引脚和读锁存器之分,工作过程参照,P0,端口,这里不再赘述。,Vcc,读锁存器,内部总线,写锁存器,读引脚,锁存器,P1.X,内部上拉电阻,U,1,U,2,D,CP,Q,Q,3,P2,端口,P2.0,P2.7,(,21,28,引脚),P2,端口位结构如图所示,既有上拉电阻,又有多路开关,MUX,,所以,P2,端口在功能上兼有,P0,端口和,P1,端口的特点。,控制,地址,Vcc,P2.X,内部上拉电阻,读锁存器,内部总线,写锁存器,读引脚,锁存器,U,1,U,2,D,CP,Q,Q,MUX,P2,口作为,I/O,端口使用时,多路开关的控制信号为,0,(低电平),多路开关与锁存器的,Q,端相接,数据输出与输入工作过程与,P0,端口作为通用,I/O,口时相似,这里不再赘述。,P2,口作为通用,I/O,口,P2,口作为地址总线时,多路开关的控制信号为,1,(高电平),多路开关与地址线接通,地址信号非门(数据反相)场效应管(数据反相),P2.X,。,P2,口作为地址总线,P2,端口具有两种功能:,第一,,P2,端口可以作为通用,I/O,接口使用,,P2.0,P2.7,传送,CPU,的输入,/,输出数据,;,第二,在访问外部存储器时,,P2,端口输出地址总线的高八位(,AD8,AD15,),与,P0,口的低地址一起构成,16,位地址总线,。,4,P3,端口,P3.0,P3.7,(,10,17,引脚),P3,端口位结构如图所示,,P3,口除了具有一般,I/O,口的功能外,还具有第二功能。,第二功能输出,第二功能输入,Vcc,P3.X,内部上拉电阻,读锁存器,内部总线,写锁存器,读引脚,锁存器,U,1,U,2,U,3,D,CP,Q,Q,(,1,),P3,口作为通用,I/O,口,P3,口作为通用,I/O,口时,第二功能输出信号为,1,(高电平),此时,内部总线信号经锁存器和场效应管输入,/,输出,工作过程与,P1,端口作用相同。,(,2,),P3,口第二功能,P3,口第二功能如表所示,:,口线,第二功能名称,功能描述,P3.0,RXD,串行口输入端,P3.1,TXD,串行口输出端,P3.2,INT0,外部中断,0,输入端,P3.3,INT1,外部中断,1,输入端,P3.4,T0,定时,/,计数器,0,外部输入端,P3.5,T1,定时,/,计数器,1,外部输入端,P3.6,WR,片外数据存储器写选通,P3.7,RD,片外数据存储器读选通,提示,根据实际的应用场合中的需要,一般把几条端口线设置为第二功能,而另外几条端口线处于第一功能运行状态。因此,在这种情况下,不宜对,P3,端口作字节操作,需采用位操作的形式。,数据输出,当,P3,口的某一位作为第二功能输出时,锁存器和该位的“,第二功能输出,”端自动置,1,,场效应管截止,该位引脚上的信号经缓冲器,U,3,送入“第二功能输入”端。,数据输入,当,P3,口的某一位作为第二功能输入时,,CPU,将该位锁存器置,1,,此时,与非门只受“第二功能输出”端控制,输出信号经与非门和场效应管两次反相后,输出到该位的引脚上。,I/O,端口的负载能力,two,P0,端口能驱动,8,个,LSTTL,负载,,P1,、,P2,和,P3,端口各能驱动,4,个,LSTTL,负载,。如需增加负载能力,可在端口总线上增加总线驱动器。,任务,4,时钟,电路,与,时序,单片机的工作过程是执行各种不同指令的过程,而指令的执行最终会转化为一系列的微控制信号来完成各种需求,。单片机系统的运行需要各种微控制信号的动作有一个严格的先后顺序,即单片机的时序。时钟电路产生的时钟信号是时序的时间基准,机器周期和指令周期是描述时序的单位。,时钟电路,one,为了保证内部各部件间的同步协调工作,单片机需要在唯一的时钟信号下进行工作。产生单片机时钟信号的方式有两种:,内部时钟电路,和,外接时钟电路,。,单片机内部有一个高增益反相放大器,在引脚,XTAL1,和,XTAL2,外接晶体振荡器(简称晶振),就构成了内部时钟电路,如图所示。,内部时钟电路,外接时钟电路是把外部已有的时钟信号引入单片机内,如图所示。,采用这种方式可以使单片机的时钟与外部信号保持同步,。,外部时钟电路,提示,外接时钟电路时,,8051,单片机通过,XTAL2,引脚引入已有时钟信号,,XTAL1,引脚悬空;而对于,CHMOS,型的,80C51,单片机需要通过,XTAL1,引脚引入已有时钟信号,,XTAL2,引脚悬空。,1,时钟周期,时钟周期又称为,振荡周期,,,定义为时钟脉冲的倒数,是单片机中最基本、最小的时间单位,。在一个时钟周期内,,CPU,仅完成一个最基本的动作。,提示,例如晶振为,12MHz,的单片机,它的时钟周期就是,1/12,s,。,机器周期与指令周期,two,时钟脉冲控制着单片机的工作节奏,对同一种机型的单片机,时钟频率越高,单片机的工作速度就越快,。但是,由于单片机硬件电路和器件的限制,时钟频率是有一定的限制。,8051,单片机的时钟范围是,1.2MHz,12MHz,。,提示,在,8051,单片机中把,1,个时钟周期定义为,1,个节拍(用,P,表示),,2,个节拍定义为,1,个状态周期(用,S,表示)。,2,机器周期,一条指令的执行过程可以分为若干个阶段,如取指令、读存储器、写存储器等。完成某一个操作的时间称为一个机器周期。通常情况下,一个机器周期由,12,个时钟周期组成。,3,指令周期,执行一条指令所需要的时间称为指令周期,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同,一般由,1,4,个机器周期组成。在,MCS-51,指令系统中,一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其他的机器周期;一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。,软件设计,two,每条指令的执行包括,取指令,和,执行指,令两个阶段。,取指令操作是单片机的最基本操作,。,CPU,要读取指令首先要知道指令的地址,指令的地址是存放在,PC,之中的。在时钟脉冲的控制下,,PC,中的指令地址通过地址总线送到地址译码器的输入端。,当锁存地址信号,ALE,有效时,地址译码器取走地址信号,经过译码找到该指令的存储单元。一段时间延迟后(,用于稳定物理信号,),,CPU,发出读指令信号有效,随后指令内容出现在数据总线上,并送达指令寄存器。在指令送达指令译码器译码的同时,,PC,内容加,1,,指向下一条指令的地址。,这里通过一些典型指令来学习单片机的取指令时序。一个机器周期中出现两次,ALE,信号,信号有效宽度为一个,S,状态,每出现一次该信号,单片机进行一次读指令操作,如图所示。,1,单字节单机器周期指令,第一个地址锁存信号有效时,读操作码,然后,PC,加,1,;第二个地址锁存信号有效时,读操作码后丢弃,然后,PC,不加,1,。,2,双字节单机器周期指令,第一个地址锁存信号有效时,读操作码,然后,PC,加,1,;第二个地址锁存信号有效时,读入第二个字节,然后,PC,加,1,。,提示,在第一个,ALE,信号有效时读的是操作码,第二个,ALE,信号有效时读的是操作数。,3,单字节双机器周期指令,两个机器周期内,ALE,信号四次有效,但只有一次读操作有效,,PC,加,1,;后三次读入的操作码均被丢弃且,PC,不加,1,。,4,访问外部存储器指令,访问外部存储器指令(,MOVX,),是单字节双周期指令中的一种特殊情况,这类指令需要先从,ROM,中读取指令,然后对外部数据存储器进行读或写操作。第一个机器周期内的第一次操作码有效,第二次读指令操作则为无效的。在第二个机器周期时,访问外部数据存储器,此时,ALE,信号对其操作无影响(即不会有读指令操作)。,任务,5,MCS-51,系列,单片机的,工作方式,复位方式,one,复位操作,是单片机的初始化,此时程序从,0000H,开始执行。另外,当单片机运行中出现错误或死机时,也需要进行复位操作。,1,复位条件,实现单片机复位需要在单片机的复位引脚,RST,(,9,脚)上出现,2,个机器周期以上的高电平。例如:若单片机的时钟频率为,12MHz,,则机器周期为,1 s,,那么复位信号需要保证持续,2 s,以上的时间。,2,复位电路,常见的复位电路有上电,自动复位,和,按键复位,两种。,(,1,)上电自动复位,上电自动复位电路如图所示,电源接通瞬间,,RC,电路充电,由于电容两端电压不能突变,所以,RST,端可以维持一段时间的高电平,时间大于两个机器周期将实现自动复位。,V,SS,RST,V,CC,V,CC,(,2,)按键复位,按键复位电路如图所示,在电容两端并联一个带有电阻和开关的支路。当开关断开时,与上电自动复位电路相同;当开关闭合时,电容通过并联的电阻迅速放电,然后,,RC,电路充电,能够保证,RST,端能够维持一段时间的高电平。,V,SS,RST,V,CC,V,CC,此外,在一些要求比较高的系统中,可以通过专用的芯片复位,如,X25045,、,MAX813L,、,Max810,等。,3,复位后寄存器的状态,单片机复位后将一些专用寄存器的值重新设置,如表所示。堆栈寄存器,SP,的值为,07H,,,P0,P3,设置为高电平,,IP,、,IE,、,SBUF,、,PCON,部分位出现不定状态,其他寄存器全部清零。,SFR,名,初始态值,PC,0000H,ACC,00H,B,00H,PSW,00H,SP,07H,DPTR,0000H,P0,P3,FFH,IP,XXX00000B,IE,0XX00000B,SFR,名,初始态值,TMOD,00H,TCON,00H,TL0,00H,TH0,00H,TL1,00H,TH1,00H,SCON,00H,SBUF,XXXXXXXXB,PCON,0XXX00000B,注:,X,表示不定状态,是一个随机值。,程序执行方式,是,单片机的基本工作方式,。它的工作过程是执行程序的过程,而程序是由一条条指令组成的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服