您好,欢迎访问三七文档
4单片机并行I/O口结构及使用2P0端口的结构与功能P0口的一位结构图P0口除可以作为通用的8位I/O口外,当进行外部存储器的扩展时,还可以将其作为分时复用的低8位地址/数据总线。3P0端口的结构与功能P0口用作通用I/O口作为输出口作为输入口“读-修改-写”操作用作通用I/O口时,CPU令控制信号为低电平,其作用有二个:一是使模拟开关MUX接通下端,即锁存器输出端,二是令与门输出低电平,VF0截止,致使输出级为开漏输出电路。4P0端口的结构与功能P0口用作地址/数据总线P0口分时输出低8位地址、输入数据P0口分时输出低8位地址、输出数据5P1端口的结构与功能P1口的一位结构图对于通常的51内核单片机而言,P1口是惟一一个单功能口,只能作为通用的I/O端口。6P2端口的结构与功能P2口的某一位结构7P2端口的结构与功能P2端口的功能P2口可以作为—般的通用I/O口,其工作方式与P0口类似。当作为通用的I/O口使用时,读引脚状态下需要向端口写1,也属于准双向口。其输出驱动电路与P0口不同,内部已经设有上拉电阻,因此不需要外接电阻。当需要在单片机外部进行扩展时,P2口也可以作为高8位地址总线,与P0口的低8垃地址总线一起形成16位I/O地址。此时,CPU发出控制信号使模拟开关MUX接到地址线,地址信息通过非门和场效应管输出到引脚。8P3端口的结构与功能P3口的某一位结构P3口是单片机中使用最灵活、功能最多的一个并行端口,不仅具有通用的输入输出功能,而且还具有多种用途的第二功能。9P3端口的结构与功能P3端口的功能使用P3口时多数是将8根I/O线单独使用,既可将其设置为第二功能,也可设置为第一功能。当工作于通用的I/O功能时,单片机会自动将第二功能输出线置1。与其他的I/O口一样,在向端口写数据时,锁存器的状态与输出引脚的状态一致;当读端口的状态时,则需先向端口写1,再将数据读入内部数据总线,因此是准双向口。10P3端口的结构与功能P3端口的功能单片机工作于第二功能时,自动将锁存器的Q端置1.表4.2AT89C52P3口引脚的第二功能口线第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0请求信号输入P3.3INT1外部中断1请求信号输入P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通11注意事项单片机的并行I/O接口有以下应用特性P0,P1,P2,P3作为通用I/O口使用时,输入操作是读引脚状态;输出操作是对口的锁存器的写入操作,锁存器的状态立即反映到引脚上。P1,P2,P3口作为输出口时,由于电路内部带上拉电阻,因此无需外接上拉电阻,而PO口由于内部无上拉电阻,因此使用它时,必须外接上拉电阻。P0,P1,P2,P3作为通用的输入口时,必须使电路中的锁存器写入高电平“1”,使场效应管(FET)VF1截止,以避免锁存器输出为“0”时场效应管VF1导通使引脚状态始终被钳位在“0”状态。12注意事项I/O口功能的自动识别。无论是P0、P2口的总线复用功能,还是P3口的第二功能复用,单片机会自动选择,不需要用户通过指令选择。两种读端口的方式。包括端口锁存器的“读-改-写”操作和读引脚的操作。在单片机中,有些指令是读端口锁存器的,如一些逻辑运算指令、置位/复位指令、条件转移指令以及将I/O口作为目的地址的操作指令;有些指令是读引脚的,如以I/O口作为源操作数的指令。I/O口的驱动特性。P0口每一个I/O口可驱动8个LSTTL输入,而P1、P2、P3口每一个I/O口可驱动4个LSTTL输入。在使用时应注意口的驱动能力。13IO口应用——输出输出:通过改变P0-P3四个寄存器对应位的数值,使输出端三极管(MOS管)打开或关闭,改变输出管脚的状态(高电平或低电平),进而控制外围电路的工作。14LED简介LED简介LED(发光二极管)是最基本的输出显示装置之一,通过LED可以直观地看出控制系统状态,如按键的闭合与断开、电机的启动与停止等,另外LED还可以用于制作彩灯。LED具有普通二极管的单向导电性。只要加在发光二极管两端的电压超过导通电压(一般为1.7V~1.9V),它就会导通,而当流过它的电流时间超过一定数值时(一般为2ms~3ms),它就会发光。4.3I/O口应用实例与仿真15I/O口的实例仿真例4.1闪烁灯的proteus仿真及C语言程序设计设计要求:如图4.23所示,在P1.0端口上接一个发光二极管L1,使L1周期性地一亮一灭,一亮一灭的时间间隔为0.2秒。闪烁灯的仿真电路原理图(见教材图4.23)元器件选取•①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容⑤LED-GREEN:绿色发光二极管程序设计内容•延时程序的设计方法•输出控制•限流电阻的选取4.3I/O口应用实例与仿真16I/O口的实例仿真程序流程图C语言源程序调试与仿真开始P1.0输出“1”L1熄灭延时0.2秒P1.0输出“0”L1亮延时0.2秒4.3I/O口应用实例与仿真17IO口应用输入:通过外围电路(如开关)改变P0-P3端口的电平,读取P0-P3四个寄存器对应位的数值,可以得知外围电路的状态(开关的打开或闭合)。上拉电阻的选择要参照管脚的最大输入电流,一般在1K以上。18I/O口的实例仿真例4.2模拟开关灯的proteus仿真及C语言程序设计设计要求:如图4.25所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。模拟开关灯的仿真电路原理图(见教材图4.25)元器件选取•①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二极管;⑥SWITCH:开关4.3I/O口应用实例与仿真19I/O口的实例仿真程序设计内容•开关状态的检测过程•输出控制程序流程图C语言源程序调试与仿真开始K1开关闭合了吗?L1亮L1灭4.3I/O口应用实例与仿真20灌电流与拉电流当逻辑门输出端是低电平时,灌入逻辑门的电流称为灌电流,灌电流越大,输出端的低电平就越高。当逻辑门输出端是高电平时,逻辑门输出端的电流是从逻辑门中流出,这个电流称为拉电流。拉电流越大,输出端的高电平就越低。灌电流和拉电流反应了管脚的带负载能力,灌电流比拉电流大,因此灌电流带负载能力强。限流电阻的选择要根据灌电流、拉电流的大小进行选择。21大功率负载驱动当驱动大电流负载,或驱动高电压负载时,需要采用以下的电路形式。当驱动强电电路时,弱电电源与强电电源需要隔离,此时需要使用光电隔离器件。2223高电压光电隔离输入2425I/O口的实例仿真例4.3报警器的proteus仿真及C语言程序设计设计要求:如图4.27所示,用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上报警信号响,当开关断开报警信号停止。报警器的仿真电路原理图(见教材图4.27)元器件选取•①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤SPEAKER:扬声器;⑥SW-SPDT:单刀双掷开关;⑦9012:PNP三极管4.3I/O口应用实例与仿真26I/O口的实例仿真程序设计内容:报警信号产生的方法:500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次。不同频率的信号经过9012三极管放大后,送给扬声器LS1,就会发出不同频率的报警声。程序流程图汇编语言与C语言源程序调试与仿真4.3I/O口应用实例与仿真27I/O口的实例仿真例4.4广告灯(查表方式)的proteus仿真及程序设计设计要求:如图4.29所示,利用查表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。广告灯的仿真电路原理图(见教材图4.29)元器件选取•①AT89C52:单片机;②RES:电阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤LED-GREEN:绿色发光二极管;4.3I/O口应用实例与仿真28I/O口的实例仿真程序设计内容•查表法是单片机程序设计中常用的一种方法,它多用于一些较复杂的控制场合,如判段键盘按键的键值、利用I/O口控制外部设备作一些预先设定好的复杂动作(本例是其简单的示意)、输出正余弦、三角、梯形或更复杂的波形,甚至可以利用查表法实现一些更复杂的算法。•汇编语言步骤如下:①把控制码建成一个表TABLE;②利用MOVDPTR,#TABLE指令来使数据指针寄存器指到表的开头;③利用MOVCA,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。•C语言步骤如下:①定义一维数组TABLE[](复杂情况也可以用二维数组,另外,为节省单片机的RAM资源,数组一般放在代码段中);②把控制码按顺序放入数组TABLE[]中;③定义变量i,改变i的值,就可以取出数组中对应的控制码。4.3I/O口应用实例与仿真29I/O口的实例仿真程序流程图汇编语言和C语言源程序调试与仿真4.3I/O口应用实例与仿真
本文标题:并行IO口及其应用
链接地址:https://www.777doc.com/doc-3606918 .html