3.ASM3_Timer: 定时器0控制LED闪烁

/**
******************************************************************************
* @file Timer.asm
* @author Alex——小白
* @version V1.0
* @date 2019.9.1
* @brief 定时器控制LED亮灭
* @store Proteus仿真店子
* @Link https://shop484534014.taobao.com/
* @Email 844545015@qq.com
******************************************************************************
* @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 如需下载Proteus仿真文件和Keil工程,请关注公众号:
Proteus仿真店子
(若需Proteus和keil安装包,后台回复:安装包;若需Proteus教学视频,后台回复:Proteus视频;若需其它设计,后台回复:51汇编设计)
版权声明:本文为Smile_shao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。