專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

再次搬運(yùn)原作—STC冷啟動(dòng)下載器

作者:萬致遠(yuǎn)   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年09月14日   【字體:

這個(gè)玩意其實(shí)很簡單的。就是靠監(jiān)控MCU檢測到STCISP開啟時(shí)發(fā)送的0x7F,然后重啟。

我的設(shè)計(jì)是接到10個(gè)連續(xù)的0x7F然后重啟MCU。因?yàn)樵趧e的波特率下可能會(huì)有不連續(xù),類似0X7F的波形出現(xiàn)。為了避免誤重啟。所以需要連續(xù)的。

上代碼:http://www.torrancerestoration.com/f/1stc2.zip

先上電路圖。

然后就是艱苦(?)的制作過程了。

先在Eagle里面Layout……

然后拿起洞洞板……裁出一小塊……飛線……

反面

上正面,監(jiān)控芯片STC15F104E,調(diào)整到11.0592M RC 振蕩器

上面的燈作為電源指示。收到信號(hào)后將斷開鏈接,也就是閃下。

插在板子上的效果:

hwconfig的代碼是:

#include <at89x52.h>
//設(shè)置
#define BAUD_RELOAD 		0xFD //9600Baud
#define START_CMD_NUMBER	10	//接受到連續(xù)X個(gè)7F就重啟STC單片機(jī)
#define PW_SWITCH			P3_4 //P3_4控制8550電源開關(guān)
#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會(huì)因?yàn)镸OVX,MOVP2指令不停復(fù)位!(BUG)
//#define BAUD	 0xF400 	 // 2400bps @ 22.1184MHz
#define BAUD	 0xFA00 	// 2400bps @ 11.0592MHz
//#define BAUD	 0xFD00 	// 4800bps @ 11.0592MHz
__sfr	__at 0x8E			AUXR;

萬致遠(yuǎn)原創(chuàng)。這里是這個(gè)東東的第二版http://www.torrancerestoration.com/mcu/1576.html

關(guān)閉窗口

相關(guān)文章