STC12C5A60S2单片机IO口工作…

STC12C5A60S2单片机IO口工作模式设定
  STC12C5A60S2 系列单片机其所有I/O口均可由软件配置成4种工作类型之一。4种类型分别为:准双向口(标准8051 输出模式)、推挽输出、仅为输入(高阻)或开漏输出功能。
     每个口由2个控制寄存器中的相应位控制每个引脚工作类型。
     STC12C5A60S2系列单片机上电复位后为准双向口(传统8051的I/O口)模式。2V以上时为高电平,0.8V以下时为低电平。

I/O口工作类型设定
PxM1[7:0]  PxM0[7:0]    I/O 口模式
                       准双向口 (传统 8051I/O口模式 ),灌电流可达20mA, 拉电流为230uA
                       推挽输出 (强上拉输出, 可达20mA, 要加限流电阻)
                       仅为输入 (高阻)
                       开漏 (Open Dra in), 内部上拉电阻断开, 要外加

注意:
  虽然每个I/O口在弱上拉时都能承受20mA的灌电流(还是要加限流电阻,如 1K,560Ω等),在强推挽输出时都能输出20mA的拉电流(也要加限流电阻),但整个芯片的工作电流推荐不要超过55mA。即从MCU-VCC流入的电流不超过55mA,从MCU-GND流出电流不超过55mA,整体流入/流出电流都不能超过55mA.

介绍一个宏定义: _BIN
做用是给寄存器的每个位赋值,比如:
   ADC_CONTR = _BIN(1,0,0,0, 1,0,0,0);
就是给ADC_CONTR寄存器的第7位和第3位赋值1,其他位为0。 括号中的参数依次为第7位~第0位

在TF卡程序中,若将SPI口设置成推挽(强上拉)输出,就可以这样写:
   P1M1 = _BIN(0,0,0,0,0,0,0,0);
   P1M0 = _BIN(1,1,1,1,1,1,1,1);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值