|
编程器: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
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|