📄 ap.asm
字号:
;/*------------------------------------------------------------------*/
;/* --- STC MCU International Limited -------------------------------*/
;/* --- STC IAP 系列单片机实现用户ISP 演示程序 ----------------------*/
;/* --- Mobile: (86)13922805190 -------------------------------------*/
;/* --- Fax: 86-755-82944243 ----------------------------------------*/
;/* --- Tel: 86-755-82948412 ----------------------------------------*/
;/* --- Web: www.STCMCU.com -----------------------------------------*/
;/* 如果要在程序中使用或者在文章中引用该程序,请在程序中或文章中注明 */
;/* 使用了宏晶科技的资料或程序 */
;/*------------------------------------------------------------------*/
;------------------------------------------------
;/*定义常数*/
UARTBAUD EQU 0FBH ;定义串口波特率 (256-18432000/32/115200)
ISPPROGRAM EQU 0EC00H ;ISP下载程序入口地址
;------------------------------------------------
;/*定义特殊功能寄存器*/
AUXR DATA 08EH ;附件功能控制寄存器
BRT DATA 09CH ;波特率发生器
;------------------------------------------------
;/*定义用户变量*/
CNT7F DATA 60H ;接收7F的计数器,当连续接收到16次7F后进入ISP下载模式
;------------------------------------------------
;/*中断向量表*/
ORG 0000H
LJMP START ;系统复位入口
ORG 0023H
LJMP UART_ISR ;串口中断入口
;------------------------------------------------
;/*串口中断服务程序*/
UART_ISR:
PUSH ACC
PUSH PSW
MOV PSW,#08H
JNB TI,CHECKRI ;检测发送中断
CLR TI ;清除标志
CHECKRI:
JNB RI,UARTISR_EXIT ;检测接收中断
CLR RI ;清除标志
MOV A,SBUF
CJNE A,#7FH,ISNOT7F
INC CNT7F
MOV A,CNT7F
CJNE A,#16,UARTISR_EXIT
LJMP ISPPROGRAM ;调用下载模块(****重要语句****)
ISNOT7F:
MOV CNT7F,#0
UARTISR_EXIT:
POP PSW
POP ACC
RETI
;------------------------------------------------
;/*主程序入口*/
START:
MOV R0,#7FH ;清RAM
CLR A
MOV @R0,A
DJNZ R0,$-1
MOV SP,#7FH ;初始化SP
MOV SCON,#50H ;设置串口模式(8为可变,无校验位)
MOV AUXR,#15H ;BRT工作于1T模式,启动BRT
MOV BRT,#UARTBAUD ;设置重载值
SETB ES ;使能串口中断
SETB EA ;开中断总开关
MAIN:
INC P0
SJMP MAIN
;------------------------------------------------
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -