//经验正以下程序是正确的,可以实现LED 1s亮 1s灭
#include
#include
#define uchar unsigned char
#define uint unsigned int
uint count;
void init()
{
DDRB|=_BV(PB4)|_BV(PB5)|_BV(PB6)|_BV(PB7);
PORTB&=~(_BV(PB4)|_BV(PB5)|_BV(PB6)|_BV(PB7));
TCNT2=155;//初值为155,即记数到255-155=100次溢出并进入定时器2中断函数
TIMSK|=_BV(TOIE2);//溢出中断使能,相当与52的ETO=1;
sei();//开总中断
TCCR2|=_BV(CS21);//8分频,并启动定时器0,8M晶振经过8分频后以1M的速度来记数,即每过1us记数一次,记数100次则为100us,即100us进入一次定时器2中断函数
}
int main()
{
init();
while(1);
}
SIGNAL(SIG_OVERFLOW2)//定时器2中断服务函数,实现LED 1s亮 1s灭
{
TCNT2=155;
count++;
if(count>=10000)
{
count=0;
PORTB^=_BV(PB4)|_BV(PB5)|_BV(PB6);//取反
}
}
关键字:Atmega16 定时器2
引用地址:
Atmega16的定时器2使用
推荐阅读最新更新时间:2024-03-16 15:17
单片机4位数字时钟仿真程序(定时器方式2, 按键连加)
学习单片机动态数码管显示,数字时钟是最好的案例,本仿真案例有以下特点。 1.使用定时器0,方式2,可以减小定时器的误差; 2.调时、调分按键具有连加功能,与常见的按键松手检测有区别; 3.具有秒点显示功能,若制作实物案例,可购买带秒点的数码管。 参考程序: #include reg52.h #define uint unsigned int #define uchar unsigned char sbit w1=P2^2; sbit w2=P2^3; sbit w3=P2^4; sbit w4=P2^5; sbit s1=P1^3; sbit s2=P1^4; sbit s3=P1^5; uint shi,fen,sec
[单片机]
ATmega16开发板教程(3)——74HC595驱动数码管显示
4、数码管显示 数码管驱动电路采用2片74HC595芯片进行IO扩展,仅仅只需3Pin即可驱动需要16位引脚的数码管。74HC595是一个8位串行输入、并行输出的位移缓存器。 只有对74HC595的工作原理和时序要了解清楚,才能更好的理解和编程。 工作原理: Ø1、74HC595是串行输入,即将一个字节Byte的数据通过8次以高低电平的形式送到数据引脚DS,且高字节先入,低字节后入,类似于堆栈; Ø2、那么数据什么时候进入呢?需要SCK(SH_CP)时钟上升沿来讲8位bit数据移入到移位寄存器中; 直接编程讲解: 如图,首先假设wei变量=01101001,然后取出最高位,那么&0x80,得到0,那么执行e
[单片机]
基于ATmega16的便携式机车信号发生器的研制
机车速度检测系统是关系机车可靠控制和机车安全运行的重要环节,直接影响机车运行的安全正点。目前周内铁路主要干线机车机车的过渡装置、监控装置、防空转系统、车载轴承检测装置所需的机车速度信号,是由安装在机车轮对车轴上的速度传感器提供的。普遍采用了光电速度传感器,速度信号提供给速度表、列车运行监控记录装置系统、机车控制电子柜以及内燃机车微机励磁系统。当机车回段检修时,由于不能动车或动车速度不高,没有速度信号输出或输出速度信号强度不够,因而这些需要速度信号的系统检测就成了机车测试、检修中一项比较困难的工作。为此,设计研制机车光电速度传感器模拟信号发生器,使机车在静态不动车情况下模拟发出速度信号,对满足机车检修工作的需要有着重要意义。 1
[单片机]
Atmega16的自动装水系统
//题目要求设计一个自动装水系统,使用两根水管给水罐灌水,能显示时间和质量 //以下为自动装水系统程序,使用红外遥控器设定水位,可设定500g,1000g,1500g,2000g四个刻度 //使用电极法,即往水罐里通12V,在设定好的刻度线放置四跟导线,分别连接Atmega16的四个I/O口 //通过控制5V继电器来控制12V的抽水泵,当灌入的水到达设定的水位,抽水泵停止抽水,蜂鸣器响,LED灯闪烁 #include avr/io.h #include avr/interrupt.h #include util/delay.h #include 12864.h #define BIT(bit) (1 (bit)) uchar
[单片机]
一种基于nRF2401的无线语音通信的实现
0引言 短距离无线语音通信的应用之一是无线对讲机,这种通信方式一般是同频单工,给通话带来了一定程度的不便,于是许多替代的技术便应运而生。 本文介绍的这种系统,利用AVR 单片机 实现语音信号的编解码,利用大容量Flash存储芯片实现语音数据的存储,利用nRF2401无线收发芯片实现语音数据的无线传输和具体接收方的选择,具有实时半双工通信、可加密、录音回放的特点,并且能够方便地应用到短距离 无线通信 产品中。 1硬件设计 1.1系统结构 系统结构如图1所示。 1.2单片机及周边电路 MCU采用ATmega16。ATmega16是ATMEL公司生产的基于增强的AVR RISC(精简指令集 计算机 )结构的低功耗8位
[单片机]
基于ATmega16的CAN总线转RS232设计
CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。但是目前PC机普遍配置RS232串行通信接口,没有CAN总线接口。实际中很多设备带有RS-232接口没有CAN总线接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机ATMega16控制的CAN总线与RS-232转换器电路设计和软件设计,
[单片机]
ATmega16的熔丝设置详解
在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。力求易懂、全面。 下面以双龙的在系统编程软件SLISP为例具体说明我对熔丝的理解。 a intro b 低位(时钟及启动时间设置): c 时钟总表 d 高位(BOOT区设置): e 常用熔丝设置 打开运行SLISP.exe,首先记住: 1:未编程(配置熔丝检查框未打钩) 0:编程 (配置熔丝检查框打钩) 建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。 先了解一下M16的出厂设置。 默认设置为:内部RC振荡8MHz 6 CK + 65 ms CKSEL=0100 SUT=10 低
[单片机]
s3c6410在linux下的WATCHDOG TIMER(看门狗定时器)驱动(2)
在上一篇中看了看门狗在linux中驱动实现的整体架构,作为混杂设备和平台设备存在。现在开始看平台设备对应的probe函数。 static struct platform_driver s3c2410wdt_driver = { .probe = s3c2410wdt_probe, .remove = s3c2410wdt_remove, .shutdown = s3c2410wdt_shutdown, .suspend = s3c2410wdt_suspend, .resume = s3c2410wdt_resume, .driver = { .owner = THIS_MODULE, .name = s3c2410-wdt
[单片机]