专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

合泰单片机外部中断程序

作者:huqin   来源:本站原创   点击数:  更新时间:2014年02月05日   【字体:

;;内容:按下PA3接的按键进中断LED灯左移一位
;LED接法PD口
;源码下载:http://www.51hei.com/f/htwzd.rar
;1.开中断
;2.中断中防抖
include HT66F50.inc
ORG 0000H
JMP A1
ORG 04H ;外部中断0入口地址
JMP ZD01 ; 
ORG 30H ;
A1: 
MOV A,00000000B ;
MOV PRM1,A ;设置外部中断0的管脚为PA.3
MOV A,00000010B ;
MOV INTEG,A ;设置外部中断0为下降沿触发
CLR ACERL ;设置PA口不为AD输入口
SET PAPU.3 ;设置PA.3上拉
SET PAC.3 ;设置PA.3为输入口
MOV A,08H ; 
MOV CP0C,A ;设置PA3不为比较器输入口
CLR PDC ;设置PD口为输出口
MOV A,01H ;设置PD口初始状态
MOV PD,A ;PD口显示初始状态
CLR INT0F ;清中断0标志
SET INT0E ;使能外部0中断
SET EMI ;使能总中断

JMP $
;*************************************************
; 外部中断0服务子程序
;************************************************* 
ZD01: 
RL PD ;左移PD口显示
SNZ PA.3 ;判断PA3是否为高电平(去抖)
JMP $-1 ;是低电平则返回判断
CALL M001 ;延时防止抖动 
SNZ PA.3 ;
JMP $-4 ;
CLR INT0F ;清中断标志
RETI ;中断返回
;**************************************
; 延时子程序
;************************************** 
M001: 
MOV A,1
MOV [85H],A
M002: 
MOV A,10
MOV [86H],A
M003: 
MOV A,250 
MOV [87H],A
M004: 
SDZ [87H]
JMP M004
SDZ [86H]
JMP M003
SDZ [85H]
JMP M002 
    RET 
END

关闭窗口

相关文章