- 打卡等级:以坛为家I
- 打卡总天数:239
- 最近打卡:2025-05-02 03:42:37
高级会员
- 积分
- 905
|
本帖最后由 DebugLab 于 2024-9-21 12:47 编辑
$INCLUDE(STC89.INC)
ORG 0000H
LJMP F_MAIN
ORG 0023H
LJMP I_UART1
R_DownloadCmd_Cnt DATA 30H ;下载命令计数
T_ISP_DOWNLOADCMD: DB "@STCISP#",0 ;下载命令
F_MAIN:
MOV SP,#7FH
LCALL F_UART1_Init
SETB EA
L_LOOP:
SJMP L_LOOP
F_UART1_Init: ;9600bps@11.0592MHz
MOV R_DownloadCmd_Cnt,#0 ;下载命令计数初始化
ANL PCON,#7FH ;波特率不倍速
MOV SCON,#50H ;8位数据,可变波特率
ANL AUXR,#0BFH ;定时器时钟12T模式
ANL AUXR,#0FEH ;串口1选择定时器1为波特率发生器
ANL TMOD,#0FH ;设置定时器模式
ORL TMOD,#20H ;设置定时器模式
MOV TL1,#0FDH ;设置定时初始值
MOV TH1,#0FDH ;设置定时重载值
CLR ET1 ;禁止定时器中断
SETB TR1 ;定时器1开始计时
SETB REN ;串口接收禁止/使能位
SETB ES ;使能串口1中断
RET
I_UART1:
PUSH ACC
PUSH PSW
PUSH DPH
PUSH DPL
JNB RI,L_UART1_Exit ;检测串口1接收中断
CLR RI ;清除串口1接收中断请求位
;串口1接收下载命令
MOV A,R_DownloadCmd_Cnt
MOV DPTR,#T_ISP_DOWNLOADCMD
MOVC A,@A+DPTR
CJNE A,SBUF,L_UART1_DownloadCmdCntClr ;不相等跳转
INC R_DownloadCmd_Cnt ;计数+1
MOV A,R_DownloadCmd_Cnt
MOVC A,@A+DPTR
CJNE A,#0,L_UART1_Exit ;不相等跳转
MOV ISP_CONTR,#60H
SJMP $
L_UART1_DownloadCmdCntClr:
MOV R_DownloadCmd_Cnt,#0 ;清零下载命令计数
L_UART1_Exit:
POP DPL
POP DPH
POP PSW
POP ACC
RETI
|
|