在推文中,我们将了STC单片机中IO的四种工作模式。忘记的老伙伴可以再去看看啊。那今天说的IO的特殊用法又是什么鬼。简单说就是因为STC单片机的IO有好多都带有复用功能,在单片机上电复位后,这些复用功能引脚的默认状态有一些特殊的规定或处理办法,若你不知晓,很有可能出现灾难性的问题,下面我们就来具体说说这些特殊的IO的用法。
在正常情况下,51单片机在上电复位后,所有IO口默认都为高电平,都工作在准双向IO模式,但是STC15系列以后的单片机出现了IO的4种工作模式,一个带有复用功能的IO在上电复位后就会出现不是准双向IO模式的情况,这些引脚在使用时就需要我们多多关照啦。
1、PWM相关的引脚
在STC15系列单片机中,于PWM2到PWM7相关的12个IO,在上电复位后,默认为高阻输入模式,需要对外输出时,需要用户通过程序将其设置为推挽输出或者是准双向IO模式。
在STC8系列单片机中,和PWM相关的所有IO复位后是准双向IO模式,用户可以在通过ISP软件烧写(下载)程序时,选择将其设置为开漏输出模式,同样用户也可以通过程序的方式设置为所需要的工作模式。
2、低电压复位引脚P2.0
在STC15系列单片机中,低电压复位引脚RSTOUT_LOW引脚大多型号是在P2.0引脚,少数型号的单片机此引脚在P1.0和P3.3引脚。该引脚上电复位后的电平,用户可以在ISP烧录(下载)程序的时候选择是高电平还是低电平。当单片机的供电电压低于门槛电压(3V单片机在1.8V左右,5V单片机在3.2V左右)时,RSTOUT_LOW引脚将会输出低电平;当单片机供电电压高于门槛电压时,在RSTOUT_LOW引脚上将会输出用户在ISP烧录(下载)程序时设定的电平。
在STC8系列单片机中,低电压复位引脚RSTCV引脚都在P2.0引脚,上电复位的初始电平可以在ISP烧写(下载)程序的时候用户自己设定。当单片机的供电电压低于1.6V时,单片机将在P2.0/RSTCV 引脚上输出高电平,只有当单片机的供电电压上升到1.6V以上后,单片机才会在P2.0/RSTCV引脚输出用户在ISP烧录(下载)程序时设定的电平状态。
3、复位引脚RST
在STC15系列单片机中,具体的型号复位引脚RST的引脚是不一样的。在STC15系列单片机中,复位引脚是可以作为普通IO口使用的,用户可以在ISP烧录(下载)程序时设置复位引脚RST的功能,当用户设置为普通IO口时,上电复位后复位引脚将灰被设置为准双向IO模式。单片机在每次上电的瞬间都会去识别用户在上一次ISP烧录(下载)程序时对RST引脚的设置,再根据用户的设置对RST复位引脚进行设置。
4、XTAL1和XTAL2引脚
在STC15系列单片机中,XTAL1和XTAL2引脚默认在P1.7和P16引脚,这两个引脚在上电复位后不一定是准双向IO模式,当这两个引脚作时钟输入或者晶振连接引脚时是高阻输入模式。具体可以通过用户在ISP烧写(下载)程序时是否选择了内部IRC时钟而定。单片机在上电的瞬间,会把这两个引脚设置为高阻输入模式,再去判断在上一次用户进行ISP烧录(下载)程序时是否选择了内部的IRC时钟,如果用户选择了内部IRC时钟,那此时单片机将会把这个IO设置为准双向IO模式,如果用户没有选择采用内部时钟,则单片机将会保持原先开始时候设置的高阻输入模式。
注意:这里选择错误将会出现不能下载程序的情况,比如用户选择了不使用内部的IRC时钟,但是单片机外部这两个时钟引脚上又没有接晶振或时钟源,这样就会出现无法下载的现象。
由于STC8单片机是不需要外部复位和外部晶振的单片机,所以复位引脚和时钟引脚对于STC8系列单片机来说不会出现特殊情况。其实STC8系列单片机就没设专门的外接复位引脚,但是设有外接时钟引脚。STC8有三个时钟源选择,内部带有时钟源选择寄存器,时钟控制寄存器等和时钟相关的寄存器来选择及其控制,所以在时钟引脚上将不会出现特殊情况,故在此我们没做说明。