carbonincauc 发表于 2013-4-19 18:04:47

新手求助ATtiny 13A IO问题!!

最近我才开始学习AVR单片机,最近正好一个小项目上需要使用。但是在使用的过程中发现一些问题,很是困扰。

这个单片机的目的很简单,就是在PB3,PB4有任意一端口有输入的时候,PB0会输出高电平。
于是我尝试着写了一个简单的程序,但是在面包板上测试的过程中发现,VCC和GND接好,然后用杜邦线把VCC和(PB3或PB4)接上,会发现PB0正常输出5V,马上断掉(PB3或PB4)的输入,这时PB0应该输出为0,但是实际输出PB0在2.8~3.5V跳动,最后稳定在2.8v左右。
于是查询了一下ATtiny 13A的原理图,发现IO里有一个电容Cpin,我在疑问,到底我应该怎么得到PB0输出为0的结果?求助各位老师!!
附:原理图


附2:程序:
   #include <iot13v.h>
#include <macros.h>
void main(void)
{DDRB|=(1<<0);//定义pb0输出,且开始输出为低电平
PORTB&=~(1<<0);
DDRB&=~(1<<3);//将pb3,pb4设置为输入,并且开启上拉电阻
DDRB&=~(1<<4);
PORTB|=(1<<3)&(1<<4);
while(1)                                          
{switch(PINB&0x18)
   { case 0x18:
             PORTB=0x01;
               break;
    case0x10:
          PORTB=0x01;
                break;
        case0x08:
          PORTB=0x01;
                break;
    case 0x00:
             PORTB=0x00;//测试使用
               break;
    }
}

}

xinhoujue 发表于 2013-4-21 20:20:39

{:lol:}换个马甲我也认识你~~~~~
一个简单的端口初始化你都会写错啊,真服了你啦!

zhujinliang2124 发表于 2013-4-21 20:30:37

PORTB|=(1<<3)&(1<<4);
应该是PORTB |= ((1<<3) | (1<<4));

maxims 发表于 2013-4-21 20:39:27

{:3_44:}学习了

carbonincauc 发表于 2013-4-21 21:20:53

xinhoujue 发表于 2013-4-21 20:20 static/image/common/back.gif
换个马甲我也认识你~~~~~
一个简单的端口初始化你都会写错啊,真服了你啦! ...

我就这一个号啊。。不是马甲,之前是分开写的。。。后来合着写了。。也没太注意,。感谢指正。。

carbonincauc 发表于 2013-4-21 21:21:32

zhujinliang2124 发表于 2013-4-21 20:30 static/image/common/back.gif
PORTB|=(1

感谢指正。。下次注意。

zhujinliang2124 发表于 2013-4-22 08:21:00

carbonincauc 发表于 2013-4-21 21:21 static/image/common/back.gif
感谢指正。。下次注意。

头像香香和渚薰?
页: [1]
查看完整版本: 新手求助ATtiny 13A IO问题!!