pic16F506 io配置为普通的io口。不是只配置TRISB为1为输入 0输出。
我的IO怎么不听话啊。送高低电平不能控制。
不知道LZ是哪个I/O, 如果是可以作为模拟输入的,要先配置成数字功能,缺省是模拟功能;另外,如果是别的端口,看看是不是启动了第二功能。
难道你工作在软件仿真模式?
这个要先在Debugger->Select tool->选择编程工具,不要选成了Maplab SIM. 然后再programming,再debugging.
另外,要正确设置芯片的配置字。你可以找一个现成的例子参考。
Debugger->Select tool->选择编程工具Maplab ICD2程序烧录...Programming succeeded.我的是内晶振的要不要设置什么.感觉程序没烧进一样.没工作.
试试先Debugger->clear memory->all memory or programm memory,然后programming.
另外,找个例子程序试试。Microchip的东西bug比较多,包括IDE. 祝你好运。
内部晶振是需要设置配置字的,这个比较麻烦,找个例子参考一下。
Configure->Configure Bits里面就是设这些的,如果在这里设置不要钩选Configuration Bits set in code; 否则需要在代码中设置这些配置字。
安装编译器的目录应该有,另外Microchip的网站上也应该有的。
我用了一个单独只做IO的脚试了下.我RC3设置0时用万用表测出为0.设置RC3设置1时我0.6V左右.
没有工作,把代码贴出来看看吧。不知你的硬件是不是在正常工作。 你使用的是下载的例子程序吗?
main()
{
while(1)
{
OPTION = 0x02;//8分频给TIMER0,内部时钟
TRISC = 0x00;//设置C口1为输入 0输出
TRISB = 0x00;//设置B口1为输入 0输出
RB4 = 1;
RC0 = 1;
RC1 = 0;
RC2 = 0;
RC3 = 1 ;
}
}
没正常工作。另外,看看是不是在不停复位,看门狗缺省是启动的。
Configure BIT 中Watchdog Timer Enable 我选择了Disabled
硬件是没问题的.我怀疑这个设置错了. OPTION = 0x02;//8分频给TIMER0,内部时钟
应该不是你说的问题,这个无非是定时器时钟慢一些而已。 可能芯片没有工作。单跟踪看看吧,希望能找到原因。最后是找一个例子试试,这样保证软件和配置字是正确的。
如果现成的例子都不工作,那就是硬件的问题了。
我看别人的程序那样是读AD样.好象要设置ADCON0
把别人无关的代码注释掉,然后把自己相关的代码写到函数里面就可以了。
不使用AD就不需要配置那些。