邃梦 2021-07-03 18:03 采纳率: 0%
浏览 2

汇编怎么实现定时器和主程序同时进行呢?

主程序在进行数码管的刷新扫描。
然后定时器同时进行,定时器时间一到,就中断主程序进行数码管的数值刷新

  • 写回答

1条回答 默认 最新

  • 邃梦 2021-07-03 22:18
    关注
       ORG     00H
        JMP     CHENGXU
        ORG     14H
        JMP     ISR_STM
    

    CHENGXU:
    CLR SCAN_PORTC
    CLR SCAN1_PORTC
    MOV A,10101000B
    MOV WDTC,A
    MOV A,00100000B
    MOV TM2C0,A
    MOV A,11000000B
    MOV TM2C1,A
    MOV A,LOW 1000
    MOV TM2AL,A
    MOV A,HIGH 1000
    MOV TM2AH,A
    SET T0ON
    SET EMI
    SET MF0E
    SET T2AE
    CLR T2AF
    MOV A,00010000B
    MOV SCAN,A
    MOV SCAN_PORT,A
    CLR SEG_PORTC

        MOV     A,OFFSET TAB_7_SEG
        MOV     TBLP,A
        MOV     A,10
        MOV     COUNT,A
        MOV     COUNT1,A
    

    RE_START:
    CLR DIGIT[0]
    CLR DIGIT[1]

    LOOP:
    MOV A,OFFSET TAB_7_SEG
    MOV TBLP,A
    MOV A,DIGIT[0]
    ADDM A,TBLP
    TABRDL SEG_PORT
    MOV A,00010000B
    MOV SCAN,A
    MOV SCAN_PORT,A
    MOV A,1
    CALL DELAY1
    CLR SCAN_PORT

    LOOP1:
    MOV A,OFFSET TAB_7_SEG
    MOV TBLP,A
    MOV A,DIGIT[1]
    ADDM A,TBLP
    TABRDL SEG_PORT
    MOV A,00000001B
    MOV SCAN1,A
    MOV SCAN1_PORT,A
    MOV A,1
    CALL DELAY1
    CLR SCAN1_PORT
    JMP LOOP

    ISR_STM:
    MOV STACK_A,A
    MOV A,STATUS
    MOV STACK_STATUS,A
    INC DIGIT[0]

        SDZ    COUNT1
        JMP    $+5
        CLR    DIGIT[0]
        INC    DIGIT[1]
        SDZ    COUNT 
        JMP    $+1    
          MOV    A,STACK_STATUS
       MOV    STATUS,A
        MOV    A,STACK_A
        RETI 
    

    这是我的代码,有没有大佬看看哪里出错了呢?好像不能跳转到中断子程序

    评论

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题