基于中断的字符串动态显示

Posted XuanXiuJie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于中断的字符串动态显示相关的知识,希望对你有一定的参考价值。

1:利用1CH中断,每隔一定时间间隔,在屏幕上打印一行自定义的字符串,按下键盘任意键后程序自动退出。

2:利用系统定时源设计计时器,具体内容:利用日时钟1CH中断设计定时中断程序,每隔一秒刷新屏幕上显示的时、分、秒。(提示:最终屏幕中的打印形式为24小时制形式:HH:MM:SS,每秒钟进行刷新一次,可采用INT 21H打印字符串的子功能,每秒进行重新打印即可实现覆盖刷新。同时要注意时间显示格式要采用24小时制的时、分、秒的更新。)

                .486

        DATA  SEGMENT     USE16

        MESG  DB     \'Bxxxxxxxxx\', 0AH,0DH, \'$\'  ;0AH对应这换行符

       OLD1C  DD     ?

      ICOUNT  DB     18                    ;中断计数初值

        DATA  ENDS

        CODE  SEGMENT    USE16

              ASSUME     CODE,  DATA

          MOV    AX, DATA

              MOV     DS, AX

              CLI                        ;关中断

              CALL    READ1C

              CALL    WRITE1C

              STI                         ;开中断

 

         MOV   AH, 01H               ;INT 16H的01H功能,查看键盘缓冲区,当有按键输入时,Z=0.

              INT 16H

              JZ    SCAN              ;当键盘没有输入,SCAN一直循环

              CALL    RESET

              MOV     AH, 4CH

              INT 21H

              ;---------------------------------

     SERVICE  PROC

              PUSHA                    ;保护现场

              PUSH    DS

              MOV     AX, DATA             ;将DATA数据段基地址放到DS里

              MOV     DS, AX

              DEC      ICOUNT              ;中断计数

              JNZ EXIT                  ;不满18次调用时转到EXIT

              MOV     ICOUNT, 18            ;计满18次后,将计数器值复位

              MOV     AH, 9            ;显示字符串

              LEA DX, MESG            ;将MESG的偏移地址放到DX中

              INT 21H

         POP DS                    ;恢复现场

              POPA

              IRET                       ;返回系统8型中断服务程序

     SERVICE  ENDP

              ;----------------------------------

      READ1C  PROC     

              MOV     AH, 35H               ;使用INT21H的35H子功能,读出指定n型向量

              MOV     AL, 1CH

              INT 21H

              MOV     WORD PTR OLD1C, BX    ;原1CH的中断向量偏移地址读到BX

              MOV     WORD PTR OLD1C+2, ES ;原1CH的中断向量基地址躲到ES

              RET

      READ1C  ENDP     

              ;---------------------------------

     WRITE1C  PROC

              PUSH    DS              ;将DS寄存器的内容压入堆栈保存

              ;MOV AX,CODE  

              MOV     AX, SEG SERVICE     ;将服务子程序所在代码段的基地址写入DS

              MOV     DS, AX

              MOV     DX, OFFSET SERVICE ;将服务子程序入口的偏移地址写入DX

              MOV     AH, 25H               ;使用INT21H的25H子功能,写入指定n型向量

              MOV     AL, 1CH

              INT 21H

              POP DS                    ;将DS寄存器的内容从堆栈弹出恢复

              RET

     WRITE1C  ENDP

              ;---------------------------------

       RESET  PROC                     ;恢复系统1CH型中断向量

              MOV     DX, WORD PTR OLD1C

              MOV     DS, WORD PTR OLD1C+2

              MOV     AH, 25H

              MOV     AL, 1CH

              INT 21H

              RET

       RESET  ENDP

 

        CODE  ENDS

              END      BEG

 

以上是关于基于中断的字符串动态显示的主要内容,如果未能解决你的问题,请参考以下文章

利用定时器0模式1中断消除4位数码管动态显示闪烁问题的项目工程

当变量包含单引号时 SQL 动态查询字符串中断

单片机代码说明合集

基于stm32的温湿度检测案例串口通信屏显示

基于stm32的温湿度检测案例串口通信屏显示

基于stm32的温湿度检测案例串口通信屏显示