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

📄 io-p0.asm

📁 电子开发网培训用的51单片机内部培训代码
💻 ASM
字号:
;//*********************************************************
;//实现功能:本程序实现在P0口模拟一个流水灯程序
;//目标板  ::至强51开发板
;//开发商  :电子开发网www.dzkf.com (专业提供开发方案,
;//          电子元器件网上订购,单片机培训服务)
;//对开发板有什么疑问,请上我们的论坛bbs.dzkf.com探讨
;//*********************************************************

p_out equ P0   ;宏定义P0为p_out
	org 00h        ;程序的开始地址
	    ajmp main      ;跳到main
	org 030h
;//******************主函数***************************
;//描  述:实现在P0口模拟一个流水灯程序
;//入口参数:无
;//出口参数:无
;//设计人:ycj
;//最后修改:时间(2006.5.1)  修改人(ycj)
;//****************************************************
main:          ;主函数
	mov sp,#50h   ;设置sp堆栈的初始位置
	mov a,#0feh   ;初始化acc
main_1:
	mov p_out,a    ;点亮一个灯
	mov r1,#250      ;
	mov r0,#250      ;
	call delay_time;调用时间延迟子程序,上面两句是设置延迟时间
	mov p_out,#0ffh;熄灭灯
	rl a           ;循环左移一位准备点亮下一个灯
	jmp main_1     ;跳到main_1循环
;//******************时间延迟函数**********************
;//描  述:用指令实现延时一段时间
;//入口参数:r1为高位,r0为低位,都是十六进制表示?;//出口参数:无
;//设计人:ycj
;//最后修改:时间(2006.5.1)  修改人(ycj)
;//****************************************************
delay_time:
	push acc       ;acc入栈
	push psw       ;psw入栈
	mov a,r0       ;把r0赋给acc
	inc r1         ;r1加1,因为djnz是先减1再比较是否为零,如果不加1
	               ;当r1的初值为0的时候,减1后变成了0x0ff,改变了当
		       ;初预想的延迟时间计数值
	inc r0         ;道理和inc r1 一样,当然r0和r1的初值不能为0x0ff
loop:
	nop
	nop
	nop
	nop
	nop
	nop
	djnz acc,loop  ;
	mov a,r0       ;
	djnz r1,loop   ;
	pop psw        ;psw出栈
	pop acc        ;acc出栈
	ret
	end

⌨️ 快捷键说明

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