AVR外部中断INT1检测按键,使用LED作指示

发布者:温暖阳光最新更新时间:2018-05-18 来源: eefocus关键字:AVR  外部中断  INT1  检测按键  LED 手机看文章 扫描二维码
随时随地手机看文章

实验内容: 
使用AVR的外部中断INT1检测PD3Key,如果有按键按下,则唤醒休眠的MCU,并使它的PB口的LED做加1指示。

#include


#define DISP_DDR DDRB

#define DISP_PORT   PORTB

#define IN_PD3  cbi(DDRD,3)  //PD3

#define SET_PD3  sbi(PORTD,3)

#define GET_PD3  gbi(PIND,3)

//PORTA|=BIT(5);    就是把把第6位置1;

//PORTA=~BIT(5);   就是把第6位置零

//DDRB |=  0x80;  //等于“sbi(DDRB,7);” 置1位

//DDRB &= ~0x80;  //等于“cbi(DDRB,7);”清零


/*--------------------------------------------------------

程序名称:外部中断服务程序

-------------------------------------------------------*/

#pragma interrupt_handler int1_isr:3

//是一个编译器的关键字声明,声明这个函数是一个中断服务函数,后面跟的数字是中断向量号。

void int1_isr(void)

{

 GICR &= 0b01111111;  // disable int1 interrupt   通用中断控制寄存器 GICR

 DISP_PORT++;   // 显示口指示加1,指示被按次数

 delay50ms(4);

 GICR |= 0b10000000;   // enable int1 interrupt

}

/*--------------------------------------------------------

程序名称:外部中断初始化程序

--------------------------------------------------------*/

void int1_init()

{

 IN_PD3;    // set PD3/INT1 as input

 SET_PD3;   // set PD3/INT1 as output,high level,avoid triggering

 MCUCR |= 0b11110011;  // set PD3/INT1 as low level active

 GICR  |= 0b10000000;  // enable global interrupt

 SEI();       // enable external interrupt

}

void main(void)

{

 DISP_DDR  = 0xFF;

 DISP_PORT = 0x00;

 int1_init();

 asm("sleep");   // set mcu as sleep modle

 //开机后MCU处于SLEEP状态,之后按按键,LED作出了简单指示。


 while(1);

}



关键字:AVR  外部中断  INT1  检测按键  LED 引用地址:AVR外部中断INT1检测按键,使用LED作指示

上一篇:AVR USART接收中断程序
下一篇:AVR 定时器中断程序

推荐阅读最新更新时间:2024-03-16 16:03

