173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机外部中断按键控制led

htxw 2023-03-13 资讯中心 24 ℃

单片机外部中断做流水灯

单片机控制led灯亮和灭,led灯初始状态从左到右两个灯间隔一个灯循环亮灭,然后从右到左循环亮灭,,当按下按键,led灯全亮,然后全灭。然后再恢复循环。

二、实验过程

(一)实验项目的方案分析

1.设计原理

STC12C5A60S2单片机内部包括微处理器、存储器(存放程序指令或数据的ROM、RAM等)、输入/输出口(I/O口)及其他功能部件如定时/计数器、中断系统等。它们通过地址总线、数据总线和控制总线连接起来。

本实验充分利用了8051芯片的I/O引脚。系统已采用STC12C5A60S2系列单片机为中心器件来设计数码管显示系统,实现数码管循环显示。

2.器件配置清单

表1器件配置表

名称

型号

数值

数量

面包板

MB-102

165*55*

(二)实验项目的硬件电路设计

通过Proteus仿真电路软件搭建电路

(三)实验项目的程序设计

1、C51程序编写

2、keil软件调试截图

通过Keil软件进行C51控制程序的编写,通过不断调试修改,最终的调试好的Keil

调试无措的Keil程序

(四)实验项目的虚拟仿真

打开Keil C软件将上面程序输入,调试无误后编译输出".hex"文件,打开Proteus软件,将之前编译好的".hex"文件加入到芯片中,开始运行仿真。

(五)实验项目的实际验证电路及验证结果

将单片机C51程序编译无误后,生成HEX文件,通过STC-ISP下载到单片机中,下载的软件界面搭建的实际

单片机用外部中断0实现:一个亮的LED灯,当按下按键后,闪烁2下,继续恢复原来状态。

main()

{

// CLK_CKDIVR=0x00;

CLK_Init();

IO_Init();

led_on=0;

//timer1_init();

EXTI_DeInit();?/初始化外部中断IO口

_asm("rim");

while(1)

{

cbi(PA_ODR,4);

}

}

@far @interrupt void TIM1_UPD_OVF_IRQHandler(void)

{

TIM1_SR1 = 0x00; // 清除更新标志

}

@far @interrupt void EXTI0 (void)//外部中断子函数

{

if(PA_on)

{ sbi(PA_ODR,4);PA_on=0;}//PA4为灯亮

else

{ cbi(PA_ODR,4);PA_on=1;}//PA4为灯灭

EXTI_CR1=0x00 ;

}

不懂再追问,你只需要把主程序里面的灯定为一个状态,外部中断里面再定一个状态。要亮2次,加个延时,就行了。

51单片机按键控制LED?

定时器让LED引脚输出高低变化的电平,在主函数里判断按键是否按下,如果按下就让LED引脚保持并关闭定时中断。

第二种方法是 主函数里让LED引脚输出高低变化电平,按键用外部中断。

51单片机通过外部中断和开关控制LED闪亮

是不是按一下开关触发中断,使LED闪烁,再按一下,LED熄灭?

LED EQU P1.0

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP EXT0

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-41667)

MOV TL0,#LOW(65536-41667)

SETB ET0

SETB EA

SETB EX0

SETB IT0

CLR A

SJMP $

EXT0:

CPL TR0

RETI

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-41667)

MOV TL0,#LOW(65536-41667)

SETB TR0

INC A

CJNE A,#4,T0E

CLR A

CPL LED

T0E:

RETI

END

单片机外部中断按键控制led的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:单片机外部中断按键控制led

<