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

📄 int01.asm

📁 51单片机 P1口的8个灯循环亮
💻 ASM
字号:
;********************************************************************************
;P1口的8个灯循环亮,按P32后全部闪烁5次后继续循环亮, 中断程序的典型应用。       *
;********************************************************************************
;*  日期:  2007-3-25                                                            *
;*  版本:  3.0                                                                  *
;*  作者:  深圳学林电子有限公司     专业8051单片机教学站                        *
;*  邮箱: sxj1974@163.com                                                       *
;*  网站: http://www.51c51.com     http://www.8951.com    更多例程请登陆网站   *
;********************************************************************************
;*  硬件:此程序在本公司xlisp系列单片机实验仪运行通过                           *
;********************************************************************************
;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com  All Rights Reserved *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
;********************************************************************************
	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 + -