08-通用数字输入输出端口_第1页
08-通用数字输入输出端口_第2页
08-通用数字输入输出端口_第3页
08-通用数字输入输出端口_第4页
08-通用数字输入输出端口_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

,第8章端口输入/输出C8051F020/1/2/3MCU是高集成度的混合信号片上系统,有按8位端口组织的64个数字I/O引脚(C8051F020/2)或32个数字I/O引脚(C8051F021/3)。低端口(P0、P1、P2和P3)既可以按位寻址也可以按字节寻址。高端口(P4、P5、P6和P7)只能按字节寻址。P0:80HP1:90HP2:A0HP3:B0HP4:84HP5:85HP6:86HP7:96H所有引脚都耐5V电压,都可以被配置为漏极开路、推挽输出方式或弱上拉。端口I/O单元的功能框图示于图8-1。,图8-1I/O端口单元功能框图,8.1单片机I/O端口的操作对于端口P0、P1、P2和P3,除了被交叉开关配置、扩展外部存储器、ADC1的模拟输入通道以及外部中断6、7占用之外,其余的引脚都可以作为通用的I/O(GPIO)端口,即数字输入、输出口使用。这些作为通用数字输入、输出使用的引脚,既可以按位寻址也可以按字节寻址。端口P4P7的所有端口引脚都可以作为通用的I/O,通过读和写相应的端口数据寄存器访问端口(都是特殊功能寄存器)。,8.1.1端口引脚的输出方式端口受寄存器PnMDOUT(n=03)、P74OUT及寄存器XBR2的弱上拉禁止位(WEAKPUD、XBR2.7)的控制,可选择4种输出方式。1,漏极开路输出寄存器PnMDOUT(n=03)分别选择P0、P1、P2、P3口的输出方式,寄存器P74OUT选择P4、P5、P6、P7口的输出方式。若寄存器PnMDOUT(n=03)和P74OUT中的某位值为0,则与该位对应的I/O输出线为漏极开路输出方式。,在漏极开路方式,T1始终处于截止状态。应用时,应外接上拉电阻(10k),使得I/O口输出1时,有高电平输出。所有端口引脚的缺省方式为漏极开路。,T1,T3,T2,PnMDOUT,不管交叉开关是否将端口引脚分配给数字外设,端口引脚的输出方式都受PnMDOUT寄存器控制。例外情况是:配置给SDA、SCL、RX0、RX1的端口引脚总是被配置为漏极开路输出,而与PnMDOUT寄存器中的对应位的设置无关。端口P0P3是否能输出,还受XBARE(XBR2.6)的限制。必须将XBARE置为“1”,引脚才能输出。2,推挽输出若寄存器PnMDOUT(n=03)和P74OUT中的某位值为1,则与该位对应的I/O输出线为推挽输出方式。,当T1导通、T2截止时,T1相当于一个电阻,加在T1上的VDD与外接电路构成推电流电路,此时输出为高电平。当T2导通、T1截止时,T2相当于一个电阻,T2经过DGND与外接电路构成拉电流回路,此时输出为低电平。,T1,T2,T3,PnMDOUT,3,弱上拉输出每个端口引脚都有一个内部弱上拉部件T3,在引脚和VDD之间提供阻性连接(100k),在缺省情况下,该上拉器件被使能。设置寄存器XBR2的弱上拉禁止位(WEAKPUD,XBR2.7)为0,允许弱上拉,设置为1,禁止弱上拉。,T1,T2,T3,4高阻态输出关闭弱上拉方式,取消外接上拉电阻并输出1(关闭T2),端口将呈高阻态。在漏极开路时,输出0将使端口引脚驱动到GND,输出1则为高阻态。,T1,T2,T3,8.1.2端口引脚的输入方式端口P0P3可配置为数字输入和模拟输入,端口P4P7只能配置为数字输入。1,数字输入通过设置输出方式为“漏极开路”并向端口数据寄存器中的相应位写1将端口引脚配置为数字输入。例如,设置P3MDOUT.7为逻辑0并设置P3.7为逻辑1即可将P3.7配置为数字输入。,如果一个端口引脚被交叉开关分配给某个数字外设,并且该引脚的功能为输入(例如UART0的接收引脚RX0),则该引脚的输出驱动器被自动禁止。,2,模拟输入P1口可配置为ADC1的模拟输入引脚,将P1口的相应引脚PnMDIN位清零即可。当引脚配置为模拟输入时,不参与交叉开关配置,在交叉开关配置中会自动跳过相应引脚。,8.1.3配置无引出脚的端口尽管P4、P5、P6和P7在C8051F021/3中没有对应的引脚,但端口数据寄存器仍然存在并可为软件所用。由于数字输入通路保持活动状态,所以建议不要将这些引脚处于“浮空”状态,以避免因输入浮空为一个无效逻辑电平而导致不必要的功率消耗。下面的任何一种措施都可以防止这种情况出现:,1通过将WEAKPUD(XBR2.7)设置为逻辑0来使能弱上拉部件。2通过写P74OUT=0 xFF将P4、P5、P6和P7的输出方式配置为推挽方式。3通过向端口数据寄存器写0将P4、P5、P6和P7的输出状态强制为逻辑0:P4=0 x00,P5=0 x00,P6=0 x00,P7=0 x00。,P0:端口0寄存器,位7-0:P0.7:0:端口0输出锁存器位。,8.2输入/输出端口的特殊功能寄存器8.2.1低端口P0P3的特殊功能寄存器,(写输出出现在I/O引脚,根据XBR0、XBR1和XBR2寄存器的设置)0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P0MDOUT.n位=0,则为漏极开路)。,(读与XBR0、XBR1和XBR2寄存器的设置无关)0:P0.n为逻辑低电平。1:P0.n为逻辑高电平。注:P0.7(/WR)、P0.6(/RD)和P0.5(/ALE)可由外部数据存储器接口驱动。后面细讲。,P0MDOUT:端口0输出方式寄存器,位7-0:P0MDOUT.7:0:端口0输出方式位。0:端口引脚的输出方式为漏极开路。1:端口引脚的输出方式为推挽。,P0MDOUT:端口0输出方式寄存器,注意:当SDA、SCL、RX0(当UART0工作于方式0时)和RX1(当UART1工作于方式0时)出现在端口引脚时,总是被配置为漏极开路输出,与P0MDOUT的设置值无关。,P1:端口1寄存器,位7-0:P1.7:0:端口1输出锁存器位。(写输出出现在I/O引脚,根据XBR0、XBR1和XBR2寄存器的设置)0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P1MDOUT.n位=0,则为漏极开路)。(读与XBR0、XBR1和XBR2寄存器的设置无关)0:P1.n为逻辑低电平。1:P1.n为逻辑高电平。,注意:1P1.7:0可以被配置为ADC1的输入AIN1.7:0。在这种情况下,交叉开关的引脚分配将跳过这些引脚,它们的数字输入通路被禁止,由P1MDIN寄存器决定。,2P1.7:0可以由外部数据存储器接口驱动(在非复用方式作为地址A15:8)。,P1MDIN:端口1输入方式寄存器,位7-0:P1MDIN.7:0:端口1输入方式位。,0:端口引脚被配置为模拟输入方式。数字输入通路被禁止(读端口位将总是返回0)。引脚的弱上拉被禁止。1:端口引脚被配置为数字输入方式。读端口位将返回引脚的逻辑电平。弱上拉状态由WEAKPUD位(XBR2.7)决定。,P1MDOUT:端口1输出方式寄存器,位7-0:P1MDOUT.7:0:端口1输出方式位。0:端口引脚的输出方式为漏极开路。1:端口引脚的输出方式为推挽。注:当SDA、SCL、RX0(当UART0工作于方式0时)和RX1(当UART1工作于方式0时)出现在端口引脚时,总是被配置为漏极开路输出。,P2:端口2数据寄存器,位7-0:P2.7:0:端口2输出锁存器位。(写输出出现在I/O引脚,根据XBR0、XBR1和XBR2寄存器的设置)0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P2MDOUT.n位=0,则为漏极开路)。(读与XBR0、XBR1和XBR2寄存器的设置无关)0:P2.n为逻辑低电平。1:P2.n为逻辑高电平。注:P2.7:0可以由外部数据存储器接口驱动(在复用方式作为地址A15:8或在非复用方式作为地址A7:0)。,P2MDOUT:端口2输出方式寄存器,位7-0:P2MDOUT.7:0:端口2输出方式位。0:端口引脚的输出方式为漏极开路。1:端口引脚的输出方式为推挽。注:当SDA、SCL、RX0(当UART0工作于方式0时)和RX1(当UART1工作于方式0时)出现在端口引脚时,总是被配置为漏极开路输出。,P3:端口3数据寄存器,位7-0:P3.7:0:端口3输出锁存器位。(写输出出现在I/O引脚,根据XBR0、XBR1和XBR2寄存器的设置)0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P3MDOUT.n位=0,则为漏极开路)。(读与XBR0、XBR1和XBR2寄存器的设置无关)0:P3.n为逻辑低电平。1:P3.n为逻辑高电平。注:P3.7:0可以由外部数据存储器接口驱动(在复用方式作为AD7:0或在非复用方式作为D7:0)。,P3MDOUT:端口3输出方式寄存器,位7-0:P3MDOUT.7:0:端口3输出方式位。0:端口引脚的输出方式为漏极开路。1:端口引脚的输出方式为推挽。注:当SDA、SCL、RX0(当UART0工作于方式0时)和RX1(当UART1工作于方式0时)出现在端口引脚时,总是被配置为漏极开路输出。,总结:PmMDOUT.n为逻辑1时将Pm.n配置为推挽方式;PmMDOUT.n为逻辑0时将Pm.n配置为漏极开路方式。所有端口引脚的缺省方式均为漏极开路。不管交叉开关是否将端口引脚分配给某个数字外设,端口引脚的输出方式都受PnMDOUT寄存器控制。例外情况是:连接到SDA、SCL、RX0(如果UART0工作于方式0)、RX1(如果UART1工作于方式0)的端口引脚总是被配置为漏极开路输出,而与PnMDOUT寄存器中的对应位的设置值无关。,P3IF:端口3中断标志寄存器,位7:IE7:外部中断7标志位0:P3.7引脚没有检测到下降沿。1:当检测到P3.7引脚的下降沿时该标志由硬件置位。位6:IE6:外部中断6标志0:P3.6引脚没有检测到下降沿。1:当检测到P3.6引脚的下降沿时该标志由硬件置位。,位5-4:未使用。读=00b,写=忽略。位3:IE7CF:外部中断7边沿配置位0:外部中断7由IE7输入的下降沿触发。1:外部中断7由IE7输入的上升沿触发。,P3IF:端口3中断标志寄存器,位2:IE6CF:外部中断6边沿配置位0:外部中断6由IE6输入的下降沿触发。1:外部中断6由IE6输入的上升沿触发。位1-0:未用。读=00b,写=忽略。,P3IF:端口3中断标志寄存器,当检测到P3.6或P3.7有下降沿或上升沿发生时,P3IF寄存器中对应的外部中断标志(IE6或IE7)将被置1。如果对应的中断被允许,将会产生一个中断,CPU将转向对应的中断向量地址。,8.2.2高端口P4-P7(仅C8051F020/2)的特殊功能寄存器端口4-7的所有端口引脚都可用作通用I/O(GPIO),通过读和写相应的端口数据寄存器访问每个端口,这些端口数据寄存器是一组按字节寻址的特殊功能寄存器。,P74OUT:端口7-4输出方式寄存器,位7:P7H:端口7高4位输出方式位。0:P7.7:4配置为漏极开路。1:P7.7:4配置为推挽方式。位6:P7L:端口7低4位输出方式位。0:P7.3:0配置为漏极开路。1:P7.3:0配置为推挽方式。位5:P6H:端口6高4位输出方式位。0:P6.7:4配置为漏极开路。1:P6.7:4配置为推挽方式。,位4:P6L:端口6低4位输出方式位。0:P6.3:0配置为漏极开路。1:P6.3:0配置为推挽方式。位3:P5H:端口5高4位输出方式位。0:P5.7:4配置为漏极开路。1:P5.7:4配置为推挽方式。,P74OUT:端口7-4输出方式寄存器,位2:P5L:端口5低4位输出方式位。0:P5.3:0配置为漏极开路。1:P5.3:0配置为推挽方式。位1:P4H:端口4高4位输出方式位。0:P4.7:4配置为漏极开路。1:P4.7:4配置为推挽方式。位0:P4L:端口4低4位输出方式位。0:P4.3:0配置为漏极开路。1:P4.3:0配置为推挽方式。,P74OUT:端口7-4输出方式寄存器,P4:端口4数据寄存器,位7-0:P4.7:0:端口4输出锁存器位。写输出出现在I/O引脚。0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P74OUT位=0,则为漏极开路)。读返回I/O引脚的状态。0:P4.n为逻辑低电平。1:P4.n为逻辑高电平。注:P4.7(/WR)、P4.6(/RD)和P4.5(ALE)可以由外部数据存储器接口驱动。,P5:端口5数据寄存器,位7-0:P5.7:0:端口5输出锁存器位。写输出出现在I/O引脚。0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P74OUT位=0,则为漏极开路)。读返回I/O引脚的状态。0:P5.n为逻辑低电平。1:P5.n为逻辑高电平。注:P5.7:0可以由外部数据存储器接口驱动(在非复用方式作为地址A15:8)。,P6:端口6数据寄存器,位7-0:P6.7:0:端口6输出锁存器位。写输出出现在I/O引脚。0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P74OUT位=0,则为漏极开路)。读返回I/O引脚的状态。0:P6.n为逻辑低电平。1:P6.n为逻辑高电平。注:P6.7:0可以由外部数据存储器接口驱动(在复用方式作为地址A15:8或在非复用方式作为地址A7:0)。,P7:端口7数据寄存器,位7-0:P7.7:0:端口7输出锁存器位。写输出出现在I/O引脚。0

温馨提示

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

评论

0/150

提交评论