timer3.asm

来自「Small RTOS51是为51系列单片机而编写的。它是完全免费的、源代码公开的」· 汇编 代码 · 共 41 行

ASM
41
字号
;**************************************************
;    平凡单片机工作室
;  http://www.mcustudio.com
;   (c) Copyright 2003 Pingfan's McuStudio
;    All rights Reserved
;timer3.asm
;作者:周坚   
;功能描述:利用软件计数器实现长时间定时
;本例可用DSB-1A型单片机实验板验证
;本例用ledkey.dll实验仿真板验证,能看到闪烁的现象,但时间不一定正确
;**************************************************
    ORG     0000H
    AJMP    START
    ORG     000BH ;定时器0的中断向量地址
    AJMP    TIME0 ;跳转到真正的定时器程序处
    ORG     30H
START:
    MOV     P1,#0FFH ;关所 灯
    MOV     R7,#00H ;软件计数器预清0
    MOV     TMOD,#00000001B ;定时/计数器0工作于方式1
    MOV     TH0,#3CH 
    MOV     TL0,#0B0H ;即数15536
    SETB    EA ;开总中断允许
    SETB    ET0 ;开定时/计数器0允许
    SETB    TR0 ;定时/计数器0开始运行
LOOP: 
    AJMP    LOOP ;真正工作时,这里可写任意程序
TIME0:          ;定时器0的中断处理程序
    INC     R7
    MOV     A,R7
    CJNE    A,#20,T_RET ;R7单元中的值到了20了吗?
T_L1: 
    CPL     P1.0 ;到了,取反P10
    MOV     R7,#0 ;清软件计数器
T_RET:
    MOV     TH0,#3CH
    MOV     TL0,#0B0H ;重置定时常数
    RETI
END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?