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

📄 timer_a.asm

📁 电子开发网培训用的51单片机内部培训代码
💻 ASM
字号:
;//*****************************************************
;//实现功能:单片机的晶振为12MHz,使用定时/计数器0实现每
;//	     0.5秒改变一次接在P1.0上的发光二极管的状态.
;//目标板  :至强51开发板
;//开发商  :电子开发网www.dzkf.com (专业提供开发方案,
;//          电子元器件网上订购,单片机培训服务)
;//对开发板有什么疑问,请上我们的论坛bbs.dzkf.com探讨
;//*****************************************************

;//*****************宏定义*****************************
p_light equ P1.0

	org 00h
	   ajmp main
;//*********************主函数************************
;//描    述:使用定时/计数器0实现每0.5秒改变一次接在
;//         P1.0上的发光二极管的状态
;//入口参数:无
;//返回参数:无
;//设    计:ycj
;//最后修改:时间(2006.5.2)  修改人(ycj)
;//****************************************************
	org 30h
main:
	mov sp,#50h
	mov R7,#0
	mov R6,#001h
	call timer_init;定时器初始化
	;对定时器0赋初值
	mov TH0,#03ch
	mov TL0,#0afh
	setb TR0;启动T0
main_0:
	mov a,#10;循环次数
	cpl p_light;取反i/o电平
main_1: 
	jnb TF0,$;等待T0溢出
	;溢出,重赋值,并清TF0
	mov TH0,#03ch
	mov TL0,#0afh
	clr TF0
        djnz acc,main_1;循环10次
	ajmp main_0
	
;//************************定时器初始化函数*******************************
;//描    述:对定时/计数器初始化
;//入口参数:R7  定时/计数器的编号(0或者1)
;//         R6  定时/计数器的状态(GATE,C/T,M1,M0对应这R6.3,R6.2,R6.1,R6.0)
;//返回参数:无
;//设    计:ycj
;//最后修改:时间(2006.5.2)  修改人(ycj)
;//************************************************************************	
timer_init:
	push acc
	push psw
	cjne R7,#0,timer1;判断是否是T0
	;是T0
	mov a,#0f0h;清T0的TMOD状态
	anl a,TMOD;
	orl  a,R6;把需要设定的状态写进TMOD
	mov TMOD,a
	pop psw
	pop acc
	ret
timer1:
	cjne R7,#1,timer_init_err;判断是否是T0
	;是
	mov a,#00fh;清T1的TMOD状态
	anl a,TMOD
	xch  a,R6;把需要设定的状态写进TMOD
	swap a
	orl a,R6
	mov TMOD,a
timer_init_err:
	pop psw
	pop acc
	ret
end

⌨️ 快捷键说明

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