该电路类似于(1)单管共射放大电路直流通路(2)非门电路(拓展一下,这两个电路和本文无关) (1)当没有输入时,三极管基极电流为0,三极管截止(不导通),电压通过上拉电阻R传导给I/O口输出高电平即out为高电平,则第一张图LED不发光。如图:
这是protues仿真时运行的程序,GPIO默认输出高电平(红点代表高电平) (2)当有输入时,三极管基极电流不为0,三极管处于放大状态(为什么处于放大状态:这是由于基极电阻和上拉电阻共同决定的,芯片厂商已经设计好,不用管) 此时IO口输出的电压为Vcc-I(e)*R≈0,即输出低电平,这样第一张图的LED就发光了。 以上就是上拉电阻的作用了,可以使IO即输出低电平也可以输出高电平。 (3)注:特别注意!!!in口有输入并不代表给I/O口赋值为1,同样,in口没有输出并不代表给I/O口赋值为0,赋值只是起到触发作用,可能里面有触发器(个人猜测)
|