ATmega8 定时器 中断 外部中断 程序

发布者:ShiningSmile最新更新时间:2022-01-26 来源: eefocus关键字:ATmega8  定时器  中断  外部中断 手机看文章 扫描二维码
随时随地手机看文章

4MHZ时钟


#include

#include

#include

#include

#include


#include "lcd1602.h"


int getKeyBoardValue( void )

{

return(0);

}


/*定时器1中断服务程序*/

#pragma interrupt_handler Timer1_ovf:9

void Timer1_ovf( void )

{

TCNT1H = (65535 - 20000) / 256;        /* 5ms */

TCNT1L = (65535 - 20000) % 256;        /* 5ms */

}


/*中断服务程序*/

#pragma interrupt_handler int0:2

void int0()

{

PORTD ^= 0X01;

}


void main( void )

{

LCD_init();                                     /* 初始化显示 */


DDRD |= 0x01;


SREG = 0x80;                                 /* 使能全局中断 */

TIMSK |= (1 << TOIE1);                        /* 使能定时溢出中断 */

TCCR1A = 0x00;                                 /* 配置定时器工作在普通模式 */

TCCR1B = 0x01;                                 /* 无分频 */

TCNT1H = (65535 - 20000) / 256;                /* 5ms */

TCNT1L = (65535 - 20000) % 256;                /* 5ms */


MCUCR &= ~( (1 << ISC01) | (1 << ISC00) );    /*低电平触发中断*/

GICR = (1 << INT0);                          /*使能外部中断0请求*/


LCD_write_str( 0, 0, "      Lock      " );

LCD_write_str( 0, 1, "                " );



while ( 1 )

{

delay_nms( 5 );

}

}


关键字:ATmega8  定时器  中断  外部中断 引用地址:ATmega8 定时器 中断 外部中断 程序

上一篇:ICCV7 For AVR 使用教程 Atmega16 单片机
下一篇:ATmega8仿真——外部中断的学习

推荐阅读最新更新时间:2024-11-09 14:43

