<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機一鍵下載相關(guān)

51單片機一鍵下載相關(guān)

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏

void tm0() interrupt 1 using 1
{
if(RING)
{
if(--RCNT == 0)
{
RCNT = 3;//復位接收波特率計數器
if(--RBIT == 0)
{
RBUF = RDAT;//保存數據到RBUF
RING = 0;//停止接收
REND = 1;//接收完成標志
}
else
{
RDAT >>= 1;
if(RXB)RDAT |= 0x80; //RX數據轉移到RX緩沖區
}
}
}
else if(!RXB)//是否檢測到低電平
{
RING = 1;//設置開(kāi)始接收標志
RCNT = 4;//初始接收波特率計數器
RBIT = 9;//初化始接收比特數(8個(gè)數據位+1個(gè)停止位)
}

if(REND)
{
REND = 0;
if(RBUF == 0x7F){ if(++cnt > 30)START=1; } //“0x7F”連續 > 30次,則打開(kāi)重啟標志
else cnt = 0;
}
}





※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※



用STC-ISP V6.03、STC-ISP V4.88默認的最低波特率不同,
懶得每次修改,
重新寫(xiě)了個(gè)程序,
自動(dòng)適應3種最低波特率:1200bps/2400bps/4800bps


#define uint8unsigned char
#define uint16 unsigned int
#include "STC15F104E.H"

sbit RXB= P3^4;
sbit Key= P3^1;//自動(dòng)/手動(dòng)開(kāi)關(guān)(根據需要使用)
sbit Relay = P3^3;//繼電器
sbit LED= P3^0;

uint8 RBUF;//接收緩存
uint8 RDAT;//接收數據暫存
uint8 RCNT;//接收計數器
uint8 RBIT;//接收比特數
bitRING;//開(kāi)始接收標志
bitREND;//接收完成標志

uint8 cnt;//重啟計數器
bitSTART; //重啟標志

uint16 cn;//波特率切換計數器
uint8Status;//波特率狀態(tài)
bitNEW;//波特率更新標志

void YS100ms(uint8 n)
{
uint8 a,b,c;
while(n--)
{
for(c=89;c>0;c--)
for(b=230;b>0;b--)
for(a=12;a>0;a--);
}
}

void UART_INIT()
{
RING = 0;
REND = 0;
RCNT = 0;

cnt = 0;
cn= 0;
}

void main()
{
P3M1 = 0x00;
P3M0 = 0x09;//P3.0、P3.3推挽輸出
Key= 1;
Relay= 0;//斷開(kāi)繼電器
LED= 0;//關(guān)LED


TMOD = 0x00;//T0處于16位自動(dòng)重裝模式
AUXR = 0x80;//T0工作在1T模式
TL0 = 0x00;//初始化Timer0和設定重載值
TH0 = 0xFA;//默認 2400bps @ 11.0592MHz
TR0 = 1;
ET0 = 1;
PT0 = 1;//提高Timer0的中斷優(yōu)先級
EA= 1;

UART_INIT();

while(1)
{
if(START)
{
START = 0;
if(Key)
{
ET0 = 0;
Relay = 1;//繼電器吸合
LED = 1;
YS100ms(50);//從『加載HEX』到『提示上電』有5秒
Relay = 0;
LED = 0;
YS100ms(30);
UART_INIT();
ET0 = 1;
}
}

if(NEW)
{
NEW = 0;
TR0 = 0;
if(++Status > 2)Status=0;
switch(Status)
{
case 0:TL0=0x00; TH0=0xFA; // 2400bps @ 11.0592MHz
//P31=0;P32=1;P35=1;//狀態(tài)指示燈(根據需要使用)
break;
case 1:TL0=0x00; TH0=0xFD; // 4800bps @ 11.0592MHz
//P31=1;P32=0;P35=1;//狀態(tài)指示燈(根據需要使用)
break;
case 2:TL0=0x00; TH0=0xF4;// 1200bps @ 11.0592MHz
//P31=1;P32=1;P35=0;//狀態(tài)指示燈(根據需要使用)
break;
}
UART_INIT();
TR0 = 1;
}
}
}

void tm0() interrupt 1
{
if(RING)
{
if(--RCNT == 0)
{
RCNT = 3;//復位接收波特率計數器
if(--RBIT == 0)
{
RBUF = RDAT;//保存數據到RBUF
RING = 0;//停止接收
REND = 1;//接收完成標志
}
else
{
RDAT >>= 1;
if(RXB)RDAT |= 0x80; //RX數據轉移到RX緩沖區
}
}
}
else if(!RXB)//是否檢測到低電平
{
RING = 1;//設置開(kāi)始接收標志
RCNT = 4;//初始接收波特率計數器
RBIT = 9;//初化始接收比特數(8個(gè)數據位+1個(gè)停止位)
}

if(REND)
{
REND = 0;
if(RBUF == 0x7F)
{
cnt++;
if(cnt > 1)cn=0;//“0x7F”連續 > 1,則清切換計數器
if(cnt > 100)START=1; //“0x7F”連續 > 100,則打開(kāi)重啟標志
}
else cnt = 0;
}

if(++cn>600){ cn=0; NEW=1; }//切換計數器 > 600,則打開(kāi)更新標志
}
//有一舊時(shí)期的STC-ISP_4.88版的引導信號間隔時(shí)間有差異( 需要切換計數器 > 800 ),建議用最新時(shí)期的
最新版本最新版本:

(原文件名:STC免手動(dòng)燒寫(xiě)+邏輯分析儀電路圖(初始版).jpg)


(原文件名:STC免手動(dòng)燒寫(xiě)+邏輯分析儀電路圖(改進(jìn)版).jpg)


(原文件名:a.jpg)


(原文件名:20111229019.jpg)

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 51單片機一鍵下

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>