STC不斷電的下載方法
B7 本文引用地址:http://m.butianyuan.cn/article/201611/316493.htm | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
ISPEN | SWBS | SWRST | ------- | ------- | WT2 | WT1 | WT0 |
ISPEN:ISP/IAP功能允許位
SWBS:0從用戶主程序區(qū)啟動;1從ISP程序區(qū)啟動
SWRST:0不操作;1產(chǎn)生軟件系統(tǒng)復位,硬件自動清零。
WT2 | WT1 | WT0 |
設置等待時間:全零時為40MHz
IAP_CONTR設為60H;其地址為E7H
程序如下:
IAP_CONTR EQU 0E7H
DEFINE_DOWNLOAD_C EQU 40H
ORG0000H
SJMPSTART
ORG0023H;串口中斷服務程序入口地址
LJMPUART_SERVICE;跳轉至串口中斷服務程序
ORG0030H
START:
MOV 40H,#2DH ;置要發(fā)送下載的傳送的命令的值
MOVSCON,#50H ;串口工作于方式1,不允許接收數(shù)據(jù)
MOVTMOD,#20H;定時器/計數(shù)器1作波特率發(fā)生器,采用定時器方式2
MOVTL1,#0FDH;定時器/計數(shù)器1置初始值,設置的波特率為9600bps
MOVTH1,#0FDH;定時器/計數(shù)器1置重裝載值
SETB TR1 ;定時器/計數(shù)器1啟動工作
SETB ES ;打開串口中斷
SETB EA ;打開總中斷
LOOP: ;主循環(huán)不做任何事情
;在此可以加入你要測試的程序
LJMPLOOP
UART_SERVICE:;串口中斷服務程序
JNBRI,CLR_EXIT ;判斷是否為接收中斷,如果不是,跳出中斷且清除發(fā)送位
CLR RI ;清除接受位
MOV A,SBUF
CJNE A,DEFINE_DOWNLOAD_C,EXIT,;檢測是否為下載的傳送的命令的值
DELAY1S:MOV R7,#100 ;延時時間1秒
D3:MOV R6,#21
D2:MOV R5,#248
D1:DJNZ R5,D1
DJNZ R6,D2
DJNZ R7,D3
MOV IAP_CONTR,#60H
SJMPEXIT
CLR_EXIT:CLR TI
EXIT:RETI;中斷返回
END
用STC的下載軟件,選擇其中自定義下載
其具體設置如下圖:
評論