;51单片机的P1口上接有8只LED。
;在外部中断0输入引脚P3.2接有一只按钮开关K1。
;在外部中断1输入引脚P3.3接有一只按钮开关K2。
;要求K1和K2都未按下时,P1口的8只LED呈流水灯显示,
;仅K1(P3.2)按下时,左右4只LED交替闪烁。
;仅按下K2(P3.3)时,P1口的8只LED全部闪亮。
;两个外中断的优先级相同。
;=============================================
;用 PROTSUE 仿真界面如下:
;下列程序,可以满足要求.
ORG 0000H
SJMP MAIN
ORG 0003H
SJMP X0_INT
ORG 0013H
SJMP X1_INT
;------------------------------------
MAIN:
MOV SP, #60H
MOV IE, #85H
MOV A, #254
M_LOOP:
MOV P1, A
RL A
CALL DL_500MS
SJMP M_LOOP
;------------------------------------
X0_INT:
PUSH PSW
SETB RS1
MOV P1, #0FH
SH_0:
XRL P1, #255
CALL DL_500MS
JNB P3.2, SH_0
POP PSW
RETI
;------------------------------------
X1_INT:
PUSH PSW
SETB RS0
MOV P1, #0
SH_1:
XRL P1, #255
CALL DL_500MS
JNB P3.3, SH_1
POP PSW
RETI
;-------------------------------延时子程序
DL_500MS:
MOV R5, #9 ;1T
DL1: MOV R6, #128 ;1T
DL2: MOV R7, #215 ;1T
NOP ;1T
DL3: DJNZ R7, DL3 ;2T 2 * 215 = 430 T
DJNZ R6, DL2 ;2T [1+1+430+2] * 128 = 55552 T
DJNZ R5, DL1 ;2T [1+55552+2] * 9 = 499995 T
RET ;2T 1 + 499995 + 2 = 499998 T
;------------------------------------
END
关键字:51单片机 外部中断
引用地址:
51单片机2个外部中断的应用
推荐阅读最新更新时间:2024-03-16 16:02
51单片机——硬件基础
1、单片机内部资源 STC89C52:8KFLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源 (1)Flash(硬盘)——程序存储空间 —— 擦写10万次,断电数据不丢失,读写速度慢 (2)RAM(内存)——数据存储空间 —— 断电数据丢失,读写速度快,无限次使用 (3)SFR —— 特殊功能寄存器 2、单片机最小系统 最小系统:最少组件组成单片机可以工作的系统。 三要素: (1)、 电源电路:5V (2)、 晶振电路:11.0592MHZ、两个30PF (3)、 复位电路: P0:开漏输出,必须加上拉电阻 准双向口: 强推挽输出:电流驱动能力强 高阻态 上下拉电阻:上拉电路就是将不确定的
[单片机]
STM32学习笔记(2) 使用外部中断控制按键
中断概述 中断:打断CPU正常程序运行,转去执行中断服务函数的内容,然后再回来执行原来的程序 NVIC:嵌套向量中断控制器,属于内核外设,管理怎与中断相关的功能 typedef struct { uint8_t NVIC_IRQChannel; //中断源 uint8_t NVIC_IRQChannelPreemptionPriority; //抢占优先级 uint8_t NVIC_IRQChannelSubPriority; //子优先级 FunctionalState NVIC_IRQChannelCmd; //使能或失能 } NVIC_InitTypeDef;
[单片机]
51单片机知识大汇总
1.取指译码执行模型:首先我们来看看单片机是如何工作的,我们拿电脑的主板来作为对比,我们买电脑时,总是追求处理器的主频。处理器的工作原理是从存储器上取出一条指令,然后对指令译码,译码完后执行。然后取下一条指令,译码,执行。它为什么能这么有序的工作?是因为它有一个工作时钟,在这个工作时钟的统一管理下,处理器有序的工作,这里的主频就是工作时钟的速度,当然,现在你可能也知道主频越高,取指译码速度越快,性能越好。那么你可能会问,这跟51单片机有什么关系,OK,切入正题,单片机的工作也是这个原理,从存储器上取指,译码,执行。但是单片机的存储器在哪?在单片机的内部,对于电脑来说,是把处理器,内存集中在一块主板上。而现在你应该很明确,对于单
[单片机]
STM32单片机外部中断配置讲解
01 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平、低电平)、边沿变化(上升沿、下降沿)等。51单片机有5个中断源,其中有两个是外部中断,分别为INT0和INT1,INT0被分配在P3.2引脚,INT1被分配在P3.2引脚,也即是说如果使用51单片机的外部中断0,则必须将信号接在P3.2上,否则无效。 02 举例说明什么是中断 单片机在执行程序时有两种方式: 查询方式 中断方式 所谓查询方式就是单片机一遍一遍的扫描,查看所监视的目标有没有发生变化,是一种主动式的监视方法,用一个成语可以很客观的描述:守株待兔。 所谓中断方式就是单片机不主动去监视目标,而是目标主动通知单片机状态发
[单片机]
ADC0804 模数转换51单片机程序+电路图
51单片机驱动 adc0804模数转换 ,下面是电路图 #include reg51.h #include "lcd.h" #include intrins.h #define uint unsigned int #define uchar unsigned char uchar lcd ="0123456789"; sbit rd=P3^6; //IO口定义 sbit wr=P3^5; sbit cs=P3^7; read_adc0804()//控制并读取adc0804转换好的数据 { uchar a; //写入控制命令,启动转换 cs=1; wr=1; cs=0; wr=0; _nop_(); wr=1;
[单片机]
C51单片机利用74hc138扩展流水灯的仿真电路图+程序
C51单片机利用74hc138扩展流水灯程序 包含源代码,仿真电路 可以随意扩展多个LED 电路原理图如下: 单片机源程序如下: #define uint unsigned int #define uchar unsigned char void delay1(uchar y) { uchar i; uint j; for(i=0;i y;i++) { for(j=0;j 5000;j++); } } void led(void) { P3=0x01; //01 P2=0x00; delay1(20); P2=0x01; delay1(20); P2=
[单片机]
STM32L152 外部中断配置
1、中断配置 以外部中断0,管脚为PA0为例来进行配置 void SYS_EXTI0Init(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; //初始化PA0管脚 /* Enable GPIOA clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);//打开PA口时钟 /* Configure PA0 pin as input fl
[单片机]
基于51单片机的家电控制系统设计
O 引言 家电控制的智能化已成为社会需求的新趋势。基于微机控制系统的智能化家电使我们的生活更加便利。而是否能够实现远程家电的开关控制。又是否能够随时查询电器的工作状况,或者能够事先对家电的定时开关做出控制。又成为越来越感兴趣的研究方向。家电产品现已进入成熟期和稳定期。市场规模稳步上涨,但竞争日愈剧烈,其核心部件。即控制器性能及质量对企业产品的影响很大。同时,经济快速发展,人们对于家庭生活的舒适程度也提出了越来越高的要求,尤其体现在家电的便捷方面。在这个背景下,可以自主控制的家电控制系统,就逐渐显示出竞争力,这也符合时代发展的客观需要。随着中国经济的快速稳步增长和迅速发展,家电厂家越来越意识到被喻为家电“芯片”的家电控制器的重要
[单片机]