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

📄 int01.asm

📁 我实验板带的实验程序
💻 ASM
字号:
;P1口的8个灯循环亮,按P32后全部闪烁5次后继续循环亮, 中断程序的典型应用。
;***************************************************************************
;*  sxj1974@163.com		     (51c51 test web)     www.8951.com     *
;*  Create by :石学军      www.51c51.com 更多例程请登陆网站        	   *
;***************************************************************************
	org 00h		;开始
	jmp start
	org 03h		;int0中断入口(p32)
	jmp ext0	;到中断子程序
start: mov ie,#10000001b	;中断使能
	mov ip,#00000001b	;中断优先
	mov tcon,#0000000b	;中断为电平触发
	mov sp,#70h	;堆栈指针
loop:mov a,#0ffh 	;左移动初值
	clr c           ; C=0
	mov r2,#08	;左移动8次
loop1:rlc a   		 ;含c左移动一位
	mov p1,a	;输出到P1口
	call delay      ;延时
	djnz r2,loop1   ;左移动8次了吗?
	mov r2,#07      ;设定右移7次
loop2:rrc a     
	mov p1,a
	call delay
	djnz r2,loop2    ;右移动7次了吗? 
	jmp loop
ext0: push acc   	;把a压入堆栈
	push psw	;保存现场
	setb rs0	;设定工作寄存器1
	clr rs1
	mov a,#00	;使P1全亮一次
	mov r2,#10	;闪烁5次(亮灭共10次,小心了)
loop3:mov p1,a  	;输出到P1
	call delay
	cpl a
	djnz r2,loop3   ;10次到了么?没有继续否则完成
	pop psw		;恢复现场
	pop acc
	reti
delay: mov r5,#20	;延时200MS
	d1:mov r6,#20
	d2: mov r7,#250
	djnz r7,$
	djnz r6,d2
	djnz r5,d1
	ret
end

⌨️ 快捷键说明

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