stcisp一直检测单片机_三种方法对比:STC51单片机实现免冷启动
具體實現(xiàn)方法實踐可用的無外乎三種:
1)使用CH340的DTR和RTS控制單片機斷電再上電。點上位機下載按鈕的時候,DTR和RTS引腳電平變化。
2)再使用一個單片機,檢測串口下載命令流。
3)在程序中控制IAP_CONTR同時在上位機進行相應的設置.
第三種屬于軟件實現(xiàn),這里就不再贅述了,下面主要看前兩種的硬件實現(xiàn)。
利用CH340的DTR和RTS引腳先用示波器看一下,點擊STCISP的下載按鈕時CH340G的RTS和DTR引腳的變化。
意思大概是這樣:
直觀思路呢,就是利用RTS或者DTR的一個。利用他們的下降沿觸發(fā)一個信號,控制單片機斷電,然后一定時間后再通電,這個不就是硬件的冷啟動了嘛!不需要再按開關(guān)了。
那么這樣的一個信號是什么信號呢?
單穩(wěn)態(tài)!
實現(xiàn)電路如下:
利用單片機冷啟動的原因直白來說,也只有單片機在重新上電的時候會去檢測是否有合法數(shù)據(jù)流,有進入ISP下載模式,沒有執(zhí)行程序。
STC單片機有內(nèi)部代碼復位到下載程序,但是需要每一個軟件中都要添加該程序段,并且會占用單片機內(nèi)部資源,在寫程序時也會產(chǎn)生不必要的麻煩,故而采用硬件自動重新上電(自動冷啟動)的方式。– 也就是我上面介紹的第三種方法。
電路圖如下:
MCU程序參考如下:
←左右滑動,查看代碼→
#include ? ?//STC15F104頭文件
#define uint unsigned int? ? ? ? //宏定義
#define uchar unsigned char
/****單片機I/O功能聲明*******************/
sbit DYKZD=P3^4;? ? ? ? ?//電源控制端
sbit? XZXHD=P3^3;? ? ? ?//下載信號檢測端
sbit INT1? = P3^3;? ? ? ? //設置中斷管腳
uchar x;? ? ? ? ? ? ? ? ? ? ? ? //下載信號低電平個數(shù)
/****初始化******************************/
void init()//初始化子函數(shù)
{
DYKZD=0;? ? ? ? ? ? ? ? ? ? //電源控制端打開
XZXHD=1;
INT1= 1;
IT1= 1;? ? ? ? ? ? ? ? ? ? ? ? ?//設置INT1的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
EX1= 1;? ? ? ? ? ? ? ? ? ? ? ? ?//使能INT1中斷
EA = 1;? ? ? ? ? ? ? ? ? ? ? ? ?//打開總中斷開關(guān)
}
/****延時函數(shù)****************************/
void delayms(uint xms)
{
? ? uint i,j;
? ? for(i=xms;i>0;i--)
? ? for(j=110;j>0;j--);
}
/****外部中斷ITN1************************/
void exint1() interrupt 2
{
? ? x++;
}
/****主程序******************************/
void main()?
{
? ? init();
? ? while(1)
? ? {
? ? ? ? if(x>10)
? ? ? ? {
? ? ? ? ? ? DYKZD=1;
? ? ? ? ? ? delayms(100);
? ? ? ? ? ? DYKZD=0;
? ? ? ? ? ? delayms(60000);
? ? ? ? ? ? x=0;
? ? ? ? }
? ? }
}
結(jié)? 語三種方法介紹完了,好壞至少得對比下:
純硬件的實現(xiàn),一個需要555,另一個需要一個8個的單片機,并且還得燒程序。相比之下555還便宜點,這種方案更好點。
軟件的就不說了,占內(nèi)存,所以首選555的那種方案。
-END-
分享一些電子工程師的必備基礎知識。
《電子基礎實訓教程》
資料上篇主要介紹了電子類的基本知識,涵蓋了電子元件的識別與測量、三極管的識別與測量、其他電子器件的介紹及常用儀表儀器的介紹;下篇主要是專業(yè)實踐技能訓練,包括了焊接技術(shù)及實踐、直流穩(wěn)壓電源的設計、印刷電路板及其設計與制作和單片機最小系統(tǒng)板設計與制作。
...
總結(jié)
以上是生活随笔為你收集整理的stcisp一直检测单片机_三种方法对比:STC51单片机实现免冷启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: md5可以解密吗_Python训练营作业
- 下一篇: aws beanstalk mysql_