单片机中断(汇编)

本文详细描述了一段用于实现按按钮触发外部中断0,启动T1定时器生成1ms方波的C51汇编代码,涉及堆栈设置、中断配置和中断处理过程,附有Protues仿真图供参考。
摘要由CSDN通过智能技术生成

下面代码完成的是:按一下button,产生一次外部中断0信号(P3.2),启动T1定时,使P1.0引脚输出周期为1ms的方波(系统时钟6MHz)。

	ORG 0000H
    LJMP MAIN          ;跳转主程序
	ORG 0003H			;中断程序T0的入口,主程序等到中断后,会跳转回来运行,
	LJMP INIT0		   ;跳转进入中断程序T0
	ORG 001BH			;中断程序T1的入口,中断程序INIT0执行完成后,会跳转回来运行,
	LJMP INIT1			;跳转进入中断程序T1
	ORG 0030H				
MAIN:MOV SP,#60H        ;设置堆栈区
    MOV TMOD,#26H		;使用方式2
	SETB IT0			;允许T0中断请求
	MOV TL1,#06H		;设置T1初值
	MOV TH1,#06H	
	SETB EA				;启动中断总开关
	SETB EX0
	SETB ET1			;允许T1中断请求
	SJMP $             ;循环等中断
INIT0:SETB TR1		;启动TR1计数器
	RETI       		;中断返回
INIT1:CPL P1.0      ;P1口位取反
    MOV TL1,#06H		;设置T1初值
	MOV TH1,#06H	
	RETI            ;中断返回
	END

Protues的仿真图如下所示:

代码如有错误欢迎指正。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值