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

📄 14-2.asm

📁 本文件提供各种驱动程序和汇编代码,包括温度芯片驱动等等.
💻 ASM
字号:
;***********************************************************************
; 功能		:定时器延时程序
; 作者		:LIHJ
; 创建日期	:04-1-2
; 版本		:V1.0
; 修改日期	:
;************************************************************************

;变量定义
Count50 ms	DATA	50H

;程序
	ORG		0000H					;定义程序入口
	JMP		MAIN						;复位后,跳转到主程序
	
	ORG		000BH					;定时器0的中断入口
	JMP		T0INT					;跳转到定时器0的中断服务程序
	
	;主程序
	ORG		0050H					;定义主程序保存地址(可以不指定)
MAIN:	
	;定时器赋初值
	MOV		TMOD, #01H				;选择方式1,16位定时器方式
	MOV		TH0, #3CH				;定时器0设置为50 ms
	MOV		TL0, #0B0H
	
	MOV		Count50 ms, #00H			;初始化50 ms计数器
	
	SETB	EA							;开中断总开关
	SETB 	ET0						;运行定时器0中断
	SETB	TR0							;启动定时器0

;主循环程序
LOOP:
	;****************************
	;其他程序
	;****************************

	;延时判断	
	MOV		A, Count50 ms			;将50 ms计数值赋给累加器A
	CJNE		A, #100, PROCESS1		;判断延时世界有没有到	
PROCESS1:
	JC		CONTINUE1				;根据C标志判断延时时间是否到
	MOV		A, Count50 ms			;Count50 ms = Count50 ms - 100	
	SUBB		A, #100
	MOV		Count50 ms, A	
	;************************			;延时时间到,运行被延时的程序
	;被延时的程序
	;************************
	
CONTINUE1:						;延时时间没有到,继续运行其他程序
	;****************************
	;其他程序
	;****************************

	JMP		LOOP						;开始下一个主循环
;结束主循环

;子程序
;定时器0中断服务子程序
T0INT:	
	PUSH		PSW						;保护中断现场
	PUSH		ACC
	MOV		TH0, #3CH				;重新载入定时器0的初始值
	MOV		TL0, #0BAH 
	INC		Count50 ms				;50 ms计数器自加1
	POP		ACC						;恢复中断现场
	POP		PSW
	RETI								;中断返回

	END								;结束程序

⌨️ 快捷键说明

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