单片机实验之多个中断

电路图

 

代码如下

ORG 0000H
LJMP START
ORG  0003H
	LJMP EXT;
	ORG 000BH
		LJMP TIM
		START: MOV SP, #70H;堆栈指针70H
		MOV TMOD, #00000001B;初始化定时器
		MOV TH0,#0D8H
		MOV TL0,#0F0H
		SETB TR0;TR0设置为1
		MOV IE,#10000011B;中断允许寄存器
		MOV IP,#00000001B;中断优先寄存器
		MOV R3,#100;
		MOV R1,#0FEH
		LJMP $;$代表当前地址,原地跳转
			TIM: PUSH ACC
			PUSH PSW;保存当前状态
			MOV TH0,#0D8H
			MOV TL0,#0F0H
			DJNZ R3,LOOP;循环100次
			MOV R3,#100;恢复R3
			MOV A,R1;
			MOV P1,A;p1=100
			RL A;循环左移
			MOV R1,A;
			LOOP:POP PSW;PSW出栈
			POP ACC;ACC出栈
			RETI;子程序调用结束
			EXT: PUSH ACC
			     PUSH PSW
            MOV A,#00
            MOV R2,#10
            LOOP3:MOV P1,A
             LCALL DELAY
             CPL A
            DJNZ R2,LOOP3			 
			POP PSW
			POP ACC
			RETI
			DELAY:MOV R5,#20
			D1: MOV R6,#20
			D2: MOV R7,#248
			DJNZ R6,D2
			DJNZ  R5,D1
			RET
			END

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值