⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3-2.asm

📁 本文件提供各种驱动程序和汇编代码,包括温度芯片驱动等等.
💻 ASM
字号:
;Mcs-51 中断服务程序的应用

	ORG 	00H
	LJMP 	MainIni					;程序复位后,跳转到主程序处

	ORG 	03H					;安装外中断0的中断服务程序
	LJMP	EX0_Handler

	ORG	0BH					;安装定时器0的中断服务程序
	LJMP	T0_Handler

	ORG	13H					;安装外中断1的中断服务程序
	LJMP	EX1_Handler

	ORG	23H					;安装串行中断服务程序
	LJMP	UART_Handler			

	ORG	40H					;中断服务程序从40H开始
EX0_Hander:						;外中断0中断服务程序
	……						;保护现场
	……						;中断处理
	……						;恢复现场
	RETI						;退出中断程序,返回现场

EX1_Handler:						;外中断1中断服务程序
	……						;保护现场
	……						;中断处理
	……						;恢复现场
	RETI						;退出中断程序,返回现场

T0_Handler:						;定时器0中断服务程序
	……						;保护现场
	……						;中断处理
	……						;恢复现场
	RETI						;退出中断程序,返回现场

UART_Handler:						;串口通讯中断服务程序
	……						;保护现场
	……						;中断处理
	……						;恢复现场
	RETI						;退出中断程序,返回现场

	;开始主程序
MainIni:						;主程序初始化中断部分
	……						;初始化程序变量
	;初始化外中断
	SETB	IT0					;INT0为负边沿触发
	SETB	IT1					;INT1为负边沿触发
	
	;初始化定时器
	;定时器0为工作方式1(16位定时器),定时器1为工作方式2(波特率发生器)
	MOV		TMOD,21H					
	MOV		TH0,D8H			;设置定时器0为10ms定时器
	MOV		TL0,F0H
	SETB	PT0					;设置定时器0为最高优先级中断
	SETB	TR0					;启动定时器0

	;初始化串口
	MOV		SCON,40H			;10位异步收发方式,单机对单机通讯
	CLR		SMOD				;波特率没有加倍
	MOV		TH1,FDH			;初始化波特率为9600bps
	MOV		TL1,FDH	
	SETB	TR1					;启动波特率发生器T1

	;中断使能
	SETB	EX0					;允许外中断0
	SETB	EX1					;允许外中断1
	SETB	ET0					;允许定时器0溢出中断
	SETB	ES					;允许串行口中断
	SETB	EA					;开总中断控制位

	……						;其它的初始化操作
Main:							;开始主程序(循环)
	……
	SJMP	$					;等待中断
	
	END						;结束程序

⌨️ 快捷键说明

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