并行io口及其应用

上传人:子 文档编号:57219822 上传时间:2018-10-20 格式:PPT 页数:29 大小:595.50KB
返回 下载 相关 举报
并行io口及其应用_第1页
第1页 / 共29页
并行io口及其应用_第2页
第2页 / 共29页
并行io口及其应用_第3页
第3页 / 共29页
并行io口及其应用_第4页
第4页 / 共29页
并行io口及其应用_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《并行io口及其应用》由会员分享,可在线阅读,更多相关《并行io口及其应用(29页珍藏版)》请在金锄头文库上搜索。

1、4 单片机并行I/O口结构及使用,2,P0端口的结构与功能,P0口的一位结构图,P0口除可以作为通用的8位I/O口外,当进行外部存储器的扩展时,还可以将其作为分时复用的低8位地址/数据总线。,3,P0端口的结构与功能,P0口用作通用I/O口 作为输出口 作为输入口 “读-修改-写”操作,用作通用I/O口时,CPU令控制信号为低电平,其作用有二个:一是使模拟开关MUX接通下端,即锁存器输出端,二是令与门输出低电平,VF0截止,致使输出级为开漏输出电路。,4,P0端口的结构与功能,P0口用作地址/数据总线 P0口分时输出低8位地址、输入数据 P0口分时输出低8位地址、输出数据,5,P1端口的结构与

2、功能,P1口的一位结构图,对于通常的51内核单片机而言,P1口是惟一一个单功能口,只能作为通用的I/O端口。,6,P2端口的结构与功能,P2口的某一位结构,7,P2端口的结构与功能,P2端口的功能,P2口可以作为般的通用I/O口,其工作方式与P0口类似。当作为通用的I/O口使用时,读引脚状态下需要向端口写1,也属于准双向口。其输出驱动电路与P0口不同,内部已经设有上拉电阻,因此不需要外接电阻。,当需要在单片机外部进行扩展时,P2口也可以作为高8位地址总线,与P0口的低8垃地址总线一起形成16位I/O地址。此时,CPU发出控制信号使模拟开关MUX接到地址线,地址信息通过非门和场效应管输出到引脚。

3、,8,P3端口的结构与功能,P3口的某一位结构,P3口是单片机中使用最灵活、功能最多的一个并行端口,不仅具有通用的输入输出功能,而且还具有多种用途的第二功能。,9,P3端口的结构与功能,P3端口的功能使用P3口时多数是将8根I/O线单独使用,既可将其设置为第二功能,也可设置为第一功能。当工作于通用的I/O功能时,单片机会自动将第二功能输出线置1。与其他的I/O口一样,在向端口写数据时,锁存器的状态与输出引脚的状态一致;当读端口的状态时,则需先向端口写1,再将数据读入内部数据总线,因此是准双向口。,10,P3端口的结构与功能,P3端口的功能单片机工作于第二功能时,自动将锁存器的Q端置1.,表4.

4、2 AT89C52P3口引脚的第二功能,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口功能的自动识别

5、。无论是P0、P2口的总线复用功能,还是P3口的第二功能复用,单片机会自动选择,不需要用户通过指令选择。 两种读端口的方式。包括端口锁存器的“读-改-写”操作和读引脚的操作。在单片机中,有些指令是读端口锁存器的,如一些逻辑运算指令、置位/复位指令、条件转移指令以及将I/O口作为目的地址的操作指令;有些指令是读引脚的,如以I/O口作为源操作数的指令。 I/O口的驱动特性。P0口每一个I/O口可驱动8个LSTTL输入,而P1、P2、P3口每一个I/O口可驱动4个LSTTL输入。在使用时应注意口的驱动能力。,13,IO口应用输出,输出:通过改变P0-P3四个寄存器对应位的数值,使输出端三极管(MOS

6、管)打开或关闭,改变输出管脚的状态(高电平或低电平),进而控制外围电路的工作。,14,LED简介,LED简介 LED(发光二极管)是最基本的输出显示装置之一,通过LED可以直观地看出控制系统状态,如按键的闭合与断开、电机的启动与停止等,另外LED还可以用于制作彩灯。LED具有普通二极管的单向导电性。只要加在发光二极管两端的电压超过导通电压(一般为1.7V1.9V),它就会导通,而当流过它的电流时间超过一定数值时(一般为2ms3ms),它就会发光。,4.3 I/O口应用实例与仿真,15,I/O口的实例仿真,例4.1 闪烁灯的proteus仿真及C语言程序设计 设计要求:如图4.23所示,在P1.

