3.ASM3_Timer: 定时器0控制LED闪烁
/**
******************************************************************************
* @file Timer.asm
* @author Alex——小白
* @version V1.0
* @date 2019.9.1
* @brief 定时器控制LED亮灭
******************************************************************************
* @attention All Rights Reserved
**/
ORG 0000H ;程序执行的起始地址
LJMP Main ;跳转到main函数
ORG 000BH ;外部中断0起始地址
LJMP Timer0 ;声明Timer0是外部中断0函数名称
ORG 0100H ;程序跳转到0100H开始执行
Main:
MOV TMOD,#01H ;定时器0,方式1,10ms
MOV TH0,#0D8H ;65535-10000=55535=D8EF,10ms
MOV TL0,#0EFH
SETB ET0
SETB TR0
SETB EA ;总中断使能
MOV 30H,#00H ;用于定时1s变量
SJMP $ ;死循环
Timer0: ;外部定时器0函数
MOV TH0,#0D8H
MOV TL0,#0EFH
INC 30H ;30H单元的值自加
MOV A,30H
CJNE A,#50,Next ;判断30H单元的值是否为50,50*10ms=0.5s
MOV 30H,#00H ;若是,则清零
CPL P1.0 ;P1.0闪烁
Next:
RETI ;中断返回
END
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』