




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C8051F系列系列SOC单片机原理及应用单片机原理及应用 主讲:吴国东主讲:吴国东第四章第四章 端口输入端口输入/ /输出输出 C8051F020/1/2/3 MCUC8051F020/1/2/3 MCU是高集成度的是高集成度的混合信号片上系统,有按混合信号片上系统,有按8 8位端口组织的位端口组织的6464个数字个数字I/OI/O引脚引脚(C8051F020/2)(C8051F020/2)或或3232个数个数字字I/OI/O引脚引脚(C8051F021/3)(C8051F021/3)。低端口。低端口(P0(P0、P1P1、P2 P2 和和P3)P3)既可以按位寻址也可以按字既可以按位寻址也
2、可以按字节寻址。高端口节寻址。高端口(P4(P4、P5P5、P6 P6 和和P7)P7)只能只能按字节寻址。按字节寻址。所有引脚都耐所有引脚都耐5V 5V 电压,都电压,都可以被配置为漏极开路或推挽输出方式和可以被配置为漏极开路或推挽输出方式和弱上拉。弱上拉。第四章第四章 端口输入端口输入/ /输出输出 C8051F020/1/2/3C8051F020/1/2/3器件有大量的数字资器件有大量的数字资源需要通过源需要通过4 4个低端个低端I/OI/O端口端口P0P0、P1P1、P2P2和和P3P3才能使用。才能使用。P0-P3P0-P3的每个引脚可定义的每个引脚可定义为通用的端口为通用的端口I/
3、OI/O(GPIOGPIO)引脚,又可以)引脚,又可以分配给一个数字外设或功能(例如:分配给一个数字外设或功能(例如:UART0 UART0 或或/INT1/INT1)。系统设计者控制数字)。系统设计者控制数字功能的引脚分配,只受可用引脚数的限功能的引脚分配,只受可用引脚数的限制。这种资源分配的灵活性是通过使用制。这种资源分配的灵活性是通过使用优先权交叉开关译码器实现的。优先权交叉开关译码器实现的。第四章第四章 端口输入端口输入/ /输出输出 注意注意: :不管引脚被分配给一个数字外设或不管引脚被分配给一个数字外设或是作为通用是作为通用I/OI/O,总是可以通过读相应的,总是可以通过读相应的数
4、据寄存器得到端口数据寄存器得到端口I/OI/O引脚的状态。端引脚的状态。端口口1 1的引脚可以用做的引脚可以用做ADC1ADC1的模拟输入。的模拟输入。 在执行目标地址为片外在执行目标地址为片外XRAM XRAM 的的MOVX MOVX 指令时,外部存储器接口可以在低端口或指令时,外部存储器接口可以在低端口或高端口有效。高端口有效。 高端口(存在于高端口(存在于C8051F020/2 C8051F020/2 中)中)按字节访问。按字节访问。 第四章第四章 端口输入端口输入/ /输出输出第四章第四章 端口输入端口输入/ /输出输出4.1 端口端口0-3和优先权交叉开关译码器和优先权交叉开关译码器
5、 优先权交叉开关译码器,或称为优先权交叉开关译码器,或称为“交交叉开关叉开关”,按优先权顺序将端口,按优先权顺序将端口0 0- -3 3的引的引脚分配给器件上的数字外设(脚分配给器件上的数字外设(UARTUART、SMBusSMBus、PCAPCA、定时器等)。端口引脚的、定时器等)。端口引脚的分配顺序是从分配顺序是从P0.0 P0.0 开始,可以一直分配开始,可以一直分配到到P3.7P3.7。UART0UART0具有最高优先权,而具有最高优先权,而CNVSTRCNVSTR具有最低优先权。具有最低优先权。第四章第四章 端口输入端口输入/ /输出输出 1) 交叉开关引脚分配交叉开关引脚分配 当交
6、叉开关配置寄存器当交叉开关配置寄存器XBR0、XBR1 和和XBR2 中外设的对应使能位被设置为逻辑中外设的对应使能位被设置为逻辑1时,交叉开关将端口引脚分配给外设。时,交叉开关将端口引脚分配给外设。 例如,如果例如,如果UART0EN位(位(XBR0.2)被设置)被设置为逻辑为逻辑1,则,则TX0 和和RX0 引脚将分别被分引脚将分别被分配到配到P0.0 和和P0.1。因为。因为UART0有最高优先权,有最高优先权,所以当所以当UART0EN 位被设置为逻辑位被设置为逻辑1时其引时其引脚将总是被分配到脚将总是被分配到P0.0 和和P0.1。4.1 端口和优先权交叉开关端口和优先权交叉开关 1
7、) 交叉开关引脚分配交叉开关引脚分配 注意:注意: 当选择了串行通信外设(即当选择了串行通信外设(即SMBus、SPI或或UART)时,交叉开关将为所有相)时,交叉开关将为所有相关功能分配引脚。关功能分配引脚。 例如,不能为例如,不能为UART0功能只分配功能只分配TX0 引脚而不分配引脚而不分配RX0引脚。被使能的外设引脚。被使能的外设的每种组合导致唯一的器件引脚分配。的每种组合导致唯一的器件引脚分配。 4.1 端口和优先权交叉开关端口和优先权交叉开关4.1 端口和优先权交叉开关端口和优先权交叉开关2) 配置端口引脚的输出方式配置端口引脚的输出方式 在在XBAREXBARE(XBR2.6XB
8、R2.6)被设置为逻辑)被设置为逻辑11之前,端口之前,端口0-30-3的输出驱动器保持的输出驱动器保持禁止状态。每个端口引脚的输出方式都禁止状态。每个端口引脚的输出方式都可被配置为漏极开路或推挽方式,缺省可被配置为漏极开路或推挽方式,缺省状态为漏极开路。状态为漏极开路。4.1 端口和优先权交叉开关端口和优先权交叉开关2) 配置端口引脚的输出方式配置端口引脚的输出方式 在在推挽方式推挽方式,向端口数据寄存器中,向端口数据寄存器中的相应位写逻辑的相应位写逻辑00将使端口引脚被驱将使端口引脚被驱动到动到GNDGND,写逻辑,写逻辑11将使端口引脚被将使端口引脚被驱动到驱动到VDDVDD。在。在漏极
9、开路方式漏极开路方式,向端口数,向端口数据寄存器中的相应位写逻辑据寄存器中的相应位写逻辑00将使端将使端口引脚被驱动到口引脚被驱动到GNDGND,写逻辑,写逻辑11将使将使端口引脚处于高阻状态。端口引脚处于高阻状态。 4.1 端口和优先权交叉开关端口和优先权交叉开关2) 配置端口引脚的输出方式配置端口引脚的输出方式 当系统中不同器件的端口引脚有共享当系统中不同器件的端口引脚有共享连接,即多个输出连接到同一个物理线连接,即多个输出连接到同一个物理线时(例如时(例如SMBusSMBus连接中的连接中的SDASDA信号),使信号),使用漏极开路方式可以防止不同器件之间用漏极开路方式可以防止不同器件之
10、间的争用。的争用。 端口端口0-30-3引脚的输出方式由引脚的输出方式由PnMDOUT PnMDOUT 寄存器中的对应位决定。寄存器中的对应位决定。 4.1 端口和优先权交叉开关端口和优先权交叉开关2) 配置端口引脚的输出方式配置端口引脚的输出方式 例如,例如,P3MDOUT.7 P3MDOUT.7 为逻辑为逻辑11时将时将P3.7 P3.7 配置为推挽方式;配置为推挽方式;P3MDOUT.7P3MDOUT.7为逻为逻辑辑00时将时将P3.7 P3.7 配置为漏极开路方式。配置为漏极开路方式。所有端口引脚的所有端口引脚的缺省方式均为漏极开路缺省方式均为漏极开路。不管交叉开关是否将端口引脚分配给
11、某不管交叉开关是否将端口引脚分配给某个数字外设,端口引脚的输出方式都受个数字外设,端口引脚的输出方式都受PnMDOUTPnMDOUT寄存器控制。寄存器控制。 4.1 端口和优先权交叉开关端口和优先权交叉开关2) 配置端口引脚的输出方式配置端口引脚的输出方式 例外情况:例外情况: 连接到连接到SDASDA、SCLSCL、RX0RX0(如果(如果UART0 UART0 工作于方式工作于方式0 0)、)、RX1RX1(如果(如果UART1UART1工作工作于方式于方式0 0)的端口引脚总是被配置为漏)的端口引脚总是被配置为漏极开路输出,而与极开路输出,而与PnMDOUTPnMDOUT寄存器中的寄存器
12、中的对应位的设置值无关。对应位的设置值无关。 4.1 端口和优先权交叉开关端口和优先权交叉开关3) 配置端口引脚为数字输入配置端口引脚为数字输入 通过设置输出方式为通过设置输出方式为“漏极开路漏极开路”并向端口数据寄存器中的相应位写并向端口数据寄存器中的相应位写11将端口引脚配置为数字输入。将端口引脚配置为数字输入。 例如,设置例如,设置P3MDOUT.7 P3MDOUT.7 为逻辑为逻辑00并设置并设置P3.7 P3.7 为逻辑为逻辑11即可将即可将P3.7 P3.7 配配置为数字输入。置为数字输入。4.1 端口和优先权交叉开关端口和优先权交叉开关 4) 外部中断(外部中断(IE6 和和IE
13、7) 除了外部中断除了外部中断/INT0和和/INT1之外,之外,P3.6和和P3.7可被配置为边沿触发的中断源,用可被配置为边沿触发的中断源,用IE6CF(P3IF.2)和)和IE7CF(P3IF.3)位可以将这两)位可以将这两个中断源配置为下降沿或上升沿触发。个中断源配置为下降沿或上升沿触发。 当检测到当检测到P3.6或或P3.7下降沿或上升沿发生下降沿或上升沿发生时,时,P3IF寄存器中对应的外部中断标志将被置寄存器中对应的外部中断标志将被置1。如果对应的中断允许,将产生一个中断。如果对应的中断允许,将产生一个中断。4.1 端口和优先权交叉开关端口和优先权交叉开关 5) 弱上拉弱上拉 每
14、个端口引脚都有一个内部弱上拉部件,每个端口引脚都有一个内部弱上拉部件,在引脚与在引脚与VDD 之间提供阻性连接(约之间提供阻性连接(约100 k),在缺省情况下该上拉器件被使能。弱),在缺省情况下该上拉器件被使能。弱上拉部件可以被总体禁止,通过向弱上拉禁止上拉部件可以被总体禁止,通过向弱上拉禁止位(位(WEAKPUD,XBR2.7)写)写1实现。当实现。当任何引脚被驱动为逻辑任何引脚被驱动为逻辑0时,弱上拉自动取时,弱上拉自动取消;即输出引脚不能与其自身的上拉部件冲突。消;即输出引脚不能与其自身的上拉部件冲突。对于端口对于端口1 的引脚,将引脚配置为模拟输入时的引脚,将引脚配置为模拟输入时上拉
15、部件也被禁止。上拉部件也被禁止。 4.1 端口和优先权交叉开关端口和优先权交叉开关6) 配置端口配置端口1的引脚为模拟输入的引脚为模拟输入 (AIN.7:0) 端口端口1 1的引脚可以用作的引脚可以用作ADC1ADC1模拟多路开关模拟多路开关的模拟输入。通过向的模拟输入。通过向P1MDINP1MDIN寄存器中的寄存器中的对应位写对应位写00即可将端口引脚配置为即可将端口引脚配置为模拟输入。缺省情况下端口引脚为数字模拟输入。缺省情况下端口引脚为数字输入方式。输入方式。 4.1 端口和优先权交叉开关端口和优先权交叉开关6) 配置端口配置端口1 的引脚为模拟输入的引脚为模拟输入 (AIN.7:0)
16、配置为模拟输入的过程如下:配置为模拟输入的过程如下: 1 1禁止引脚的数字输入路径。禁止引脚的数字输入路径。 2 2禁止引脚的弱上拉部件。禁止引脚的弱上拉部件。 3 3使交叉开关在为数字外设分配引脚使交叉开关在为数字外设分配引脚时跳过该引脚。时跳过该引脚。4.1 端口和优先权交叉开关端口和优先权交叉开关6) 配置端口配置端口1 的引脚为模拟输入的引脚为模拟输入 (AIN.7:0) 注意:注意: 被配置为模拟输入的引脚的输出驱被配置为模拟输入的引脚的输出驱动器并没有被明确地禁止。因此被配置动器并没有被明确地禁止。因此被配置为模拟输入的引脚所对应的为模拟输入的引脚所对应的P1MDOUT P1MDO
17、UT 位位应被设置为逻辑应被设置为逻辑00(漏极开路方(漏极开路方式),对应的端口数据位应被设置为逻式),对应的端口数据位应被设置为逻辑辑11(高阻态)。(高阻态)。4.1 端口和优先权交叉开关端口和优先权交叉开关7) 外部存储器接口引脚分配外部存储器接口引脚分配 如果外部存储器接口被设置在低端口,如果外部存储器接口被设置在低端口,XBR2.1=1,使交叉开关不将,使交叉开关不将P0.7 (/WR)、P0.6 (/RD)和和P0.5 (/ALE)(复用方式)分配给(复用方式)分配给外设。如果外部存储器接口被设置在低端口并外设。如果外部存储器接口被设置在低端口并且发生一次片外且发生一次片外MOV
18、X 操作,则在该操作,则在该MOVX 指令执行期间外部存储器接口将控制有关端口指令执行期间外部存储器接口将控制有关端口引脚的输出状态,而不管交叉开关寄存器和端引脚的输出状态,而不管交叉开关寄存器和端口数据寄存器的设置如何。口数据寄存器的设置如何。4.1 端口和优先权交叉开关端口和优先权交叉开关4.1 端口和优先权交叉开关端口和优先权交叉开关8) 交叉开关引脚分配示例交叉开关引脚分配示例 例例: : 配置交叉开关,为配置交叉开关,为UART0UART0、SMBusSMBus、UART1UART1、/INT0 /INT0 和和/INT1/INT1分配端口引脚分配端口引脚(共(共8 8个引脚)。另外
19、,将外部存储器接个引脚)。另外,将外部存储器接口配置为复用方式并使用低端口。并将口配置为复用方式并使用低端口。并将P1.2P1.2、P1.3P1.3和和P1.4P1.4配置为模拟输入,以配置为模拟输入,以便用便用ADC1ADC1测量加在这些引脚上的电压。测量加在这些引脚上的电压。 4.1 端口和优先权交叉开关端口和优先权交叉开关8) 交叉开关引脚分配示例交叉开关引脚分配示例 配置步骤如下:配置步骤如下: 1按按UART0EN = 1、UART1E = 1、SMB0EN = 1、INT0E = 1、INT1E = 1 和和EMIFLE =1设置设置XBR0、XBR1 和和XBR2,则有:,则有:
20、XBR0 = 0 x05,XBR1 = 0 x14,XBR2 = 0 x06。 4.1 端口和优先权交叉开关端口和优先权交叉开关8) 交叉开关引脚分配示例交叉开关引脚分配示例 2将外部存储器接口配置为复用方式并将外部存储器接口配置为复用方式并使用低端口,使用低端口,PRTSEL = 0,EMD2 = 0 (外部存储器接口配置外部存储器接口配置EMI0CF ) P131 3将作为模拟输入的端口将作为模拟输入的端口1 引脚配置为引脚配置为模拟输入方式:设置模拟输入方式:设置P1MDIN 为为0 xE3(P1.4、P1.3 和和P1.2 为模拟输入,所以为模拟输入,所以它们的对应它们的对应P1MDI
21、N 被设置为逻辑被设置为逻辑0)。)。4.1 端口和优先权交叉开关端口和优先权交叉开关8) 交叉开关引脚分配示例交叉开关引脚分配示例 4设置设置XBARE = 1 以使能交叉开关:以使能交叉开关:XBR2= 0 x46。 5将将UART0 的的TX 引脚引脚(TX0,P0.0)、UART1 的的TX 引脚引脚(TX1,P0.4)、ALE、/RD、/WR(P0.7:3)的输出设置为推)的输出设置为推挽方式,通过设置挽方式,通过设置P0MDOUT = 0 xF1 来来实现。实现。 4.1 端口和优先权交叉开关端口和优先权交叉开关8) 交叉开关引脚分配示例交叉开关引脚分配示例 6 6通过设置通过设置
22、P2MDOUT=0 xFF P2MDOUT=0 xFF 和和P3MDOUT= P3MDOUT= 0 xFF 0 xFF 将将EMIF EMIF 端口端口(P2(P2、P3)P3)的输出方式的输出方式配置为推挽方式。配置为推挽方式。 7 7通过设置通过设置P1MDOUT=0 x00(P1MDOUT=0 x00(配置输出为配置输出为漏极开路漏极开路) )和和 P1=0 xFF (P1=0 xFF (逻辑逻辑11选择选择高阻态高阻态) )禁止禁止3 3个模拟输入引脚的输出驱个模拟输入引脚的输出驱动器。动器。 4.1 端口和优先权交叉开关端口和优先权交叉开关4.1 端口和优先权交叉开关端口和优先权交叉
23、开关4.2 端口端口4-7(仅(仅C8051F020/2) 端口端口4-7 的所有端口引脚都可用作通的所有端口引脚都可用作通用用I/O,通过读和写相应的端口数据寄存,通过读和写相应的端口数据寄存器访问每个端口,这些端口数据寄存器器访问每个端口,这些端口数据寄存器是一组按字节寻址的特殊功能寄存器。是一组按字节寻址的特殊功能寄存器。读端口数据寄存器时,返回的是端口引读端口数据寄存器时,返回的是端口引脚本身的逻辑状态。脚本身的逻辑状态。 4.2 4.2 端口端口4-7 4-7 配置无引出脚的端口配置无引出脚的端口 P4-P7P4-P7在在C8051F021/3 C8051F021/3 中没有对中没有
24、对应的引脚,但端口数据寄存器仍然存在应的引脚,但端口数据寄存器仍然存在并可为软件所用。由于数字输入通路保并可为软件所用。由于数字输入通路保持活动状态,所以建议不要将这些引脚持活动状态,所以建议不要将这些引脚处于处于“浮空浮空”状态,以避免因输入浮空状态,以避免因输入浮空为一个无效逻辑电平而导致不必要的功为一个无效逻辑电平而导致不必要的功率消耗。率消耗。 4.2 4.2 端口端口4-7 4-7 1) 配置无引出脚的端口配置无引出脚的端口 下面任何一种措施可防止这种情况出现:下面任何一种措施可防止这种情况出现: 1 设置为弱上拉。设置为弱上拉。 2 配置为推挽方式。配置为推挽方式。 3 向端口数据
25、寄存器写向端口数据寄存器写04.2 4.2 端口端口4-7 4-7 2) 配置端口引脚的输出方式配置端口引脚的输出方式 每个端口的输出方式都可被配置为每个端口的输出方式都可被配置为漏极开路或推挽方式。在推挽方式,向漏极开路或推挽方式。在推挽方式,向端口的相应位写逻辑端口的相应位写逻辑0将使端口引脚将使端口引脚被驱动到被驱动到GND,写逻辑,写逻辑1将使端口引将使端口引脚被驱动到脚被驱动到VDD。在漏极开路方式,向。在漏极开路方式,向端口的相应位写逻辑端口的相应位写逻辑0将使端口引脚将使端口引脚被驱动到被驱动到GND,写逻辑,写逻辑1将使端口引将使端口引脚处于高阻状态。脚处于高阻状态。 4.2 4.2 端口端口4-7 4-7 3) 配置端口引脚为数字输入配置端口引脚为数字输入 通过设置输出方式为通过设置输出方式为“漏极开路漏极开路”并向端口数据寄存器中的相应位写并向端口数据寄存器中的相应位写1将端口引脚配置为数字输入。将端口引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论