历史上的今天
今天是:2025年05月13日(星期二)
2019年05月13日 | 8051单片机外部中断编程实例
2019-05-13 来源:eefocus
练习一下对外部中断有关的寄存器的控制,代码如下:
;====================================================================
; Main.asm file generated by New Project wizard
;
; Created: 周日 4月 29 2018
; Processor: AT89C51
; Compiler: ASEM-51 (Proteus)
;====================================================================
$NOMOD51
$INCLUDE (8051.MCU)
;====================================================================
; DEFINITIONS
;====================================================================
;====================================================================
; VARIABLES
;====================================================================
;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================
; Reset Vector
org 0000h
jmp Start
org 0003h
ljmp INT0_
;====================================================================
; CODE SEGMENT
;====================================================================
org 0100h
Start:
; Write your code here
MOV A,#00H
MOV SP,#50H
LOOP1:
MOV TCON,#01H
MOV IE,#81H
MOV P1,A
INC A
LCALL DELAY
SJMP LOOP1
INT0_:
PUSH ACC
MOV B,#3
LOOP2:
MOV P1,#0FFH
LCALL DELAY
MOV P1,#00H
LCALL DELAY
DJNZ B,LOOP2
POP ACC
RETI
DELAY:
MOV R4,#0ffH
DELAY2: MOV R3,#0ffH
DELAY1:
NOP
NOP
DJNZ R3,DELAY1
DJNZ R4,DELAY2
RET
Loop:
jmp Loop
;====================================================================
END
下面给出仿真设计的电路图。

编程中注意循环的操作以及现场保护和现场还原,否则在中断服务子程序执行完后,回不到当初的状态。
上一篇:8051单片机的串行通信
下一篇:8051的特殊功能寄存器
史海拾趣
|
由于学校硬件资源不足,今年学习嵌入式没有理想的实验环境 学习效果不佳 老师要求是让我们自己下一篇嵌入式系统的论文来充实一下嵌入式的知识 现在征集嵌入式系统的论文资源 最好提供较基础的,篇幅不长 容易读懂,自己也希望通过这次写论文来 ...… 查看全部问答> |
|
各位大侠:你们好! 小生现在正在做Abis信令监测的工作,一直在寻找Abis上基于LAPD协议的信令中的可以关联一个用户完整呼叫过程的键值(或字段)信息。也就是说,我要把一个用户从信道申请(CHANel RQD)开始,一直到 ...… 查看全部问答> |
|
安捷伦L4400系列模块 简介: • 1U、单槽开关卡,带集成控制器 • LXI-C,包括GPIB选项 • 内置触发功能 • 使用安捷伦34980插卡 • Web浏览器接口 • 继电器计数器 市场信息: 便携式LXI开关 ...… 查看全部问答> |
|
#include\"stm32f10x.h\" #include\"USART1-5_Config.h\" #define ROW_MAX 100 #define POINT_MAX 80 uint8_t H_data[ROW_MAX][POINT_MAX]; uint8_t flag=0; uint8_t row=0; & ...… 查看全部问答> |
|
最简单的按键中断控制led亮灭,调了将近两天还是出不来。求大神们拯救。 minni2440的板子 #include\"2440addr.h\" #define U32 unsigned int static void __irq Key_ISR(void); delay() { volatile int i; for(i=0;i… 查看全部问答> |
|
参加EEworld&TI 喊你来玩ble+zigbee+6lowpan!有芯片和PCB送!活动的过来看看 对于参加EEworld&TI 喊你来玩ble+zigbee+6lowpan!有芯片和PCB送!活动的团队如果需要采购LCD屏幕的话,可以来小店看下,如果团购的话,有优惠,特上淘宝链接: https://item.taobao.com/item.htm?spm=a230r.1.14.51.yuq ...… 查看全部问答> |




