单片机 外部中断

来源:百度知道 编辑:UC知道 时间:2024/07/06 18:59:26
初学者,也就是我,正在进行一个51单片机的电子设计,关于交通灯的,可是很不明白关于外部中断的硬件接法。就是程序已经编好了(由于能力有限,是从网上搜来的),
ORG 0000H
LJMP START
ORG 0003H ;INT 0 中断入口地址
LJMP INT0
……
INT0:
PUSH PSW ;保护现场
PUSH 2
PUSH ACC
MOV DPTR,#8300H
MOV A,#0FH ;南北,东西都亮红灯
MOVX @DPTR,A
MOV R2,#100 ;延时10秒
LCALL DELAY
POP ACC ;恢复现场
MOVX @DPTR,A
POP 2
POP PSW
RETI
……
(这程序不知有没问题……我其实对于程序也不太懂……)
主要问题是在于不知道怎么接外部电路,才能实现中断,就是不知道应该用些什么元件,(譬如,用个开关行吗?),接在什么端口,给个什么信号,才能实现……

"ORG 0003H ;INT 0 中断入口地址"
INT0是外部中断0,就是接单片机P3.2口,按一个按键连到地就行,P3.2口有低电平就能触发中断
但是你的程序是不完整的,还在主程序和延时子程序都用......省了,
比如主程序里要写 SETB EA;打开总中断
SETB IT0;低电平触发
SETB EX0;开中断0
延时程序到书上抄个就行

可以将某个io口直接接到外部中断上,在满足中断要求时通过该io口输出中断信号(感觉这样就没必要用中断了-_-!只会用c,汇编看不懂-_-!。还有交通灯用不着用到中断吧!)
开关肯定不行的,有抖动,你看一下有关键盘的知识吧,