您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 惠州学院单片机魏暁慧老师课件第五章输入输出接口P0_-P3
MCS-51单片机内部结构内部结构框图如下:单片机结构框图频率基准源计数器内部总线中断中断控制并行I/O口串行输入/输出8051振荡器及定时电路4K/8K字节程序存储器ROM128/256字节数据存储器RAM2个16位定时器/计数器8051CPU64K字节总线扩展控制可编程I/O口4×8位可编程串行口MCS-51单片机外部引脚封装形式,见右图:01p.71p.SSV1XTAL2XTALRD73p/.WR63p/.1T53p/.0T43p/.1INT33p/.0INT23p/.TXD13p/.RXD03p/.RST02p.72p.CCV00p.70p.PSENPROGALE/EAVpp/182018191716151413121110921284039322930318051MCS-51单片机内存配置MCS-51单片机的内存结构H00000080HRAM内部00FFH能寄存器特殊功0FFFFH)(外部K64RAM数据存储器H0000007FH0FFFFH0FFFH1EAROM外部0EAROM内部H0000程序存储器1000H•对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。第五章输入输出接口P0~P3§5.1MCS-51单片机的并行端口结构与操作51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0~P3。下图为P0口的某位P0.n(n=0~7)结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。从图中可以看出,P0口既可以作为I/O用,也可以作为地址/数据线用。DQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚一、P0口的结构1、P0口作为普通I/O口①输出时②输入时----分读引脚或读锁存器读引脚:由传送指令(MOV)实现;下面一个缓冲器用于读端口引脚数据,当执行一条由端口输入的指令时,读脉冲把该三态缓冲器打开,这样端口引脚上的数据经过缓冲器读入到内部总线。②输入时----分读引脚或读锁存器读锁存器:有些指令如:ANLP0,A称为“读-改-写”指令,需要读锁存器。上面一个缓冲器用于读端口锁存器数据。**原因:如果此时该端口的负载恰是一个晶体管基极,且原端口输出值为1,那么导通了的PN结会把端口引脚高电平拉低;若此时直接读端口引脚信号,将会把原输出的“1”电平误读为“0”电平。现采用读输出锁存器代替读引脚,图中,上面的三态缓冲器就为读锁存器Q端信号而设,读输出锁存器可避免上述可能发生的错误。**•P0口必须接上拉电阻;•在读信号之前数据之前,先要向相应的锁存器做写1操作的I/O口称为准双向口;•三态输入缓冲器的作用:•(ANLP0,A)P0iQ19013VCCGNDOUTPUTDQCLKQMUXP0.n读锁存器内部总线写锁存器读引脚地址/数据控制VCCT1T2P0口引脚准双向口:从图中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。这就是所谓的准双向口。CPU发出控制电平“1”,打开“与”门,又使多路开关MUX把CPU的地址/数据总线与T2栅极反相接通,输出地址或数据。由图上可以看出,上下两个FET处于反相,构成了推拉式的输出电路,其负载能力大大增强。2、P0作为地址/数据总线P0引脚输出地址/输入数据输入信号是从引脚通过输入缓冲器进入内部总线。此时,CPU自动使MUX向下,并向P0口写“1”,“读引脚”控制信号有效,下面的缓冲器打开,外部数据读入内部总线。2、P0作为地址/数据总线----真正的双向口二、P2的内部结构1.P2口作为普通I/O口DQCLKQMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚CPU发出控制电平“0”,使多路开关MUX倒向锁存器输出Q端,构成一个准双向口。其功能与P1相同。2.P2口作为地址总线在系统扩展片外程序存储器扩展数据存储器且容量超过256B(用MOVX@DPTR指令)时,CPU发出控制电平“1”,使多路开关MUX倒内部地址线。此时,P2输出高8位地址。DQCLKQMUXP2.n读锁存器内部总线写锁存器读引脚地址控制VCCRTP2口引脚§5.2P1口、P3口的内部结构①P1口的一位的结构它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成----准双向口。DQCLKQP1.n读锁存器内部总线写锁存器读引脚VCCRTP1口引脚②P3的内部结构DQCLKQP3.n读锁存器内部总线写锁存器读引脚VCCRTP3口引脚第二输入功能第二输出功能一、作为通用I/O口与P1口类似----准双向口(W=1)W②P3的内部结构DQCLKQP3.n读锁存器内部总线写锁存器读引脚VCCRTP3口引脚第二输入功能第二输出功能二、P3第二功能(Q=1)此时引脚部分输入(Q=1、W=1),部分输出(Q=1、W输出)。WP3第二功能各引脚功能定义: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外部读控制•综上所述:当P0作为I/O口使用时,特别是作为输出时,输出级属于开漏电路,必须外接上拉电阻才会有高电平输出;如果作为输入,必须先向相应的锁存器写“1”,才不会影响输入电平。•当CPU内部控制信号为“1”时,P0口作为地址/数据总线使用,这时,P0口就无法再作为I/O口使用了。•P1、P2和P3口为准双向口,在内部差别不大,但使用功能有所不同。•P1口是用户专用8位准双向I/O口,具有通用输入/输出功能,每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时,该位的锁存器必须写入“1”,然后才能进入输入操作。•P2口是8位准双向I/O口。外接I/O设备时,可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。对于8031而言,P2口一般只作为地址总线使用,而不作为I/O线直接与外部设备相连。小结:1、P0口:地址低8位与数据线分时使用端口,2、P1口:按位可编址的输入输出端口,3、P2口:地址高8位输出口4、P3口:双功能口。若不用第二功能,也可作通用I/O口。5、按三总线划分:地址线:P0低八位地址,P2高八地址;数据线:P0输入输出8位数据;控制线:P3口的8位加上/PSEN、ALE共同完成控制总线。归纳四个并行口使用的注意事项如下:1、如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用。2、四个口在作输入口使用时,均应先对其写“1”,以避免误读。3、P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必。4、P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。5、P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。5.2编程举例例5-1.设计一电路,监视某开关K,用发光二极管LED显示开关状态,如果开关合上,LED亮、开关打开,LED熄灭。分析:设计电路如图5.2如示。开关接在P1.1口线,LED接P1.0口线,当开关断开时,P1.1为+5V,对应数字量为“1”,开关合上时P1.1电平为0V,对应数字量为“0”,这样就可以用JB指令对开关状态进行检测。LED正偏时才能发亮,按电路接法,当P1.0输出“1”,LED正偏而发亮,当P1.0输出“0”,LED的两端电压为0而熄灭。LED+5VVcc--EARST10uF1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5VVcc--EARST10uF1KP1.089S51+5VP1.11K30P30PXTAL1XTAL2GND89C51K编程如下:CLRP1.0;使发光二极管灭AGA:SETBP1.1;先对P1口写入“1”JBP1.1,LIG;开关开,转LIGSETBP1.0;开关合上,二极管亮SJMPAGALIG:CLRP1.0;开关开,二极管灭SJMPAGA+5VP1.0LED在上述电路图中二极管亮度不够,按下面两种电路接法,增加了驱动能力,二极管更亮些。接成灌电流形式:P1.0+5VLED1加驱动电路:用汇编语言编程ORG0000HMOVP1,#0FFH;高四位的LED全灭,低四位输入线送“1”,ABC:MOVA,P1;读P1口引脚开关状态,并送入ASWAPA;低四位开关状态换到高四位ANLA,#0F0H;保留高四位MOVP1,A;从P1口输出ORLP1,#0FH;高四位不变,低四位送“1”,准备下一轮读开关SJMPABC;循环执行,方便反复调整开关状态观察执行结果例3.用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。分析:500Hz信号周期为2ms,信号电平为每1ms变反1次。1KHz的信号周期为1ms,信号电平每500µS变反1次,编一个延时500µS子程序,延时1ms只需调用2次。用R2控制音响时间长短,A作音响频率的交换控制的标志。A=FF时产生1KHz信号,A=0时产生500Hz信号。P1.0波形图1ms1ms100个T(变反200次即200ms)。。。。500µS500µS100个T(变反200次即100ms)。。。。TTORG0000HCLRA;A作1KHz,500Hz转换控制BEG:JBP1.7,$;检测P1.7的开关状态MOVR2,#200;开关闭合报警,R2控制音响时间DV:CPLP1.0CJNEA,#0FFH,N1;A≠FFH,延时500µSACALLD500;A=FFH;延时1msP1.0变反N1:ACALLD500DJNZR2,DVCPLASJMPBEGD500:MOVR7,#250;延时500µS子程序DJNZR7,$RETEND5.3用并行口设计LED数码显示器和键盘电路键盘和显示器是单片机应用系统中常用的输入输出装置。LED数码显示器是常用的显示器之一,下面介绍用单片机并行口设计LED数码显示电路和键盘电路的方法。5.3.1用并行口设计LED显示电路1.LED显示器及其原理LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见LED的管脚排列见图5.4(a)。其中COM为公共点,根据内部发光二极管的接线形式,可分成共阴极型图(5.4(b))和共阳极型图(5.4(c))。abcdefgdp(a)(b)(c)cdedp12345678910abfgcomcomabcefabcdefgdpcomcom图5.4001111113fhxgfedcbaabcdefgdpcdedp12345678910abfgcomcomabcefcomgLED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh.abcdefgdp12345678910abfgcomcomabcefgxgfedcba0000011006h显示”1”,字形码为06h.显示”2”,字形码为5bh.(b)dpcomabcdefgdpcde12345678910com
本文标题:惠州学院单片机魏暁慧老师课件第五章输入输出接口P0_-P3
链接地址:https://www.777doc.com/doc-2397409 .html