TOTOROhua 发表于 2016-9-20 11:13:11

PIC16F1788 仿真可以,烧录不运行

MAPLAB X   XC8用的pickit3 ,仿真都可以,但是一旦用program   芯片却不走。配置字如下:
#pragma config FOSC = INTOSC    // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON       // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config CPD = OFF      // Data Memory Code Protection (Data memory code protection is disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = ON      // Internal/External Switchover (Internal/External Switchover mode is enabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled)
                               
                                // CONFIG2
#pragma config WRT = OFF      // Flash Memory Self-Write Protection (Write protection off)
#pragma config VCAPEN = OFF   // Voltage Regulator Capacitor Enable bit (Vcap functionality is disabled on RA6.)
#pragma config PLLEN = ON       // PLL Enable (4x PLL enabled)
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = HI      // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), high trip point selected.)
#pragma config LPBOR = ON       // Low Power Brown-Out Reset Enable Bit (Low power brown-out is enabled)
#pragma config LVP = ON         // Low-Voltage Programming Enable (Low-voltage programming enabled)

内部晶振,没有开狗,实在无法理解 为啥MCU不运行。。。。
主程序就很简单就是0.5s LED亮灭,仿真都是OK的

wwkkww 发表于 2016-9-20 12:07:07

硬件电路上的复位脚是如何处理的,有没有接外围器件还是其他处理?

TOTOROhua 发表于 2016-9-20 12:23:34

wwkkww 发表于 2016-9-20 12:07
硬件电路上的复位脚是如何处理的,有没有接外围器件还是其他处理?

直接一个10k上拉到VCC
LVP=1,MCLRE=1;使能MCLR

手册如下:
MCLR 使能且引脚保持低电平时,器件保持在复位状
态。MCLR引脚通过内部弱上拉连接到 VDD。

wwkkww 发表于 2016-9-20 12:40:35

可以先把复位脚配置成普通IO口试试,看是不是复位引起的,还有就是电源处理,单片机VCC与GND的退耦电容,可以挂示波器看看上电启动时电源的波形,捕捉下

TOTOROhua 发表于 2016-9-20 12:49:37

wwkkww 发表于 2016-9-20 12:40
可以先把复位脚配置成普通IO口试试,看是不是复位引起的,还有就是电源处理,单片机VCC与GND的退耦电容,可 ...

PICKIT3 烧录口

ICSPDAT----PB7
ICSPCLK----PB6
这两个编程口我设置输入对吗?

我发现只要镊子搭在ICSPDAT----PB7上程序就能运行。。。。这是啥道理?

wwkkww 发表于 2016-9-20 12:58:38

设为输入没有问题,这种原因还是检查下硬件电路,看看地线是否良好,电源电压,复位用内部复位。还有就是XC8切换项目后需要重新编译一下,下载程序后最好断开编程器,重启单片机,看是否运行

TOTOROhua 发表于 2016-9-20 13:42:44

wwkkww 发表于 2016-9-20 12:58
设为输入没有问题,这种原因还是检查下硬件电路,看看地线是否良好,电源电压,复位用内部复位。还有就是XC ...

感谢你提供的帮助,我再仔细检查下{:smile:}

duxingkei 发表于 2016-9-20 17:22:04

感觉配置字方面可能性问题有点高啊,
我一般都是直接烧进去调试的

piccode 发表于 2016-9-20 17:38:42

#pragma config LVP = OFF 试一下

TOTOROhua 发表于 2016-9-21 09:33:07

piccode 发表于 2016-9-20 17:38
#pragma config LVP = OFF 试一下

还是一样的,我已经把内部晶振频率降低到4MHz(原来是32MHz)依然是 仿真可以,烧录就不走,或者偶然走

TOTOROhua 发表于 2016-9-21 10:12:35

刚才试了吧MCLR 进制
LVP=0,MCLRE=0;
MCLR/VPP pin function is digital input; MCLR internally disabled; Weak pull-up under control of
WPUE3 bit.

居然好了,好奇怪为啥 不能MCLR复位。。。。
页: [1]
查看完整版本: PIC16F1788 仿真可以,烧录不运行