这个玩意其实很简单的。便是靠监控MCU检测到STCISP敞开时发送的0x7F,然后重启。
我的规划是接到10个接连的0x7F然后重启MCU。由于在其他波特率下或许会有不接连,相似0X7F的波形呈现。为了防止误重启。所以需求接连的。
上代码:http://www.51hei.com/f/1stc2.zip
先上电路图。
然后便是艰苦(?)的制造进程了。
先在Eagle里边Layout……
然后拿起洞洞板……裁出一小块……飞线……
不和
上正面,监控芯片STC15F104E,调整到11.0592M RC 振荡器
上面的灯作为电源指示。收到信号后将断开链接,也便是闪下。
插在板子上的作用:
hwconfig的代码是:
#include //设置#define BAUD_RELOAD 0xFD //9600Baud#define START_CMD_NUMBER 10 //接受到接连X个7F就重启STC单片机#define PW_SWITCH P3_4 //P3_4操控8550电源开关#define CRYSTAL_12M 1#define RXD P3_0 //没有串口要靠模仿#define RXB P3_0 //没有串口要靠模仿#define TXB P3_1 //没有串口要靠模仿//BAUD = 256 - SYSclk/3/BAUDRATE/M (1T:M=1; 12T:M=12)//NOTE: (SYSclk/3/BAUDRATE) must be greater than 98, (RECOMMEND GREATER THAN 110)//串口模仿部分抄STC官方程序//别的SDCC的库要运用修正板本的。不然MCU会由于MOVX,MOVP2指令不断复位!(BUG)//#define BAUD 0xF400 // 2400bps @ 22.1184MHz#define BAUD 0xFA00 // 2400bps @ 11.0592MHz//#define BAUD 0xFD00 // 4800bps @ 11.0592MHz__sfr __at 0x8E AUXR;
万致远原创。这里是这个东东的第二版http://www.51hei.com/mcu/1576.html