上图为原理电路
是否上拉 | DDRB状态 | PORTB状态 | PB0电压 | LED电压 |
不上拉 | 0x01 | 0x01 | 4.56v | 1.87v |
上拉 | 0x00 | 0x01 | 1.69v | 1.63v |
不上拉 | 0x00 | 0x00 | 0v | 0v |
不上拉 | 0x01 | 0x00 | 0v | 0v |
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
对于AVR单片机来说,它的的IO口是真正的双向IO口,它的上拉电阻的设置只有一种情况,如上表所示DDRB=0x00 PORTB="0x01",这时如果外部电路给引脚输入高电平,由于COMS门没有导通,所以端口是高阻状态,如果外部电路输入的是低电平,那么COMS导通,电阻上拉,引脚会从单片机内部输出一电流,所以对于上面的电路来说二极管的电压是1.69v,会比1.87v的时候暗,这就是由于上拉电阻的作用。但是不管在任何时候引脚的状态都可以通过PINB读出,因为PINB本身不是一个寄存器,
上图是ATMega16的IO口电路,可以结合上表弄明白AVR单片机的IO口究竟是怎样的。
文章评论(0条评论)
登录后参与讨论