编程器:PICKIT3官方零售版(带板五百多买来的)
烧写芯片型号:PIC12F675
软件: IDE V8.5
烧录正常前熔丝配置位:
//开数据保护,代码保护,关掉电复位,关外部复位,关上电复位,关看门狗,内部振荡器
__CONFIG(CPD & PROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO); //12F675
无法使用前更改的熔丝:
//开数据保护,代码保护,关掉电复位,关外部复位,关上电复位,关看门狗,内部振荡器加输出
__CONFIG(CPD & PROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTCLK); //12F675
更改后编译进行编程后就把芯片挂了,
第一块的现象是:
The target has invalid calibration data (3fff).
无法识别了。
修改回来再编译,把芯片也换了一个后编程正常,
更改后再编译进行芯片编程又挂了,
这回显示的是:
Programming...
The following memory regions failed to program correctly:
Program Memory
Address: 00000000 Expected Value: 00000183 Received Value: 00000000
Programming failed
使用其它的编程器也不能进行编程和擦除了!
求解。。。。。。。。
我把代码黏上来。
代码内容是用一个IO模拟串口发一个数据的实验!
串口波特率9600。
#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
uchar RXD;
//开数据保护,代码保护,关掉电复位,关外部复位,关上电复位,关看门狗,内部振荡器
__CONFIG(CPD & PROTECT & BORDIS & MCLRDIS & PWRTEN & WDTDIS & INTIO); //12F675
void delay_u(uchar y) //4M时钟,5uS延时
{
while(y--);
}
void delay_S(uint tx)
{
uint ta,tb;
for(ta=tx;ta>0;ta--)
for(tb=110;tb>0;tb--);
}
void init()
{
TRISIO =0b00111101; //串口TX=GP1
CMCON = 0x07; //关闭内部比较器
INTCON = 0x00; //关闭所有中断
GPIO1 = 1; //拉高GP1/TXD
}
uchar WTXD(uchar TXD) //写串口
{
uchar TO;
TO = 8;
GPIO1 = 0; //GP1为TXD输出
delay_u(16);
NOP();
NOP();
while(TO--)
{
NOP();
GPIO1 = (bit)(TXD&0x01); //写入一位
delay_u(16);
TXD = TXD >> 1;
}
GPIO1 = 1; //TXD发送完后释放
}
void main()
{
init();
while(1)
{
WTXD(0x55);
delay_S(1000);//延时1S
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>