📄 int8led.asm
字号:
;********************************************************************************
;开机8个灯循环, 按p32后暂停,小喇叭响,松开继续循环,中断的典型应用。 *
;硬件连接:p1口8路指示灯,喇叭p3.7,按键p3.2 *
;********************************************************************************
;* 日期: 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 ;堆栈指针
main: ;主程序循环点亮
mov p1,#00h ;全亮
lcall delay ;延时一段时间
mov a,#0feh ;每次只亮一个灯。
loop: mov p1,a ;输出到p1
lcall delay ; 延时
rl a ;循环左移。
ajmp loop ; 跳转main继续循环
ext0: push acc ;(把A的值压入堆栈,保存A)
push psw ;(保存现场)
cpl p3.3 ; 小喇叭响
call deL ;小喇叭响的速率
pop psw ; 恢复现场
pop acc
reti
delay: mov r5,#20 ;延时子程序1闪烁灯调用
d1:mov r6,#20
d2: mov r7,#250
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
del: ;延时子程序2小喇叭调用
mov r4,#250
djnz r4,$
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -