第3章 数字输入/输出端口,3.1 STC12C5A60S2单片机的I/O口及工作模式,STC12C5A60S2单片机共有6个I/O端口,44根I/O口线: P0口(8根):P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7 P1口(8根):P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7 P2口(8根):P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、P2.6、P2.7 P3口(8根):P3.0、P3.1、P3.2、P3.3、P3.4、P3.5、P3.6、P3.7 P4口(8根):P4.0、P4.1、P4.2、P4.3、P4.4、P4.5、P4.6、P4.7 P5口(4根):P5.0、P5.1、P5.2、P5.33.1.1 STC12C5A60S2单片机的I/O口,复用功能,1、P0口 P0口的作用有2个: (1)用作数据总线或者地址总线低8位 (2)用作I/O2、P2口 P2口的作用有2个: (1)作为高8位地址指针(DPH)输出 (2)作为通用I/O口使用3、P1口复用为ADC转换输入、捕获/比较/脉宽调制、SPI通信线、第二串口或者第二时钟输出,如表3-1所示。
表3-1 P1口的复用功能,4、P3口 P3口的口线可复用为外部中断输入、计数器输入、时钟输出、第一串口和外部总线的读/写控制,如表3-2所示表3-2 P3口的复用功能,,,,,5、P4口 P4口的某些口线具有复用功能,可配置为SPI通信线、捕捉/比较/脉宽调制、第二串口线等,如表3-3所示表3-3 P4口的复用功能,,,P4.4、P4.5和P4.6的第二功能由特殊功能寄存器P4SW(地址为BBH,复位值为X000XXXXB)设置, P4SW的各位定义如下:,,,,,,(1)NA /P4.4引脚控制位 0:NA/P4.4脚是弱上拉,无任何功能 1:将NA/P4.4脚设置成I/O口(P4.4) (2)ALE_P4.5:ALE/P4.5引脚控制位 0:ALE/P4.5脚是ALE信号CPU用MOVX指令访问片外存储器时,ALE输出信号的下降沿作为16位地址信号低8位的锁存信号 1:将ALE/P4.5脚设置成I/O口(P4.5) (3)LVD_P4.6:EX_LVD/P4.6引脚控制位 0:EX_LVD/P4.6是外部低压检测脚,可使用查询方式或设置成中断来检测 1:将EX_LVD/P4.6脚设置成I/O口(P4.6)。
RST/P4.7引脚在ISP下载程序时选择是复位脚还是P4.7口,如设置成P4.7口,必须使用外部时钟由AUXR1寄存器设置PCA/PWM、SPI和UART2功能是在P1口还是在P4口AUXR1寄存器(地址为A2H,复位值为X00000X0B)的各位定义如下:,PCA_P4:PCA/PWM控制位 0:PCA/PWM在P1口 1:将PCA/PWM从P1口切换到P4口 SPI_P4:SPI控制位 0:SPI在P1口 1:将SPI从P1口切换到P4口 S2_P4:UART2控制位 0:UART2/串口2在P1口 1:将UART2/串口2从P1口切换到P4口 GF2:通用标志位该位是由用户定义的一个状态标志 ADRJ:用于设置ADC转换结果的存储格式(详见第十章) DPS:数据指针选择位STC12C5A60S2单片机具有两个16位的数据指针:DPTR0和DPTR1当DPS=0时,选择DPTR0;DPS=1时,选择DPTR1STC12C5A60S2单片机的所有I/O 口均可由软件配置成4种工作模式之一: 准双向口(标准8051单片机输出模式) 推挽输入输出 仅为输入(高阻)或开漏输出功能。
每个口的工作模式由2个控制寄存器中的相应位控制(PnM0和PnM1,n=0,1,2,3)表3-3 I/O口工作模式设置,3.1.2 STC12C5A60S2单片机I/O口的工作模式,例如,若设置P1.7为开漏,P1.6为强推挽输入输出,P1.5为高阻输入,P1.4、P1.3、P1.2、P1.1和P1.0为弱上拉,则可以使用下面的代码进行设置: MOV P1M1,#10100000B MOV P1M0,#11000000B,虽然STC12C5A60S2单片机的每个I/O口在弱上拉时都能承受20mA的灌电流 (还是要加限流电阻,如1K),在强推挽输出时都能输出20mA的拉电流 (也要加限流电阻),但整个芯片的工作电流推荐不要超过120mA3.2 STC12C5A60S2单片机I/O口的结构,1准双向口工作模式的结构,,准双向口工作模式下,I/O口可用作输出和输入功能而不需重新配置口线输出状态2推挽输入输出工作模式的结构,,一个I/O位工作于推挽输入输出工作模式时,若输出高电平,拉电流最大可达20mA;若输出低电平,灌电流也可达20mA3仅为输入(高阻)工作模式的结构,输入口带有一个施密特触发输入以及一个干扰抑制电路。
注意,仅为输入(高阻)工作模式下,I/O口不提供20mA灌电流的能力4开漏输出工作模式的结构,,当口线锁存器为“0”时,开漏输出关断所有上拉场效应管当作为一个逻辑输出时,这种配置方式必须有外部上拉电阻,一般通过电阻外接到Vcc这种方式的下拉结构与准双向口模式的下拉结构相同 开漏端口带有一个施密特触发输入以及一个干扰抑制电路 这种工作模式下,输出低电平时,灌电流也可达20mA3.3 STC12C5A60S2单片机I/O口的使用,1P4口和P5口的使用,,对STC12C5A60S2单片机P4口和P5口的访问,如同访问常规的P0/P1/P2/P3口一样,并且均可按位寻址,P4的地址C0H,P5口的地址在C8H2上拉电阻的连接,3拉电流方式和灌电流方式,,在实际使用时,应尽量采用灌电流方式,而不要采用拉电流方式,这样可以提高系统的负载能力和可靠性4典型的三极管控制电路,,当I/O口工作于准双向口时,由于STC12C5A60S2单片机是1个时钟周期(1T)的8051单片机,速度很快,如果通过指令执行由低变高指令后立即读外部状态,此时由于实际输出还没有变高,有时可能读入的状态不对这种问题的解决方法是在软件设置由低变高后加1到2个空操作指令延时,然后再读I/O口的状态。
5I/O外部状态的输入,,,STC12C5A60S2单片机的典型工作电压为5V,与3V器件连接时,为了防止3V器件承受不了5V电压,可将相应的I/O口设置成开漏工作模式,断开内部上拉电阻,相应的I/O口外部加10K上拉电阻到3V器件的Vcc这样,高电平是3V,低电平是0V,可以保证正常的输入输出6与3V器件的连接,,7I/O口驱动LED数码管,,,共阴极,共阳极,8如何让I/O口上电复位时控制输出为低电平,,有两种解决方法: (1)通过硬件实现高低电平的逻辑取反功能 (2)由于STC12C5A60S2单片机既有弱上拉输出模式又有强推挽输出模式,可在单片机I/O口上加一个下拉电阻(1K、2K或3K),这样上电复位时,虽然单片机内部I/O口是弱上拉/高电平输出,但由于内部上拉能力有限,而外部下拉电阻又较小,无法将其拉高,所以该I/O口上电复位时外部输出为低电平思考题,简述STC12C5A60S2单片机I/O口的作用 简述STC12C5A60S2单片机的各个数字输入/输出端口的工作模式及结构 如何设置STC12C5A60S2单片机I/O口的工作模式?若设置P1.7为强推挽输出,P1.6为开漏,P1.5为弱上拉,P1.4、P1.3、P1.2、P1.1和P1.0为高阻输入,应如何设置相关寄存器? 使用STC12C5A60S2单片机的I/O口应注意哪些问题?,。