7、0端口上接一个发光二极管L1,使L1周期性地一亮一灭,一亮一灭的时间间隔为0.2秒。 闪烁灯的仿真电路原理图 (见教材图4.23) 元器件选取 AT89C52:单片机;RES:电阻;CRYSTAL:晶振; CAP、CAP-ELEC:电容、电解电容LED-GREEN:绿色发光二极管 程序设计内容 延时程序的设计方法 输出控制 限流电阻的选取,4.3 I/O口应用实例与仿真,16,I/O口的实例仿真,程序流程图 C语言源程序 调试与仿真,4.3 I/O口应用实例与仿真,17,IO口应用,输入:通过外围电路(如开关)改变P0-P3端口的电平,读取P0-P3四个寄存器对应位的数值,可以得知外围电路的状

8、态(开关的打开或闭合)。 上拉电阻的选择要参照 管脚的最大输入电流,一般 在1K以上。,18,I/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.3 I/O口应用实例与仿真,19,

9、I/O口的实例仿真,程序设计内容 开关状态的检测过程 输出控制 程序流程图 C语言源程序 调试与仿真,4.3 I/O口应用实例与仿真,20,灌电流与拉电流,当逻辑门输出端是低电平时,灌入逻辑门的电流称为灌电流 ,灌电流越大,输出端的低电平就越高。 当逻辑门输出端是高电平时,逻辑门输出端的电流是从逻辑门中流出,这个电流称为拉电流。拉电流越大,输出端的高电平就越低。 灌电流和拉电流反应了管脚的带负载能力,灌电流比拉电流大,因此灌电流带负载能力强。 限流电阻的选择要根据灌电流、拉电流的大小进行选择。,21,大功率负载驱动,当驱动大电流负载,或驱动高电压负载时,需要采用以下的电路形式。当驱动强电电路时

10、,弱电电源与强电电源需要隔离,此时需要使用光电隔离器件。,22,23,高电压光电隔离输入,24,25,I/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:扬声器

11、;SW-SPDT:单刀双掷开关;9012:PNP三极管,4.3 I/O口应用实例与仿真,26,I/O口的实例仿真,程序设计内容 :报警信号产生的方法:500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次。不同频率的信号经过9012三极管放大后,送给扬声器LS1,就会发出不同频率的报警声。 程序流程图 汇编语言与C语言源程序 调试与仿真,4.3 I/O口应用实例与仿真,27,I/O口的实例仿真,例4.4广告灯(查表方式)的proteus仿真及程序设计 设计要求 :如图4.29所示,利用查表的方法,使端口P1做单一灯的变化:左移2次,右移

12、2次,闪烁2次(延时的时间0.2秒)。 广告灯的仿真电路原理图 (见教材图4.29 ) 元器件选取 AT89C52:单片机;RES:电阻;CRYSTAL:晶振; CAP、CAP-ELEC:电容、电解电容;LED-GREEN:绿色发光二极管;,4.3 I/O口应用实例与仿真,28,I/O口的实例仿真,程序设计内容 查表法是单片机程序设计中常用的一种方法,它多用于一些较复杂的控制场合,如判段键盘按键的键值、利用I/O口控制外部设备作一些预先设定好的复杂动作(本例是其简单的示意)、输出正余弦、三角、梯形或更复杂的波形,甚至可以利用查表法实现一些更复杂的算法。 汇编语言步骤如下:把控制码建成一个表TABLE;利用MOV DPTR,TABLE指令来使数据指针寄存器指到表的开头;利用MOVC A,ADPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。 C语言步骤如下:定义一维数组TABLE(复杂情况也可以用二维数组,另外,为节省单片机的RAM资源,数组一般放在代码段中);把控制码按顺序放入数组TABLE中;定义变量i,改变i的值,就可以取出数组中对应的控制码。,4.3 I/O口应用实例与仿真,29,I/O口的实例仿真,程序流程图 汇编语言和C语言源程序 调试与仿真,4.3 I/O口应用实例与仿真,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号