51单片机学习笔记———10.中断机制
中断 单片机的中断系统是最基础也是最重要的部分,博主在学习这个的时候踩到了很多的坑,于是写下这篇笔记来整理一下自己的思路。 中断涉及的内容: 中断源: C51单片机有5个中断源,C52单片机有6个中断源: 由于多出来的那个中断源不常用,所以我们在这里只介绍C51单片机的中断系统: 8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1 中断整体结构: 与中断有关的寄存器:
[单片机]
51单片机学习笔记———10.<font color='red'>中断</font>机制
定时器实验
实验 定时器实验 一.实验目的 1.学习8051内部定时器/计数器的使用和编程方法 2.进一步掌握中断处理程序的编写方法 二.实验说明 对内部定时/计数器的编程主要是定时常数的设置和有关控制寄存器的设置。本实验使用定时器功能产生1秒钟定时,程序运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光二极管每隔一秒钟点亮一次。 与定时器有关的寄存器有TMOD(工作方式寄存器)和控制寄存器(TCON)。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON控制定时器的运行或停止,并在定时器溢出时设置相应的标志位,产生定时器中断。 单片机的定时器作定时功能时,是对机器周期计数。每个机器周期的长度是1
[单片机]
<font color='red'>定时器</font>实验
STM32F1系列HAL库配置外部中断——测量pwm频率
一.中断的简单介绍 对于之前的串口配置,之所以把串口中断搁置是因为它牵扯到中断这一概念,而我觉得中断对于像我这样的初学者来说是较为难理解的概念,所以,我专门把中断这个应用拿出来。但是也是很浅显的一点点,毕竟中断牵扯的确实有点多,外部中断(EXIT),串口中断,ADC中断及各种外设中断,我并不想在这里解释太多,因为我自己还有很多地方要学习,所以把外部中断拿来分享一下。 中断 中断是指计算机正在运行程序时,出现某些意外需要主机干预,主机可以暂停正在进行的事情,转而去干预处理意外事件,等到处理完意外事件时,可以继续返回原先被暂停的事情中继续执行。 外部中断 外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,
[单片机]
STM32F1系列HAL库配置<font color='red'>外部中断</font>——测量pwm频率
STM32定时器更新事件可以暂停否?
有人使用STM32的定时器的输出比较功能,具体就是输出4个通道的PWM信号。不过 他需要不定时地调整4个通道的占空比,即调整他们的CCR值。但现在有个小问题,那就是新的CCR值的获得往往会能跨越多个目前定时器的计数周期,这样的话,即使开启各个通道CCR值的预装功能,似乎也很保证做到一次性修改。因为它希望新的CCR值被同时更新。换句话说,他担心不同通道新的CCR值分散在不同计数周期生效,可能给应用带来些麻烦。 我们知道,STM32定时器的预装寄存器的值到影子寄存器的更新往往离不开更新事件。一般来讲,只要启动了定时器,更新事件会随着计数器的溢出而自然产生。 既然这样,比方若是在下面四个时刻获得了新的CCR值,有没有办法让这几个
[单片机]
STM32<font color='red'>定时器</font>更新事件可以暂停否?
stm32中断学习篇(1)——以定时器为例
ARM coretex_m3内核支持256个中断和可编程256级中断优先级设置。 Stm32的NVIC是coretex_m3的NVIC的子集。 Stm32目前支持84个中断和16级可编程中断优先级。仅使用中断优先级设置8位中的高四位。 每个中断对应一个外围设备,每个外围设备包括许多个引起中断的中断源或中断事件。这些中断源与中断事件都要通过指定的中断通道向内核申请中断。中断通道的优先级确定设备整体的优先级,而设备本身的多个中断执行顺序由用户的中断服务程序决定。 Stm32的68个外部中断通道固定分配给相应的外部设备。每个终端通道都具备自己的中断优先级控制字节PRI_n(8位,用高四位),每四个通道构成一个32位优先级寄存器。总共
[单片机]
stm32<font color='red'>中断</font>学习篇(1)——以<font color='red'>定时器</font>为例
stm32中断学习篇(2)——以外部中断为例与多个中断的使用
上一篇简单写了一下中断的理论,给了一个定时器的例子。 这一篇主要写一下外部中断的例子。这个例子中使用了两个外部中断,使用多个的话道理差不多。 还是对照着理论把程序写出来。 配置GPIO的部分就不说了。程序在后面给出,有详细注释。 直接开始说配置NVIC和EXTI。 Stm32的这些配置都是以结构体的形式进行的。 EXTI配置的是EXTI_InitTypeDef这个结构体,其定义如下: *typedef struct { uint32_t EXTI_Line; /! Specifies the EXTI lines to be enabled or disabled. This parameter can be any
[单片机]
在STM32如何在我需要的时候关闭或打开外部中断EXTI
① EXTI- IMR &= ~(EXTI_Line1) 关闭了指定的外部 中断 ② EXTI- IMR |= EXTI_Line1 开启指定的外部中断
[单片机]
在STM32如何在我需要的时候关闭或打开<font color='red'>外部中断</font><font color='red'>EXTI</font>
STM32中断使用笔记
1.GPIO 的正确设置 GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PC.04, as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPI
[单片机]

推荐帖子

悬赏高手设计低功耗AVR GPRS方案
非高手勿扰!因为本方案是要用于产品的,请自觉。功能:现场采集一个脉冲信号(无源)进行累计,然后通过GPRS将该累计值发送到数据中心产品要求:1.低功耗,使用电池供电,1个小时发送一次,电池要求至少能使用2年;2.单片机使用AVR,具体系列型号可以自由选择;3.GPRS模块使用华为mg323,也可以使用其他的,但必须要求稳定可靠;4.必须使用硬件看门口回路(主要是为了避免死机,因为安装后维护一次非常困难);你的工作范围:1.硬件电路的设计,PCB版的设计;2.提供该电路的一个GP
dita1983 单片机
漂亮的 ESP32 Pacman 时钟
漂亮又有趣的ESP32Pacman时钟https://www.instructables.com/ESP32-Pacman-Clock/漂亮的ESP32Pacman时钟外观几何形状设计的并不美,是色彩增加了颜值 重点是怀旧的PcaMan,动画显示效果也很好。发现esp32diy资源非常多外观几何形状设计的并不美,是色彩增加了颜值---严重同意。还有就是显示屏的分辨率太低,都出马赛克了。不好看。 大家可以DIY一个更好的
dcexpert DIY/开源硬件专区
【求助】问个电平匹配的问题!
430的输入逻辑高电平是0.8Vcc,0.8*3.3=2.64V,我用的器件的输出逻辑高电平是4.5V,电平是匹配了,可这样会不会烧坏430呢,430管脚最大允许电压是多少呢?我查的信息不统一。麻烦你了各位了!谢谢!【求助】问个电平匹配的问题!1、VCC-VSS允许值为-0.3V到4.1V;2、其它所有引脚所加电压允许值为-0.3V到VCC+0.3V。完了,那不是用不了了么,有什么简单办法解决么?用个电平转换芯片解决?一般都用什么型号呢?74LVC4245这个可以么,可是都没有一个中
woaini52109 微控制器 MCU
用于放电产生大电流的电容我应该选择哪种类型的?
用于放电产生大电流的电容我应该选择哪种类型的,哪个牌子做的好?用于放电产生大电流的电容我应该选择哪种类型的?epcos的好 看需要放多少电量,多高电压等。 一般的,要容量大就只有电解电容了,耐压几百伏的都有。如果电压很低(比如2V),还有个选项就是用超级电容器,现在看到最大有几千法拉的,瞬间放电起来估计有炸弹的效果。可是我需要比较快速的放电。用来做测试用的。铝电容的电荷保持性怎么样通常铝电解的漏电是μA级的吧,具体要查产品的数据手册。
安_然 模拟电子
[国产FPGA高云GW1N 系列开发板测评]——(4)串口实验
1、简介串口是一种比较常见的通信接口,有同步串行接口和异步串行接口之分,同步和异步串行接口主要区别在于,异步串行通信是按照字节来传输的,即每一次数据是按一个字节一个字节进行传输,传输速度较低;同步串行通信是需要将数据按照字节组合起来一起发送即按照信息块的方式进行传输,同时同步串行通信是需要与设备的时钟信号进行通信达到同步的效果。通常异步串行通信(UART)包含TTL电平的串口和RS232电平的串口。TTL电平是3.3V,而RS232是负逻辑
chg0823 国产芯片交流
【DigiKey“智造万物,快乐不停”创意大赛】2,Pi400 HID 键盘功能的实现
在github上有一个zero_hid的库,可以实现使用树莓派zero模拟hid键盘。但这个库有一些问题,直接使用在组合键上会出很多的问题,因此我参考这个项目,重写了一下这个库。首先科普一下HID协议,HID键盘协议是一种基于报文的协议,通过在USB总线上进行通信。当用户按下键盘上的按键时,键盘将生成一个HID报文,并将其发送到计算机。计算机收到报文后,根据报文的内容来模拟相应的键盘操作,例如在文本编辑器中输入字符或执行特定的功能。HID键盘报文包含多个字段,其中最重要的是按键码(Ke
eew_dy9f48 DigiKey得捷技术专区
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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