打印

pic 16f886 主程序运行不正确,是不是跟配置字有关系?

[复制链接]
3158|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kiuo|  楼主 | 2012-7-8 23:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
电路图如图,现在我程序里面没有配置字,直接宏定义一下就上主程序了
void main()
{
     initial();
     RA0 = 1;
     RA1 = 0;
     delay_1ms(2000);
     RA0 = 0;
     RA1 = 1;
     delay_1ms(2000);
}
就这样执行到
     RA0 = 0;
     RA1 = 1;
的时候,下面的延时函数直接被跳过程序又从头来,像是被复位的样子,但是我不能确定。单独设定RA0RA1没有问题,要改变一下就不行。求教啊各位大侠

19.jpg (56.29 KB )

19.jpg
沙发
0蛋骗鸡0| | 2012-7-8 23:50 | 只看该作者
没关看门狗吗?配置字里关WTDDIS

使用特权

评论回复
板凳
kiuo|  楼主 | 2012-7-9 00:33 | 只看该作者
2# 0蛋骗**0 现在是RA0 = 1;
     RA1 = 0; 保持两秒以后这两个io口的电平都会变化一下但是很快又变回原来的电平,我用万用表测量也只是电压跳动一下。看门狗不是最大时间17ms的,那我想如果是看门狗复位的话直接在第一个延时的时候就复位了。不会保持两秒左右电压才跳一下吧

使用特权

评论回复
地板
yewuyi| | 2012-7-9 08:45 | 只看该作者
配置字是必须的

使用特权

评论回复
5
asspeed| | 2012-7-9 09:13 | 只看该作者
LZ的整个main函数就是这样的???

使用特权

评论回复
6
kiuo|  楼主 | 2012-7-9 10:02 | 只看该作者
那不知道我该怎么配置呀?能不能给个例子? 4# yewuyi

使用特权

评论回复
7
kiuo|  楼主 | 2012-7-9 10:03 | 只看该作者
嗯。我测试用的,想看看能不能改变io口的输出电平,结果改变电平以后立马就会被拉回原来的电平 5# asspeed

使用特权

评论回复
8
figo20042005| | 2012-7-9 10:09 | 只看该作者
你初始化IO怎么设置,你的WDT配置字怎么设置

使用特权

评论回复
9
kiuo|  楼主 | 2012-7-9 10:29 | 只看该作者
void initial()
{

OSCCON = 0x77;

C1ON = 0;

C2ON = 0;

TRISA0 = 0;

TRISA1 = 0;

setPORTA;

setPORTB;

setPORTC;

ANSEL = 0x1C;

ANSELH = 0x03;

INTCON = 0xD0;

PIE1 = 0x4C;

PIE2 = 0x09;

PIR1 = 0x00;

PIR2 = 0x00;

CCP1CON = 0x05;

CCP2CON = 0x05;

ADCS0 = 0;

ADCS0 = 1;

ADCON1 = 0xB0;


}


WDT禁用的 8# figo20042005

使用特权

评论回复
10
0蛋骗鸡0| | 2012-7-9 15:13 | 只看该作者
建议楼主买一本PIC 16系列入门的书看看,里面的例子程序跟着跑一跑,弄清楚配置字的问题

使用特权

评论回复
11
baoshi_libo| | 2012-7-9 21:21 | 只看该作者
没有while(1)死循环,会不断软复位的

使用特权

评论回复
12
0蛋骗鸡0| | 2012-7-10 11:40 | 只看该作者
楼上正解

使用特权

评论回复
13
kiuo|  楼主 | 2012-7-10 13:51 | 只看该作者
现在可以了,但是我debug正常,让单片机自己上电运行他就不动了   __CONFIG_ADDR(0x60F4);                   //寄存器CONFIG1配置
   __CONFIG_ADDR2(0x3FFF);                   //寄存器CONFIG2配置

这样的配置可以吗?11# baoshi_libo

使用特权

评论回复
14
kiuo|  楼主 | 2012-7-10 13:52 | 只看该作者
谢谢,后来看了一下是复位的问题,外围电路接了负载就会不停的复位。现在去掉了负载可以正常debug,但是上电运行就不动了 12# 0蛋骗**0

使用特权

评论回复
15
liu0000feng| | 2012-7-10 15:14 | 只看该作者
一定要配置字

使用特权

评论回复
16
kiuo|  楼主 | 2012-7-13 09:35 | 只看该作者
__CONFIG_ADDR(0x20C4);                  
   __CONFIG_ADDR2(0x3FFF);
这是我配置的两个语句,MCLR作为外部复位。上电以后程序不运行,这个脚接地一下就能正常运行了,得要怎么弄才好?我加了0.1uf和10uf电容都不行。 15# liu0000feng

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

33

帖子

1

粉丝