第6章单片机并行口_第1页
第6章单片机并行口_第2页
第6章单片机并行口_第3页
第6章单片机并行口_第4页
第6章单片机并行口_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1并行口单片机有P0口、P1口、P2口及P3口4个并行I/O口,每个口8条线,共32条I/O线。(1)P0口(P0.0~P0.7):低8位地址和数据复用。(2)P1口(P1.0~P1.7):作一般I/O接口使用。(3)P2口(P2.0~P2.7):地址(高8位)或作一般I/O接口。(4)P3口(P3.0~P3.7):作一般I/O接口或第二功能引脚。第6章内部功能单元及应用6.180C51的并行口结构与应用6.1.1P0口、P2口的结构

一、

P0口的结构数据锁存数据缓冲器2选1多路开关驱动控制

1、P0口作通用的I/O口使用。

这时,CPU发来的“控制”信号为低电平,上拉场效应管截止,多路转接开关MUX打向下边,与D锁存器的Q端接通。(1)P0作输出口使用

来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出。

(2)P0作输入口使用区分“读引脚”和“读锁存器”。

CPU在执行“读—修改—写”类输入指令时,内部产生的“读锁存器”操作信号,使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P0的口锁存器并出现在引脚(如:ANL

P0,A)

CPU在执行“MOV”类输入指令时,内部产生的操作信号是“读引脚”(如:MOV

A,P0)。在执行该类输入指令前要先把锁存器写入“1”。所以,P0口在作为通用I/O口时,属于准双向口。

2、P0口传送地址或数据时

CPU发出控制信号为高电平,打开上面的与门,使多路转接开关MUX打向上边,使内部地址/数据线与下面的场效应管处于反相接通状态。此时输出驱动电路由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。且在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。因此,不能再作为通用的I/O端口。

二、P2端口的结构字节地址为A0H,位地址A0H~A7H。

在实际应用中,因为P2口用于提供高位地址,有一个多路转接开关MUX。但MUX的一个输入端不再是“地址/数据”,而是单一的“地址”,因为P2口只作为地址线使用。当P2口用作为高位地址线使用时,多路转接开关应接向“地址”端。正因为只作为地址线使用,口的输出用不着是三态的,所以,P2口也是一个准双向口。

P2口也可以作为通用I/O口使用,这时,多路转接开关接向锁存器Q端。6.1.2P1口、P3口的结构

一、P1口的结构

P1口由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成。输出驱动电路与P2口相同,内部设有上拉电阻。

P1口是通用的准双向I/O口。输出高电平时,能向外提供拉电流负载,不必再接上拉电阻。当口用作输入时,须向口锁存器写入1。二、

P3口的结构

(字节地址为B0H,位地址为B0H~B7H)1、P3用作第一功能(通用I/O口)

对P3口进行字节或位寻址时,单片机内部的硬件自动将第二功能输出线的W置1。这时,对应的口线为通用I/O口方式。

输出时,锁存器的状态(Q端)与输出引脚的状态相同;输入时,要先向口锁存器写入1,使引脚处于高阻输入状态。输入的数据在“读引脚”信号的作用下,进入内部数据总线。

P3口作为通用I/O口时,属于准双向口。2、第二功能信号(有输出和输入两类):(1)作通用的I/O输出,“第二输出功能”线应保持高电平,与非门开通,使锁存器Q端输出畅通。作第二功能信号输出,锁存器预先置“1”,使与非门对“第二输出功能”信号的输出是畅通的。(2)作第二功能信号输入,在口线引脚的内部增加了一个缓冲器,输入的信号就从这个缓冲器的输出端取得。而作为通用I/O输入,仍取自三态缓冲器的输出端。

P3口无论作哪种输入,锁存器输出和“第二输出功能”线都应保持高电平。3、P3用作第二功能使用

当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1,P3口作为第二功能使用。

引脚第二功能

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*

(外部数据存储器读选通)

6.1.3并行口的负载能力

P0、P1、P2、P3口的电平与CMOS和TTL电平兼容。

P0口的每一位口线可以驱动8个LSTTL负载。在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻;当作为地址/数据总线使用时,口线输出不是开漏的,无须外接上拉电阻。P1、P2、P3口的每一位能驱动4个LSTTL负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。

由于单片机口线仅能提供几毫安的电流,当作为输出驱动一般的晶体管的基极时,应在口与晶体管的基极之间串接限流电阻。

6.1.4

并行口的应用

1、用P1~P3端口驱动LED发光二极管

P1、P2、P3口的每一位的驱动能力,只有P0口的一半。当口的某位为高电平时,可提供较小的电流;当口的某位为低电平(0.45V)时,可提供较大的灌电流,如低电平允许提高,灌电流可相应加大。所以,任一个口要想获得较大的驱动能力,只能用低电平输出。例如,使用单片机的并行端口P1~P3直接驱动发光二极管,电路如图所示。(a)不正确的连接:(b)正确的连接:高电平驱动低电平驱动

发光二极管与单片机并行口的直接连接

8个发光二极管与并行口P1的连接驱动LED发光二极管举例2、单片机与LED数码管接口(1)LED静态显示

如图:用P1口和P2口接2个8段数码管。保持P1口和P2口的数据不变,可使数码管一直显示要求的内容。(2)LED动态显示用P1口接数码管的段码(显示码),用P2口接数码管的位选码。需要加驱动。+5V例3-11.如图:单片机89C51P1口上接8个发光二极管,使发光二极管流水作业,用循环编写程序。C3R1KRSTXTAL1XTAL2C1C212MHZ89C51VCCRD1P1.0P1.7……

当P1口的某个引脚为低电平时,对应的发光二极管点亮,依次给各个引脚低电平,可以产生流水效果。可采用循环和移位指令编写程序。采用循环结构实现的流水灯控制程序#include<reg51.h> voiddelay(unsignedchari); voidmain() {unsignedchari,w;while(1){w=0x01; //初值为00000001

for(i=0;i<8;i++){ P1=~w; //显示字取反后11111110,送P1口

delay(200); //延时

w<<=1; //显示字W左移一位 00000010}}}voiddelay(unsignedchari) //延时函数,无符号字符型变量i为形式参数{unsignedcharj,k; //定义无符号字符型变量j和k

for(k=0;k<i;k++) //双重for循环语句实现软件延时

for(j=0;j<255;j++);}4、无限循环的实现(1)While(1)(2)for(;;)(3)do-whileWhile(1)for(;;)do{代码{代码{代码

} } }While(1)例3-11采用数组实现的流水灯控制程序#include<reg51.h> //包含头文件REG51.Hvoiddelay(unsignedchari); //延时函数声明voidmain() //主函数{unsignedchari;unsignedchardisplay[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义数组

while(1){

for(i=0;i<8;i++){P1=display[i]; //显示字送P1口

delay(200);} //延时

}}voiddelay(unsignedchari) //延时函数,{unsignedcharj,k; //定义无符号字符型变量j和k

for(k=0;k<i;k++) //双重for循环语句实现软件延时

for(j=0;j<255;j++);}例3-12使用查表法,计算数0~9的平方。#defineucharunsignedcharucharcodesquare[0,1,4,9,16,25,36,49,64,81];uchar

fuction(ucharnumber){ returnsquare[number]};/*返回其平方的数*/main() { result=fuction(7); /*函数fuction()的返回值为7,其平方49存入result单元*/}在程序的开始处,“uchar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论