原帖链接:https://www.cnblogs.com/wangh0802PositiveANDupward/archive/2012/12/28/2837766.html
弱上拉,最简单的讲法就是:比较弱的上拉。一般用在和外围器件的通讯上,比如IIC总线等,但不能用于需要驱动能力的上拉应用中。
弱上拉,推挽,开漏是3种输出方式.
当设置为弱上拉输出方式,此时各个I/O口与VDD之间约有100K电阻.如输出逻辑电平为1,则输出端有接近VDD的电平出现;如输出为0,则弱上拉电路自动关闭.当输出端处于模拟量输入状态时,弱上拉电路也会自动关闭.
当设置为漏及开路,应外接上拉电阻(10K),使I/O口输出为1时,有3.5V以上的高电平输出
当设置为推挽输出,至少可驱动20多个LS TTL门电路.可直接驱动外设接口,无须外加驱动总线的芯片(如74LS244,74LS245等),其总线驱动能力比C8051大大加强,而且灵活.
比如说做键盘扫描时用什么比较好?
你可以通过外加上拉电阻,然后连接按键到I/O口,配置为漏开
PROTB和TRISB寄存器
PORTB是8位宽度的双向端口。相应的数据由TRISB决定,方法用端口A。
端口B的每一个引脚都具有内部弱的上拉电阻。通过一个控制位可以打开所有上拉电阻。这可通过对OPTION<7>RBPU位的置1,清0来控制。当端口引脚配置成输出时,内部弱上拉电阻被自动关闭。上位是 端口需要的。PORTB的4个引脚RBT~RB4具有信号改变中断的功能,只要将这几个引脚配置为输入,就可能引起中断的发生。在输入方式下,引脚的位与最后一次读PORTB的值进行比较,这四个引脚中有任何一个或多个不相同,产生RBIF中端(置INTCON<0>)。这个中断可能将 器件由SLEEP状态下唤醒。用户在中断服务程序中可以用这样的两个方法之一来清除中断。①通过清0RBIE(INT CON<3>位)关闭中断,② 读端口B,则清0 RBIF位。
不相等的条件将继续配置1RBIF位为止。读PORTB将结束不相等条件,并允许RBIF被清0。这一特征为软件可配置上拉一起允许用户非常容易的使用PORTB作为键盘输入的接口。也就可以通过按键来唤醒系统。
注意:如果正在执行敛僮鳎琁/O引脚改变了信号,RBIF中断标志不可能被置成1。
建议用改变信号中断作为按键唤醒操作,PORTB只不用改变信号中断,建议不要用查询方式。图4-7是用端口作键盘接口的原理图其R1为ESD保护而新选择的电阻。使用此接口时,通过软件选择保持内部上拉,即RB4~RB7为高,设置为输入方式。RB0~RB3输出。任何键被按下,RB4~RB7的某一根线将改变从而产生中断。这个中断可以唤醒芯片,用这种方法可以节省计时器资源。 我们为什么要使用拉电阻:
一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。
数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!
一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I /O端口的输出类似与一个三极管的C,当C通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,如果该端口正常时为高电平,C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平.比如:当一个接有上拉电阻的端口设为输如状态时,他的常态就为高电平,用于检测低电平的输入
|