




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、14 4个双向的个双向的8 8位并行位并行I/OI/O端口:端口:P0P3P0P3,它们的输,它们的输出锁存器属于特殊功能寄存器。出锁存器属于特殊功能寄存器。4 4个端口可以按字节和位寻址。个端口可以按字节和位寻址。2双功能的双功能的8 8位并行端口,字节地址为位并行端口,字节地址为 80H80H,位地址为,位地址为80H80H87H87H。3图图4-1 P0口某一位的位电路结构口某一位的位电路结构1 1位电路结构位电路结构P0P0口某位的电路包括:口某位的电路包括:(1 1)一个数据输出锁存器,用于数据位锁存。)一个数据输出锁存器,用于数据位锁存。(2 2)两个三态数据输入缓冲器,分别是用于
2、读锁存器的输)两个三态数据输入缓冲器,分别是用于读锁存器的输入缓冲器入缓冲器BUF1BUF1和读引脚的输入缓冲器和读引脚的输入缓冲器BUF2BUF2。(3 3)一个多路转接开关)一个多路转接开关MUXMUX,一个输入来自锁存器的端,一个输入来自锁存器的端,另一输入为地址另一输入为地址/ /数据信号的反相输出。数据信号的反相输出。MUXMUX由由“控制控制”信信号控制,实现锁存器的输出和地址号控制,实现锁存器的输出和地址/ /数据信号之间的转接。数据信号之间的转接。 (4 4)数据输出的控制和驱动电路,由两个场效应管()数据输出的控制和驱动电路,由两个场效应管(FETFET)组成。组成。4(1
3、1)P0P0口用作地址口用作地址/ /数据总线数据总线 当外扩存储器或当外扩存储器或I/OI/O时,时,P0P0口分时复用为地址口分时复用为地址/ /数据数据总线使用。总线使用。 当作为当作为地址或数据输出时地址或数据输出时,“控制控制”信号为信号为1 1。5111 10导通导通截止截止5100 01截止截止导通导通推挽输出推挽输出(1 1)P0P0口用作地址口用作地址/ /数据总线数据总线 当作为当作为数据输入时数据输入时,仅从外部读入信息,仅从外部读入信息,“控控制制”信号为信号为0 0。6111 10导通导通截止截止60CPU自动写入自动写入1000截止截止截止截止高阻高阻数据输入数据输
4、入(2 2)P0P0口用作通用口用作通用I/OI/O口口 当作为通用当作为通用I/OI/O口时,口时,“控制控制”信号为信号为0 0,要外,要外接上拉电阻。接上拉电阻。70数据数据写脉冲写脉冲0截止截止数据数据(2 2)P0P0口用作通用口用作通用I/OI/O口口 输入时:“读引脚”和“读锁存器”80数据数据读锁存器读锁存器0截止截止0数据数据读引脚读引脚0截止截止数据数据0截止截止P0口为双功能口地址/数据复用口和通用I/O口。当P0口用作地址/数据复用口时,是一个真正的真正的双向口双向口,输出低低8 8位地址位地址或输出/输入8 8位数据位数据。当P0口用作通用I/O口时,是一个准双向口准
5、双向口。 用作输入输入时,应首先向锁存器写写1 1。 单片机复位后,锁存器自动被置1; 当P0口由原来的输出状态转变为输入状态时,应首先置锁存器为1,方可执行输入操作。9单功能单功能I/OI/O口,字节地址为口,字节地址为 90H90H,位地址为,位地址为 90H90H97H97H。10图图4-2 P1口某一位的位电路结构口某一位的位电路结构2 2工作过程分析工作过程分析 P1P1口只能作为通用的口只能作为通用的I/OI/O口使用。口使用。 P1P1口作为输入口时,分为口作为输入口时,分为“读锁存器读锁存器”和和“读读引脚引脚”两种方式。两种方式。 P1P1口有内部上拉电阻,为准双向口。口有内
6、部上拉电阻,为准双向口。“读引脚读引脚”输入时,必须先向锁存器写入输入时,必须先向锁存器写入1 1。11P2P2口是一个双功能口,字节地址为口是一个双功能口,字节地址为A0HA0H,位地址,位地址为为 A0HA0HA7HA7H。12图图4-3 P2口某一位的位电路结构口某一位的位电路结构工作过程分析工作过程分析 (1 1)P2P2口用作地址总线口用作地址总线 在内部控制信号作用下,在内部控制信号作用下,MUXMUX与与 “地址地址”接通。当接通。当“地址地址”线为线为0 0时,场效应管导通,时,场效应管导通,P2P2口引脚输出口引脚输出0 0;当当“地址地址”线为线为1 1时,场效应管截止,时
7、,场效应管截止,P2P2口引脚输出口引脚输出1 1。 (2 2)P2P2口用作通用口用作通用I/OI/O 在内部控制信号作用下,在内部控制信号作用下,MUXMUX与与 锁存器的锁存器的Q Q端接通。端接通。CPUCPU输出输出1 1时,时,Q=1Q=1,场效应管截止,场效应管截止,P2.xP2.x引脚输出引脚输出1 1;CPUCPU输出输出0 0时,时,Q=0Q=0,场效应管导通,场效应管导通,P2.xP2.x引脚引脚输出输出0 0。 输入时,分为输入时,分为“读锁存器读锁存器”和和“读引脚读引脚”两种方式。两种方式。133 3P2P2口的特点口的特点 作为地址输出线使用时,P2口可以输出外部
8、存储器的高高8 8位地址位地址,与P0口输出的低8位地址一起构成16位地址,可以寻址64KB的地址空间。 作为通用I/O口使用时,P2口为一个准双向口。功能与P1口一样。 P2口作为高8位地址总线使用时就不能再作为通用I/O口。14P3口电路中增加了引脚的第二功能, P3口的每一位都可以分别定义为第二输入功能或第二输出功能。P3口的字节地址为B0H,位地址为B0HB7H。15图图4-4 P3口某一位的位电路结构口某一位的位电路结构2 2工作过程分析工作过程分析(1 1)P3P3口用作第二输入口用作第二输入/ /输出功能输出功能 选择第二输出功能时,锁存器置选择第二输出功能时,锁存器置“1”1”
9、,“与非门与非门” 开启。当第二输出为开启。当第二输出为1 1时,场效应管截止,时,场效应管截止,P3.xP3.x引脚引脚输出为输出为1 1;当第二输出为;当第二输出为0 0时,场效应管导通,时,场效应管导通,P3.xP3.x引脚输出为引脚输出为0 0。16选择第二输入功能时,锁选择第二输入功能时,锁存器和第二输出功能端均存器和第二输出功能端均应置应置1 1,保证场效应管截,保证场效应管截止,止,P3.xP3.x引脚的信息由输引脚的信息由输入缓冲器入缓冲器BUF3BUF3的输出获的输出获得。得。(2 2)P3P3口用作第一功能口用作第一功能通用通用I/OI/O口口 第二输出功能端应保持高第二输
10、出功能端应保持高电电平,平,“与非门与非门”为开启为开启状态。状态。CPUCPU输出输出1 1时,时,Q=1Q=1,场效应管截止,场效应管截止,P3.xP3.x引脚输出为引脚输出为1 1;CPUCPU输出输出0 0时,时,Q=0Q=0,场效应管导,场效应管导通,通,P3.xP3.x引脚输出为引脚输出为0 0。 用作用作第一功能通用输入时,第一功能通用输入时,P3.xP3.x位的输出锁存器和位的输出锁存器和第二输出功能均应置第二输出功能均应置1 1,场效应管截止,场效应管截止,P3.xP3.x引脚引脚信息通过输入信息通过输入BUF3BUF3和和BUF2BUF2进入内部总线,完成进入内部总线,完成
11、“读引脚读引脚”操作操作。 当当P3P3口实现第一功能通用输入时,也可以执行口实现第一功能通用输入时,也可以执行“读读锁存器锁存器”操作,此时操作,此时Q Q端信息经过缓冲器端信息经过缓冲器BUF1BUF1进入进入内部总线。内部总线。173 3P3P3口的特点口的特点 P3口内部有上拉电阻,为准双向口。 P3口作为第二功能的输出/输入,或第一功能的通用I/O输入,均须将相应位的锁存器置锁存器置1 1。、。、由于复位后P3口锁存器自动置1,所以不需要任何设置工作,就可以进入第二功能操作。 当某位不作第二功能使用时,可作为第一功能的通用I/O使用。18P0口与P1、P2、P3口相比,P0口的驱动能
12、力较大,每位可驱动8个LSTTL输入,而P1、P2、P3口的每一位的驱动能力,只有P0口的一半。当P0口的某位为高电平时,可提供400A的电流;当P0口的某位为低电平(0.45V)时,可提供3.2mA的灌电流,如低电平允许提高,灌电流可相应加大。所以,任一个口要想获得较大的驱动能力,只能用低电平输出低电平输出。19(a)不恰当的连接:高电平驱动 (b)恰当的连接:低电平驱动图4-5 发光二极管与AT89S51并行口的直接连接上拉电阻限制了拉电流4.2.1 4.2.1 从左到右的流水灯的制作从左到右的流水灯的制作【例例4-14-1】 如图如图4-64-6所示,所示,8 8个发光二极管个发光二极管
13、LED0LED0LED7LED7经限流电阻分别接至经限流电阻分别接至P1P1口的口的P1.0P1.0P1.7P1.7引脚上,阳极共同接高电平。编程来实现发引脚上,阳极共同接高电平。编程来实现发光二极管的从左到右的流水点亮,即按照光二极管的从左到右的流水点亮,即按照LED0LED1LED7LED0LED1LED7的顺序,每次点亮一个的顺序,每次点亮一个发光二极管,延时一段时间后熄灭这个发光二极发光二极管,延时一段时间后熄灭这个发光二极管,然后点亮下一个发光二极管,重复循环。管,然后点亮下一个发光二极管,重复循环。21图图4-6 8个发光二极管与并行口个发光二极管与并行口P1的连接的连接#incl
14、ude #include /*包含移位函数的头文件包含移位函数的头文件*/#define uchar unsigned char #define uint unsigned int void delay(uint i) /*延时函数延时函数*/uchar t;while (i-)for(t = 0; t 120; t+);void main( )/*主程序主程序*/P1=0 xfe;while (1)P1=_crol_( 0,1) ; /*C51函数库中的左移函数,函数库中的左移函数,P1中的数据循环左移中的数据循环左移1位位*/delay( 500 ); /*500为延时参数,可根据实际需要
15、调整为延时参数,可根据实际需要调整*/Proteus的使用,例4-1244.2.2 4.2.2 左右来回循环的流水灯的制作左右来回循环的流水灯的制作在在【例例4-14-1】的基础上,增加了从右到左点亮发的基础上,增加了从右到左点亮发光二极管的功能,即制作左右来回循环的节日彩光二极管的功能,即制作左右来回循环的节日彩灯,显示规律如图灯,显示规律如图4-74-7所示。具体电路如图所示。具体电路如图4-64-6所示。所示。 25图图4-7 节日彩灯的花样显示的规律节日彩灯的花样显示的规律为了使显示效果更加绚丽多彩,图为了使显示效果更加绚丽多彩,图4-64-6中的中的P1P1端口端口8 8个引脚个引脚
16、分别接有不同颜色的发光二极管。具体如表分别接有不同颜色的发光二极管。具体如表4-14-1所示。所示。 26【例例4-24-2】左右来回循环的流水灯的电路连接见图左右来回循环的流水灯的电路连接见图4-64-6,显,显示规律如图示规律如图4-74-7。实现本任务要求,可以有多种软件实现。实现本任务要求,可以有多种软件实现方法。下面列出了方法。下面列出了3 3种,具体如下。种,具体如下。(1 1)数组的字节操作实现)数组的字节操作实现本方法是建立一个字符型数组,将控制本方法是建立一个字符型数组,将控制8 8个个LEDLED显示的显示的8 8位位数据作为数组元素,依次送到数据作为数组元素,依次送到P1
17、P1口来实现。参考程序如口来实现。参考程序如下:下: #include #include #define uchar unsigned char#define uchar unsigned char uchar tab = 0 xfe , 0 xfd , 0 xfb , 0 xf7 , 0 xef , 0 xdf , 0 xbf , uchar tab = 0 xfe , 0 xfd , 0 xfb , 0 xf7 , 0 xef , 0 xdf , 0 xbf , 0 x7f ,0 xbf , 0 xdf , 0 xef , 0 xff7 , 0 xf7 , 0 xfb , 0 xfe ,
18、0 xff;/0 x7f ,0 xbf , 0 xdf , 0 xef , 0 xff7 , 0 xf7 , 0 xfb , 0 xfe , 0 xff;/* *前前8 8个数据为左移点亮数据,后个数据为左移点亮数据,后8 8个为右移点亮数据个为右移点亮数据* */ /27void delay( )void delay( ) uchar i,j;uchar i,j;for(i = 0; i 255; i+);for(i = 0; i 255; i+);for(j = 0; j 255; j+);for(j = 0; j 255; j+); void main( )void main( )/ /
19、* *主函数主函数* */ / uchar iuchar iwhile (1)while (1) for(i = 0; i 15; i+);for(i = 0; i ”“”“”来把送到来把送到P1P1口的显示控制口的显示控制数据进行移位,从而实现发光二极管依次点亮。参考程序如下:数据进行移位,从而实现发光二极管依次点亮。参考程序如下:#include #include #define uchar unsigned char#define uchar unsigned char void delay( )void delay( )uchar i,j;uchar i,j;for(i=0; i 25
20、5; i+)for(i=0; i 255; i+)for(j=0; j 255; j+);for(j=0; j 255; j+); void main( ) void main( ) / /* *主函数主函数* */ /uchar i,temp;uchar i,temp;while (1) while (1) temp=0 x01;temp=0 x01; / /* *左移初值赋给左移初值赋给temptemp* */ /for(i= 0; i 8; i+)for(i= 0; i 8; i+)29P1=P1=temp;temp;/ /* * temp temp取反后送取反后送P1P1口口* */
21、/delay( );delay( );temp=temp1; temp=temp1; / /* * temp temp 中数据左移一位中数据左移一位* */ / temp=0 x80; temp=0 x80; / /* *赋右移初值给赋右移初值给temptemp* */ /for(i=0; i 8; i+)for(i=0; i 1; temp=temp1; / /* * temp temp 中数据右移一位中数据右移一位* */ / 30(3 3)用移位函数实现)用移位函数实现#include #include #include #include / /* *包含左、右移位函数的头文件包含左、右
22、移位函数的头文件* */ /#define uchar unsigned char#define uchar unsigned char void delay( ) void delay( ) uchar i,j;uchar i,j;for(i=0; i 255; i+)for(i=0; i 255; i+)for(j=0; j 255; j+);for(j=0; j 255; j+); void main( )void main( ) / /* *主函数主函数* */ /uchar i,temp;uchar i,temp;while (1)while (1)temp=0 xfe;temp=0
23、 xfe; / /* *初值为初值为0 x111111100 x11111110* */ /31for(i=0; i 7; i+)for(i=0; i 7; i+)P1=temp;P1=temp;/ /* * temp temp 值送入值送入P1P1口口* */ /delay( ); delay( ); / /* *延时延时* */ /temp=_crol_( temp,1) ;temp=_crol_( temp,1) ;/ /* *执行左移函数,执行左移函数,temp temp 中的数据循环左移中的数据循环左移1 1位位* */ / for(i=0; i7; i+)for(i=0; i7;
24、i+)P1=temp;P1=temp;/ /* * temp temp 值送入值送入P1P1口口* */ /delay( ); delay( ); / /* *延时延时* */ /temp=_cror_( temp,1) ;temp=_cror_( temp,1) ;/ /* *执行右移函数,执行右移函数,temptemp中的数据循环右移中的数据循环右移1 1位位* */ / 324.2.3 4.2.3 开关量检测指示器开关量检测指示器1 1I/O端口另一应用是作为输入端口来检测开关的状态。【例例4-34-3】AT89S51单片机的P1.4P1.7接4个开关S0S3,P1.0P1.3接4个发光
25、二极管LED0LED3。编写程序,将P1.4P1.7上的4个开关的状态反映在P1.0P1.3引脚控制的4个发光二极管上。1个发光二极管的状态,对应一个开关的状态,例如P1.4引脚上开关S0的状态,由P1.0脚上的LED0显示,P1.6引脚上开关S2的状态,由P1.2脚上的LED2显示。凡是开关闭合的引脚,对应的LED发光二极管点亮。接口电路见图4-8。3334图图4-8 开关、开关、LED发光二极管与并行口发光二极管与并行口P1的连接的连接参考程序如下:参考程序如下:#include void main( ) /*主函数*/while (1)unsigned char temp; /*定义临时变量temp*/P1=0 xff; /* P1口低4位置1,作为输入;高4位置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合成生物学技术赋能二醇型稀有人参皂苷合成:路径、挑战与突破
- 闵行协管员招聘网面试题及答案
- 基于2025年的农村饮水安全项目社会稳定风险评估与农村生态环境保护报告
- 2025年教师招聘之《幼儿教师招聘》综合提升测试卷附参考答案详解(满分必刷)
- 2025年教师招聘之《幼儿教师招聘》通关试题库及答案详解【名校卷】
- 2025年教师招聘之《幼儿教师招聘》考试题库及答案详解【历年真题】
- 2025年教师招聘之《幼儿教师招聘》综合提升试卷含答案详解【满分必刷】
- 教师招聘之《小学教师招聘》综合提升试卷(研优卷)附答案详解
- 押题宝典教师招聘之《小学教师招聘》模考模拟试题(a卷)附答案详解
- 内蒙古呼伦贝尔农垦拉布大林上库力三河苏沁农牧场有限公司招聘笔试题库附答案详解(典型题)
- T-CRHA 089-2024 成人床旁心电监测护理规程
- 2025年全国企业员工全面质量管理知识竞赛题库(试题及答案)
- 2025年电信人工智能学习考试题库(含答案)
- 地热井气举反循环施工方案
- 医院药学相关法规课件
- 有机肥采购合同书
- 团建活动申请书
- 2025年度加油站油品储存安全协议范本
- GB/T 29912-2024城市物流配送汽车选型技术要求
- 纺织品产品召回流程指南
- 化验取样工安全操作规程(2篇)
评论
0/150
提交评论