找回密码
 立即注册
查看: 327|回复: 3

89C52RC 收到用户命令后自动启动 ISP 下载(不停电)

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

905

积分

高级会员

积分
905
发表于 2024-9-21 00:07:40 | 显示全部楼层 |阅读模式
本帖最后由 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
REMOVEUNUSED
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-9-21 08:53:48 来自手机 | 显示全部楼层
用汇编语言写的,也是收到@STCISP#使能复位到ISP_CONTR寄存器的0x60h位啊。这个c语言写也很简单。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:239
  • 最近打卡:2025-05-02 03:42:37

22

主题

283

回帖

905

积分

高级会员

积分
905
发表于 2024-9-21 10:39:00 来自手机 | 显示全部楼层
soma 发表于 2024-9-21 08:53
用汇编语言写的,也是收到@STCISP#使能复位到ISP_CONTR寄存器的0x60h位啊。这个c语言写也很简单。 ...

主要是芯愿+2
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:521
  • 最近打卡:2025-05-02 09:38:13

109

主题

1900

回帖

5214

积分

论坛元老

积分
5214
发表于 2024-9-21 10:57:36 | 显示全部楼层
能用汇编语言写的,肯定是位代码老前辈。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 15:45 , Processed in 0.123814 second(s), 63 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表