您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 第4章并行接口P0~P3和单片机的中断系统hzh
第4章并行接口P0~P3和单片机的中断系统单片机原理、接口及应用第4章并行接口P0~P3和单片机的中断系统★单片机的并行接口P0~P3★PO~P3端口的功能和内部结构★PO~P3端口的编程★用并行口设计LED数码显示和键盘电路★并行接口小结★MCS-51单片机的中断系统★中断的基本概念★中断的系统结构★中断的响应过程★中断的的应用编程★小结内容提要第4章并行接口P0~P3和单片机的中断系统4.1单片机的并行接口接口P0~P3MCS-51单片机有P0、P1、P2、P3四个8位双向I/O口,每个端口可以按字节输入或输出,也可以按位进行输入或输出,四个口共32根口线,用作位控制十分方便。P0口为三态双向口,能带8个TTL电路(P0口是推挽输出,输出能力大些,需外加上拉电阻);P1、P2、P3口为准双向口(弱上拉),负载能力为4个TTL电路。4.1.1PO~P3端口的功能和内部结构4.1.1.1PO~P3接口功能大多数口线都有双重功能,具体介绍如下:第4章并行接口P0~P3和单片机的中断系统PO口—1.作为输入/输出口。2.作为地址/数据总线,接外围芯片时PO口分时输出低8位地址与数据信号。P1口—1.作为输入/输出口。2.在增强型(52系列)和ISP型(在系统编程型)中有如下功能:P1.0T2引脚,定时/计数器2外部计数脉冲输入P1.1T2EX引脚,定时/计数器2触发和方向控制P1.5MOSI引脚,在系统编程数据输入P1.6MISO引脚,在系统编程数据输出P1.7SCK引脚,在系统编程时钟输入第4章并行接口P0~P3和单片机的中断系统P2口—1.作为输入/输出口。2.作为高8位地址总线。P3口—P3口为双功能1.作第一功能使用时,其功能为输入/输出口。2.作第二功能使用时,每一位功能定义如下表所示:第4章并行接口P0~P3和单片机的中断系统RD(外部数据存储器读选通信号输入)P3.7WR(外部数据存储器写选通信号输入)P3.6T1(定时器1外部计数脉冲输入)P3.5T0(定时器0外部计数脉冲输入)P3.4P3.3P3.2TXD(串行输出线)P3.1RXD(串行输入线)P3.0第二功能端口引脚INT0(外部中断0输入线)INT1(外部中断1输入线)第4章并行接口P0~P3和单片机的中断系统4.1.1.2端口的内部结构四个端口的一位结构见图5.1,同一个端口的各位具有相同的结构。由图可见,四个端口的结构有相同之处:依据每个端口的不同功能,内部结构亦有不同之处,以下重点介绍不同之处。都有两个输入缓冲器,分别受内部读锁存器和读引脚控制信号的控制。都有锁存器(即专用寄存器PO~P3)都是场效应管输出驱动。第4章并行接口P0~P3和单片机的中断系统多路开关1)功能:用于控制选通I/O方式还是地址/数据输出方式2)方式控制:由内部控制信号产生输出锁存器两个输入缓冲器(BUF1和BUF2)推拉式I/O驱动器1.PO口BUF2BUF15、P0R2为读引脚信号,执行“MOVA,P0”时该信号有效6、读引脚(端口)时,输出锁存器应为“1”。即当作输入端口使用时,应先对该口写入“1”说明:1、当控制信号为0时,P0口做双向I/O口,为漏极开路(高阻状态,适用于输入/输出,需外接上拉电阻,使输出呈现三态之高阻态)2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展)3、P0W为端口输出写信号,用于锁存输出状态4、P0R1为读锁存器信号,执行“ANLP0,#0FH”时该信号有效QQDCVcc控制AD0P0R1P0R2D0P0W图1、P0口内部结构读锁存器读引脚锁存器内部总线写锁存器地址/数据P00多路开关10第4章并行接口P0~P3和单片机的中断系统2.P1口P1口的结构见下图VccP10QQDCP1R1P1R2D0P1WR*图2、P1口内部结构P1口内部结构如图2所示输出部分有内部上拉电阻R*约为20K。其他部分与P0端口使用相类似。写数据读端口在执行输入操作时,如果锁存器原来寄存的数据Q=0,则由于/Q=1将使V1导通,引脚被始终钳拉在低电平,不可能输入高电平。因此,用作输入前,必须先用输出指令置Q=1,使V1截止。单片机复位后,P1口的状态都是高电平,可以直接用作输入注意:端口操作时,采用“读-修改-写”三部完成。通过输入三态缓冲器读锁存器的输出状态Q,而非从引脚读入。第4章并行接口P0~P3和单片机的中断系统地址控制Vcc内部上拉电阻T1MUX12DCLQP2.x锁存器P2.x引脚读锁存器内部总线写锁存器读引脚3.P2口P2口的位结构比P1多了一个转换控制部分,当P2口作通用I/O口时,多路开关MUX倒向左;第4章并行接口P0~P3和单片机的中断系统当扩展片外存贮器时,MUX开关打向右,P2口作高八位地址线输出高八位地址信号。其MUX的的倒向是受CPU内部控制的。应当注意:当P2口的几位作地址线使用时,剩下的P2口线不能作I/O口线使用。第4章并行接口P0~P3和单片机的中断系统读锁存器内部总线写锁存器读引脚第二输出功能第二输入功能内部上拉电阻P3.x引脚TVcc1234DCLQP3.x锁存器(d)P3口位结构4.P3口P3口P3口为双功能I/O口,内部结构中增加了第二输入/输出功能。第4章并行接口P0~P3和单片机的中断系统当作为普通I/O口使用时,第二输出功能端保持“1”,打开与非门3,用法同P1口。当作第二功能输出时,锁存器输出为“1”打开与非门3,第二功能内容通过与非门3和T送至引脚。输入时,引脚的第二功能信号通过三态缓冲器4进入第二输入功能端。两种功能的引脚输入都应使T截止,此时第二输出功能端和锁存器输出端Q均为高电平。P3的各位如不设定为第二功能则自动处于第一功能,在更多情况下,根据需要,把几条口线设为第二功能,剩下的口线可作第一功能(I/O)使用,此时,宜采用位操作形式。第4章并行接口P0~P3和单片机的中断系统归纳四个并行口使用的注意事项如下:1.如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用。2.四个口在作输入口使用时,均应先对其写“1”,以避免误读。3.P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必。4.P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。5.P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。第4章并行接口P0~P3和单片机的中断系统4.1.2编程举例下面举例说明端口的输入、输出功能,其他功能的应用实例在后面章节说明。例4-1.设计一电路,监视某开关K,用发光二极管LED显示开关状态,如果开关合上,LED亮、开关打开,LED熄灭。分析:设计电路如图5.3开关接在P1.1口线,LED接P1.0口线,当开关断开时,P1.1为+5V,对应数字量为“1”,开关合上时P1.1电平为0V,对应数字量为“0”,这样就可以用JB指令对开关状态进行检测。第4章并行接口P0~P3和单片机的中断系统LED正偏时才能发亮,按电路接法,当P1.0输出“1”,LED正偏而发亮,当P1.0输出“0”,LED的两端电压为0而熄灭。LED+5VVcc--EARST10uF1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5VVcc--EARST10uF1KP1.089S51+5VP1.11K30P30PXTAL1XTAL2GND89C51K第4章并行接口P0~P3和单片机的中断系统编程如下:CLRP1.0AGA:SETBP1.1;先对P1口写入“1”JBP1.1,LIG;开关开,转LIGSETBP1.0SJMPAGALIG:CLRP1.0SJMPAGA开关K控制LED显示开关状态\开关K控制LED显示开关状态.DSN开关K控制LED显示开关状态\开关K控制LED显示开关状态_asm第4章并行接口P0~P3和单片机的中断系统#includereg52.hsbitkey=P1^1;sbitled=P1^0;/*定义位变量*/voidmain(){led=0;while(1){key=1;if(key==0)led=1;elseled=0;}}第4章并行接口P0~P3和单片机的中断系统+5VP1.0LED在上述电路图中二极管亮度不够,按下面两种电路接法,增加了驱动能力,二极管更亮些。接成灌电流形式:P1.0+5VLED1加驱动电路:第4章并行接口P0~P3和单片机的中断系统例.在图5-4中P1.4~P1.7接四个发光二极管LED,P1.0~P1.3接四个开关,编程将开关的状态反映到发光二极管上。89C51/89S51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V+5V1K×4330×4图5-4例5-2图EA第4章并行接口P0~P3和单片机的中断系统上述程序中每次读开关之前,输入位都先置“1”,保证了开关状态的正确读入。要求调试完成编程如下:ORG0000HMOVP1,#0FFH;高四位全灭,低四位送“1”ABC:MOVA,P1;读P1口引脚开关状态至ASWAPA;低四位开关状态转换到高四位ANLA,#0F0H;保留高四位MOVP1,A;从P1口输出ORLP1,#0FH;高四位不变,低四位送“1”,准备下一轮读开关SJMPABC;循环演示一个简单的例子:开关控制LED\开关控制LED.DSN开关控制LED\开关控制LED.asm第4章并行接口P0~P3和单片机的中断系统开关控制LED\开关控制LED.c上述程序中每次读开关之前,输入位都先置“1”,保证了开关状态的正确读入。用C语言编程如下:sfrP1=0x90;main(){P1=0xff;/*P1低四位置“1”,高四位灯全灭*/while(1){P1=P14;/*读入P1引脚状态,左移四位后再从P1口输出*/P1=P1|0x0f;/*P1高四位不变,低四位置“1”,准备下一轮读开关*/}}第4章并行接口P0~P3和单片机的中断系统例5-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.0P1.71+5V89C51/89S51图5-4例5-3的电路图74LS042KΩ第4章并行接口P0~P3和单片机的中断系统P1.0波形图1ms1ms100个T(变反200次即200ms)。。。。500µS500µS100个T(变反200次即100ms)。。。。TT第4章并行接口P0~P3和单片机的中断系统ORG0000HCLRA;A作1KHz,500HzBEG:JNBP1.7,$;检测P1.7MOVR2,#200;开关闭合报警,R2控制音响时间DV:CPLP1.0CJNEA,#0FFH,N1;A≠FFH,延时500µSACALLD500;A=FFH;延时1msP1.0N1:ACALLD500DJNZR2,DVCPLASJMPBEGD500:MOVR7,#250;延时500µSDJNZR7,RETEND相关动作演示:开关控制报警器源程序\开关控制报警器.DSN第4章并行接口P0~P3和单片机的中断系统#includereg51.h#defineucharunsignedcharsbitp17=P1^7;sbitp10=P1^0;voidmain(){uchari,j;while(1){p17=1;while(p17==1);for(i=0;i100;i++){p10=~p10;for(j=0;j50;j++);}for(i=0;i150;i++){p10=~p10;for(j=0;j
本文标题:第4章并行接口P0~P3和单片机的中断系统hzh
链接地址:https://www.777doc.com/doc-2109712 .html