3-1微机的输入输出及应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

CPU与外部设备交换信息通常有以下几种方式:(1)程序控制传送方式,又分为无条件传送方式和查询传送方式。(2)中断传送方式。(3)直接存储器存取(DMA)方式。输入/输出和中断系统★PO~P3端口的功能和内部结构★PO~P3端口的编程★用并行口设计LED数码显示★用并行口设计键盘电路1P0~P3端口的结构和应用1输入、输出接口P0~P3MCS-51单片机有P0、P1、P2、P3四个8位双向I/O口,每个端口可以按字节输入或输出,也可以按位进行输入或输出,四个口共32根口线,用作位控制十分方便。P0口为三态双向口,能带8个TTL电路;P1、P2、P3口为准双向口,负载能力为4个TTL电路。P0口地址数据总线–输出地址/数据–输入数据通用的输入/输出口–输入口–输出口地址/数据控制读锁存器写锁存器DCLQQP0.x锁存器T0T1MUXP0.x引脚内部总线读引脚P0口位结构Vcc11001“读”01100P0口作地址/数据复用总线D0~D7A0~A7P0口作地址/数据复用总线从P0口输出数据或地址信息的过程:控制端高电平MUX接反相器输出端输出级T1连接与门开锁信号驱动T0驱动电路接通P0口输出数据/地址信息从P0口输入数据信息:引脚信号从输入三态缓冲器进入内部总线P0口:作通用I/O口使用地址/数据控制读锁存器写锁存器DCLQQP0.x锁存器T0T1MUXP0.x引脚内部总线读引脚P0口位结构Vcc外接上拉电阻0100读读-修改-写功能1ANLP0,A(P0)^(A)P0“读”Vcc控制端低电平与门输出低电平T0截止输出漏级开路外接上拉电阻MUX接锁存器Q端P0口作通用I/O口使用输出时:P0口作通用I/O口使用输入时:先将锁存器写“1”T0、T1截止读引脚信号P0~P3口线上的“读-修改-写”是通过上面一个三态门实现的。P0的驱动能力:驱动8个TTL门锁存器Q与T1连接(2)P1口:准双向口读锁存器写锁存器内部总线读引脚DCLQQP1.x锁存器TP1.x引脚Vcc内部上拉电阻010101输出输入“读引脚”P1口位结构作通用I/O口输出时:将“1”写入锁存器输出高电平将“0”写入锁存器Q=1,T导通输出低电平作通用I/O口输入时:口锁存器必须写“1”先将“1”写入锁存器,使T截止,口线上的数据取决于外部输入Q=0,T截止P1口的驱动能力:驱动4个TTL门内部总线为引脚为“高电平”“低电平”“1”“0”“读”准双向口(3)P2口:准双向口地址控制读锁存器写锁存器内部总线读引脚DCLQQP2.x锁存器TP2.x引脚P2口位结构VccMUX上拉电阻P2口作通用I/O口使用时:准双向口。MUX倒向左边,输出级与锁存器“Q”端接通,P2口I/O操作完全与P1口相同P2口作地址总线高8位使用时:在CPU的控制下,MUX倒向右边,接通内部地址总线,P2口的口线状态取决于片内输出的地址信息应当注意:当P2口的几位作地址线使用时,剩下的P2口线不能作I/O口线使用。P2口的驱动能力:驱动4个TTL门P3口位结构第二输入功能(3)P3口:双功能口读锁存器写锁存器内部总线读引脚DCLQQP3.x锁存器TP3.x引脚Vcc上拉电阻第二输出功能110P3作第一功能口使用时:输出控制线为高电平,与非门的输出取决于锁存器“Q”端的状态,P3口的I/O操作和P1口相同。P3作第二功能口使用时:相应的口线锁存器必须为“1”,与非门的输出取决于第二功能输出线。P3的驱动能力:驱动4个TTL门第二功能输入时,信号取自第一个缓冲器的输出端;第二个缓冲器的输出,仍是第一功能的读引脚信号缓冲器。P3口的第二功能状态P3.0RXD串入(接收端)P3.1TXD串出(发送端)P3.6WR外部RAM写信号P3.3INT1外部中断1输入P3.4T0计数器0输入P3.5T1计数器1输入第二功能作用口线P3.2INT0外部中断0输入P3.7RD外部RAM读信号P3的各位如不设定为第二功能则自动处于第一功能,在更多情况下,根据需要,把几条口线设为第二功能,剩下的口线可作第一功能(I/O)使用,此时,宜采用位操作形式。归纳四个并行口使用的注意事项如下:如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用。四个口在作输入口使用时,均应先对其写“1”,以避免误读。P0口作I/O口使用时应外接10K的上拉电阻,其它口则可不必。P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。2编程举例下面举例说明端口的输入、输出功能。例1.设计一电路,监视某开关K,用发光二极管LED显示开关状态,如果开关合上,LED亮、开关打开,LED熄灭。分析:设计电路如图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口写入“1JBP1.1,LIG;开关开,转LIGSETBP1.0;SJMPAGALIG:CLRP1.0;SJMPAGA+5VP1.0LED在上述电路图中二极管亮度不够,按下面两种电路接法,增加了驱动能力,二极管更亮些。接成灌电流形式:P1.0+5VLED1加驱动电路:例2.在图中P1.4~P1.7接四个发光二极管LED,P1.0~P1.3接四个开关,编程将开关的状态反映到发光二极管上。89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V+5V1K×4330×4EA用汇编语言编程ORG0000HMOVP1,#0FFH;高四位的LED全灭,低四位输入线送“1”,ABC:MOVA,P1;读P1口引脚开关状态,并送入ASWAPA;低四位开关状态换到高四位ANLA,#0F0H;保留高四位MOVP1,A;从P1口输出ORLP1,#0FH;高四位不变,低四位送“1”,准备下一轮读开关SJMPABC;循环执行,方便反复调整开关状态观察执行结果上述程序中每次读开关之前,输入位都先置“1”,保证了开关状态的正确读入。例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,$RETENDP1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮,P1.0、P1.1开关同时接5V或接地时,转弯灯均不闪亮。实验

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功