研究称电视厂商对面板的旺盛需求直接推动了LED需求的增长
2012年10月08日 -- 自7月份以来,中国电视厂商对于面板需求保持旺盛的成长。根据NPD DisplaySearch最新的月度LCD市场动态报告 (MarketWise - LCD Industry Dynamics),由于本土品牌厂为10月份国庆旺销季积极备货,拉动面板需求在今年8月份达到今年以来最高峰。8月份,出货至中国电视厂商的面板数量较前一个月成长20%(M/M),相较此前预测高出4个百分点。面板出货量高于预期,最主要是因为受惠于能效补贴的拉动。一方面高能效补贴产品因为政府的补贴而降价,另一方面品牌厂商对未达到能效补贴的产品也采取了更为积极的降价促销。积极的降价促销使得7月和8月城市主要渠道零售量较去年同期有所增
[电源管理]
研究称电视厂商对面板的旺盛需求直接推动了<font color='red'>LED</font>需求的增长
STM32点亮第一个LED使用keil for ARM MDK 软件仿真
简介:软件仿真在一定程度上可以在设计的初期发现程序的错误,减少我们下载到开发板的麻烦。但是纯软件的仿真的正确,也不能保证程序就正确。有时候仿真正确,实物却没这个效果。有时软件仿真结果是错误,你分析你的程序却没错误。 遇到多了,经验也就出来,前几天我仿真一个STM32的Systick,仿真结果就不对,程序就是对的,我估计也许是软件本身的问题。 我建议用STM32+JLINK进行仿真,有个硬件平台结果的正确性就有保证。 Main.c函数代码: #include stm32f10x.h voiddelay(void) { inti,j; for(i=1000;i 0;i--) for(j=1000;j
[单片机]
STM32点亮第一个<font color='red'>LED</font>使用keil for ARM MDK 软件仿真
汽车照明串联LED灯珠的开路保护方案
LED 汽车照明 灯种类繁多,主要分为内部照明和外部照明两大类。在介绍方案之前,我们得清楚的知道 汽车照明 到底有哪些?细分如下: 1. 内部照明: 背光,调光,集成HMI   2. 外部照明:前照灯,日间行驶灯(DRL),雾灯(FOG),转向灯(TI),装饰灯,位置灯(POS),远近光灯(HLB),角灯(CRN)   3. 通信支持:SPI/I?C, LIN ,CANBUS   内部照明控制台设计参考:   1. 电容传感按钮用于功能选择   2. 每个按钮均具有RGB背光和 LED 指示灯   3. 顶灯采用高亮度白光 LED   4. 整个装置采用12V电源输入和CAN/LIN总行I/O   外部照明设计难点
[汽车电子]
汽车照明串联<font color='red'>LED</font>灯珠的开路保护方案
科普文章:HB LED驱动器
摘要 十年来,高亮度LED的能效(流明/瓦)、耐用性、可靠性和成本效益迅速提高,彻底改变了照明行业的格局。在不影响电路驱动性能和保护功能的前提下,开发一种以尽可能低的功耗取得所需光照度的LED驱动器,是今天的照明灯具工程师所面临的挑战。 图1所示的75W全数控HB LED驱动器评估板能够将LED的亮度降至最大亮度的0.5%。这款LED驱动器有两个功率转换级:前级是一个功率因数校正(PFC)转换器,用于提供稳压直流输出,后级是并联在一起的降压转换器和改进的降压转换器,如图2所示。32位微控制器(MCU)通过数字技术控制PFC级和两个DC-DC降压转换器。PFC级和两个DC-DC转换器的数控技术在成本效益和设置灵活性方面有明显
[电源管理]
科普文章:HB <font color='red'>LED</font>驱动器
解读高亮LED在绿色照明工程中的应用研究
发光二极管( LED ) 是一种应用广泛的电子元件,但由于其发光效率和亮度均较低,发光颜色品种少等原因,LED 在20世纪90年代以前主要应用于仪器仪表的状态、数字和文字等的显示。20世纪90年代初期, LED芯片 制造技术和封装技术取得重大发展,LED的发光亮度达到了cd 级,产生了所谓的高亮度LED,发光颜色也覆盖到了整个可见光光谱范围, 极大拓展了LED的应用范围和领域。世界上许多国家和地区已开始用超高亮度LED取代白炽灯、金属卤钨灯,广泛用作交通信号灯、警示灯、标志灯、汽车、轿车上的高位刹车灯、尾灯、转向灯及仪表盘的照明和显示等。国外有些公司还制作出LED灯泡、LED台灯及小电筒等照明灯具。到目前为止,白光LED的发光效率
[电源管理]
解读高亮<font color='red'>LED</font>在绿色照明工程中的应用研究
STM32-自学笔记(8.使用STM32的SysTick定时器控制LED灯闪烁)
SysTick定时器,被称为“系统节拍时钟”。SysTick属于ARM Cortex-M3内核的一个内设,STM32也带有SysTick定时器。 SysTick定时器的基本结构 SysTick工作原理: SysTick从时钟源接口获得时钟驱动 从重装寄存器将重装值读入当前计数寄存器中,并在时钟驱动下进行减一计数。 当SysTick发生下溢时,将计数标志位置位,并且触发SysTick溢出中断,同时进行一次重装值载入操作。 实验说明: 使用STM32的SysTick定时器产生长度为1s的时间间隔,并以此时间间隔闪烁LED灯。 硬件电路: GPIOA.4引脚接LED灯,再接一个限流电阻,最后接地。如图 软件设
[单片机]
STM32-自学笔记(8.使用STM32的SysTick定时器控制<font color='red'>LED</font>灯闪烁)
SIM300实现无线LED显示屏控制系统
  引言   针对目前LED 点阵显示屏的广泛应用以及GPRS 网络全国覆盖的优势, 提出基于GPRS技术的无线LED 显示屏控制系统方案。详细介绍控制系统的系统结构、软硬件设计过程和通信协议的制定。此设计在多LED 显示屏组网控制,而LED 屏又分布范围较广时优势较明显,可以拓宽LED 显示屏的应用领域,具有一定的应用价值。   1 系统工作原理   本系统主要由上位机和下位机组成。上位机为安装有LED 屏管理软件而且能连接Internet 或GPRS 网络的设备,例如PC、移动设备等。下位机为以AVR 单片机控制模块为主的LED 屏无线控制器。系统拓扑结构如图1 所示。      系统主要利用GPRS 模块作
[电源管理]
SIM300实现无线<font color='red'>LED</font>显示屏控制系统
具两个LDO的5 路输出25mA/LED驱动器工作电压低至2.7V
2007 年 9 月 12 日 - 北京 - 凌力尔特公司( Linear Technology Corporation )推出具有两个 LDO 稳压器的集成式白光 LED 驱动器 LTC3230 ,该器件在便携式电子产品中用于驱动主和副 LED 显示屏和提供低压系统电源轨,并采用了紧凑型 3mm x 3mm QFN 封装。 LTC3230 驱动多达 5 个 25mA LED 电流源,提供 125mA 的总输出电流,集成了两个 200mA LDO ,具有单独的使能引脚以及分别低至 1.2V 和 1.8V 的引脚可选输出电压。
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved