AVR具有512个字节的片内EEPROM,利用它可以记录事先设定的打铃时间(如果每个时间条需要2个字节,则存储的时间条可以200多个),然后将AVR制作成电子钟,在某个时间内,扫描并取出片内存储的时间条,与当前时间进行对比,如果吻合,则打铃。
下面是打铃仪(成熟产品)的具体设计思路:
1、硬件方面:用有备用电池供电的日历芯片DS1302作电子钟的标准时间,AVR外置I2C存储器,LED作状态和时间显示,四至五个轻触开关作控制,输出采用无触点方案。供电:12V直流/220V两用,没有市电自动转换12V蓄电池供电。
控制开关的分配:时分调整2个,功能转换1个,存储或显示记录打铃点1个,备用1个。
2、软件方面:从存储器中取出所有打铃点(一般要限额),每分钟对比一次,查询是否存在打铃点。如果有则执行打铃程序。如果打铃点作了调整,则再次取出打铃点。
本人不负自己期望,在学习应用AVR单片机方面取得重大的进展。本人已经具备初步应用AVR制作打铃仪的设计、编程能力。虽然现在制作的模型仍存在一些缺点而不能推广、应用,但设计思路已经相当清晰,制作成功已指日可待。
下面是部分源程序:
time();
jinwei();
scankey();
if(hour==hour00&min==min00&out==1)//三个条件缺一不可
{
savenum=savenum+2;
hour00=EEPROMread(savenum);
_NOP();_NOP();_NOP();
min00=EEPROMread(savenum+1);
daling();
}
关键字:AVR单片机 电子打铃仪
引用地址:
应用AVR单片机制作电子打铃仪的思路
推荐阅读最新更新时间:2024-03-16 14:04
AVR单片机(ATMEGA16)控制蜂鸣器
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #define DELAY 500 void delay(uint z) //1ms { uint x,y; for(x=z;x 0;x--) for(y=157;y 0;y--); } void main(void) { DDRA |=BIT(0); while(1) { PORTA &=~BIT(0); delay(DELAY); PORTA |=BIT
[单片机]
基于AVR单片机的卫星地面测控系统设计
引言 本文介绍了单片机Atmega128在一种卫星地面测控系统中的应用,该系统利用Atmega128完成了10路模拟信号的测量、4路脉冲信号的频率测量以及脉冲宽度的测量,由单片机上的16位定时计数器输出两路与输入信号具有相位关系的信号,并通过外扩串口与其它测试模块及工控机进行通信。由于要求系统能够连续稳定工作3年,并且数据不能丢失,因此,在设计时采用了双电源冗余热备份的方案,并且采用两个工控机同时接收数据并互为备份的设计方案。 图1 卫星地面测控系统结构图 图2 测试箱的硬件原理图 图3 电地球波相位关系 硬件设计 Atmega12
[单片机]
AVR单片机对外部RAM的扩展
我采用的是GCC编译器,并且在项目中采用C++来编写程序,根据理论上来讲,只要外部存储器使能了并且配置完成,那么变量的地址分配完全可以交给编译器来做,但是前提是存储器使能及配置代码要在上电复位后最先得到执行,而采用C或者C++来编写程序,上电复位之后最先得到执行的代码是由编译器自动增加的启动代码以及构造函数代码。我不清楚如何让存储器使能及配置代码在上电复位后最先得到执行,所以就写了下面一段宏来控制外部存储器的访问。 代码如下: //ex te rn_ ram .h #ifndef _H_EXTERN_RAM_H_ #define _H_EXTERN_RAM_H_ #include “type.h” #define DEF_E
[单片机]
avr单片机proteus仿真第四课:控制继电器
继电器(Relay),作用是用弱电控制强电。比如,我们用avr单片控制一个220V电压的灯泡,这就必须用到继电器。 本课用avr单片机来控制继电器的吸合与断开。 Proteus仿真实验器件: 1 atmega128一块 2 button,按键一个 3 relay,通用继电器一个,并把继电器的Component Value设置为5V 4 pnp三极管一个 5 LAMP,灯泡一个改为220V 6 resistor 1k 7 DIODE 二极管一个 这个程序实际上很简单,主要要学习继电器的用法,注意的是,继电器必须接一个二极管。 仿真程序如下: #include avr/io.h #include util/delay.h #def
[单片机]
avr单片机的编译器介绍
avr的编译器比较多,avr studio、iccavr、cvavr、winavr、iar,开始用的是studio+winavr,好像大多数人都这样用,我后来做多文件编译感觉很不方便,好像要修改makefile。后来就用了iar,很好使,这个软件公认最方便,但也是收费最高,我们这些新手也就是捡一些以前的破解版用用。 iar可以生成各种可执行文件,比如ubrof .d90,可以在proteus仿真中进行源码级调试,很方便。 无论用哪种编译器,代码思想是一致的,移植时只要稍加修改即可。
[单片机]
基于LabVIEW和AVR单片机的镇痛仪系统实现
摘要:通过对穴位施加低频的脉冲电压刺激穴位神经释放内源性物质,从而达到减轻疼痛的作用已经被证实。基于此医学原理,本系统使用LabVIEW编写上位机控制界面,通过NIVISA模块驱动USB进行实时通信,采用高性能AVR主控芯片设计下位机,从而实现宽范围数字升压(12~100V)的高质量互补对称脉冲波稳定输出特性。在疼痛疾病的治疗以及医疗保健治未病等领域将有广泛的应用。 疼痛治疗一向是临床医学深感棘手的问题之一,在疼痛治疗领域,穴位刺激镇痛一直备受推崇,即通过对穴位施加低频的脉冲电压实现对神经系统的刺激,使其释放阿片肽,达到减轻疼痛的目的。上世纪80年代以来,电子技术在疾病诊疗领域的取得广泛应用,穴位刺激镇痛治疗仪器成为其中的一个研
[测试测量]
采用AVR单片机制被动式红外线报警器实验
本实验将制做一个简单的被动式红外线防盗报警器。该报警器由红外线发射、接收、蜂鸣器和LED指示灯组成。正常情况下,绿色的LED常烁,表示监控区域正常。一旦监控区域有人闯入,绿色LED熄灭,红色的LED快速闪烁,同时蜂鸣器立即报警。 实验器材 需要准备的器材:Atmega8、红色LED一只、绿色LED一只、万能实验板一块、5V电源、电阻、TTL0038或者其他类似38KHZ的红外接收头、5V长鸣型蜂鸣器。 线路图: 实验电路图及工作原理 该电路工作原理非常简单,Atmega8的PD0端口输出经过调制的38KHZ的方波信号,然后经Q2驱动红外线发射管LED0发出红外线信号。TL0038是集红外线信号接收放大为一体的接收器。其中心接
[单片机]
AVR单片机ATMEGA8 USART的使用
博主在最近的项目里遇到了需要使用USART串口来通信的功能,首先USART和UART有一点很不一样的地方就是: UART:universal asynchronous receiver and transmitter通用异步收发器 TX , RX USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器 TX, RX, CK USART支持同步模式,因此USART 需要同步始终信号USART_CK(如STM32 单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使
[单片机]