DDRC=0x00;C口设置输入
DDRB=0xFF;b口设置输出
PORTC=0xFF;使用上拉电阻
temp=PINC;
PORTB=temp;
其中给c口输入方波,按理可以在b口看到方波,可惜,啥都没有,请各位大侠帮忙
不上拉也不行,我用 所有引脚都输出方波来测试avr的引脚,都能检测到方波,所以脚坏的可能性不大
AVR高手请进,问一个简单的IO口问题,急,重重有赏!!!!
答案:4 悬赏:50
解决时间 2021-02-27 03:36
- 提问者网友:他的思颖
- 2021-02-26 05:59
最佳答案
- 二级知识专家网友:有钳、任性
- 2021-02-26 07:32
引用二楼:“avr芯片刚买来时C口是用做JTAG的,没法做io口用,必须把JTAG禁用了。 ”
我也是用JTAG口仿真的,PORTC端口剩下的四个I/O口照样可以作键盘输入,我的电路就是这样用的,事实胜于雄辨。
kennyliang1021:
以上几行的代码应该是没有问题的,问题可能是在硬件或在程序的其他地方,你最好把整个程序贴上来让大家帮你分析一下会比较好。我这几天也会帮你关注一下这个问题,以最快的速度给你做回答补充。
我在你的代码上加了几句,你可以在主程式里面试一下,看行不行了。
main
{
while(1)
{
uchar temp;//定义temp为uchar型
DDRC=0x00; //C口设置输入
DDRB=0xFF; //b口设置输出
PORTC=0xFF; //使用上拉电阻
temp=PINC; //
PORTB=temp; //;
}
}
我也是用JTAG口仿真的,PORTC端口剩下的四个I/O口照样可以作键盘输入,我的电路就是这样用的,事实胜于雄辨。
kennyliang1021:
以上几行的代码应该是没有问题的,问题可能是在硬件或在程序的其他地方,你最好把整个程序贴上来让大家帮你分析一下会比较好。我这几天也会帮你关注一下这个问题,以最快的速度给你做回答补充。
我在你的代码上加了几句,你可以在主程式里面试一下,看行不行了。
main
{
while(1)
{
uchar temp;//定义temp为uchar型
DDRC=0x00; //C口设置输入
DDRB=0xFF; //b口设置输出
PORTC=0xFF; //使用上拉电阻
temp=PINC; //
PORTB=temp; //;
}
}
全部回答
- 1楼网友:我叫很个性
- 2021-02-26 11:48
你不设上拉看看
你调试的时候跟踪一下PINC和PORTB,你用的是jtag还是isp?看看是输入问题还是输出问题,或者是取PINC状态的时候改变了?
- 2楼网友:甜野猫
- 2021-02-26 10:11
avr芯片刚买来时C口是用做JTAG的,没法做io口用,必须把JTAG禁用了。
- 3楼网友:修女的自白
- 2021-02-26 08:39
9
void timer1_ovf_isr(void)
{
portb &=~0x01。
就是&=~和|=的操作。
你也可以用宏;/
}
#pragma interrupt_handler timer1_ovf_isr;compare occured tcnt1=ocr1a
portb |=0x01;
}
1&1=1
1&0=0
保持不变
0&1=0
0&0=0
清零了
你思考下就知道了,但是这样移植性就差点void timer1_compa_isr(void)
{
/
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