AVR单片机在万年历中的应用设计

发布者:blq0681最新更新时间:2011-11-14 关键字:AVR单片机  万年历  农历算法 手机看文章 扫描二维码
随时随地手机看文章

0 引言
    随着信息技术的发展和生活水平的提高电子万年历正逐步走进人民大众的生活,其因寿命长、误差小而且用汉字直观显示年月日、时分秒、农历、生肖、室温等丰富的内容。

1 设计要求与采用方案
1.1 系统实现功能
    (1)基本功能:a.LCD汉字显示年月日、时分秒、星期;b.LCD汉字显示天干地支纪年、农历日期、24节气,12生肖;c.LCD显示室温;d.整点蜂鸣器报时,定时闹铃时间到则蜂鸣器提示;e.通过4个按键,用来设置时间和进行定时设置。
    (2)创新设计:a.采用128×64的LCD显示万年历内容;b.采用ISD111O语音模块播放闹铃铃声。
1.2 系统基本方案选择
1.2.1 单片机
    系统的单片机采用高性能、低功耗的AVRATmegal28L微控制器。系统利用4个外部中断接4个独立式按键来进行参数、功能的设置,蜂鸣器用来整点提示和闹铃提示。程序下载可通过预留ISP接口方便地对系统软件进行升级、添加或裁剪系统功能。
1.2.2 显示模块
    液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312码简体中文字库(16×16点阵)、128个字符 (8×16点阵)及64×256点阵显示RAM(GDRAM)。可与单片机直接接口,提供两种接口来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。
1.2.3 时钟芯片
    采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。
1.2.4 温度传感器
    采用数字式温度传感器DS18B20,其仅需一条数据线进行数据传输,易于与单片机连接,可以去除A/D漠块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。

2 系统的硬件设计与实现
2.1 系统硬件设计框图
a.JPG[page]

2.2 系统硬件概述
    本电路由AVR ATmegal28L单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能,本设计中为DS1302增加了备用电池,当主电源掉电时,备用电池自动为其供电;温度的采集由DS18B20构成;显示部份由128×64点阵的汉字图形型LCD模块来完成显示功能;当闹铃时间到时,通过ISD111O语音录放模块播放闹铃铃声。系统硬件实物图见图2。

e.jpg
2.3 主要单元电路的设计
2.3.1 单片机主控制模块的设计
    AVR ATmegal28L单片机为64引脚TQFP封装,系统的ISP下载接口、晶振电路、复位电路、蜂鸣器电路如图3所示。
b.JPG

[page]

2.3.2 时钟电路模块的设计
    图4为DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或 Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768 kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc大于等于2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。
2.3.3 温度采集模块设计
    如图5所示。采用数字式温度传感器DS18B20,它具有测量精度高,电路连接简单的特点,此类传感器仅需要一条数据线进行数据传输,使用PC7与DS18B20的I/O口连接加一个上拉电阻,VCC接电源,VSS接地。
2.3.4 显示模块的设计
    设计采用128×64汉字图形显示LCD模块,一屏可显示32个汉字(16×16点阵字库),其接口如图6所示。
c.JPG

2.3.5 语音录放模块
    设计采用ISD1110语音芯片配合相应的外围元件构成语音录放电路,用来实现语音提示功能,其电路如图7所示。
2.3.6 系统PCB图
    系统PCB如图8所示。

f.jpg[page]

3 系统的软件设计
3.1 程序流程框图
    设计主程序流程图如图9所示。
d.JPG

3.2 设计实现界面
3.2.1 万年历主界面
    如图10所示,第一行显示公历的年月日,第二行显示时分秒和星期,第三行显示农历的天干地支纪年和农历月日,第四行显示农历生肖、节气以及当前的气温。
3.2.2 日期时间设置界面
    日期时间设置界面如图11所示。
g.jpg

3.2.3 闹铃设置界面
    闹铃设置界面如图12所示。

4 结论
    本文所介绍的万年历的设计方案已经调试成功,其功能全部实现,本产品成本低、寿命长、误差小、功能齐全,达到设计要求。

 

 

 

关键字:AVR单片机  万年历  农历算法 引用地址:AVR单片机在万年历中的应用设计

上一篇:一种AVR单片机智能多接口的全硬件音频系统的解决方案
下一篇:基于ATmega32单片机的ISP1362OTG设计

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

基于AVR单片机的MP3(完整原理图+代码)
之前介绍的DIY作品都相对简单,这次来个复杂点的。一次看懂肯定是不可能,大家可以慢慢研究。 这次的作品是基于AVR mega64的MP3播放器,具有SD读取、U盘读取、诺基亚5110屏幕歌词显示的功能。先说一下大致的原理: 以单片机读取SD卡里面的数据为例,SD卡是可以用SPI接口通信的。单片机通过SPI口读取里面的歌曲信息,定时发送到VS1003B这个芯片里面。该芯片是一个音频解码的芯片,可以解码MP3\WMV\MIDI等等音频文件。同时,歌词信息同步显示到nokia5110上,这是一块液晶屏,可以通过字库显示各种文字,也是SPI口通信。 外接几个按键,做为功能选择。上一首、下一首、音量+、音量-等等。 难点
[单片机]
基于<font color='red'>AVR单片机</font>的MP3(完整原理图+代码)
AVR单片机(学习ing)—(四)、ATMEGA16的定时/计数器—04
四、ATMEGA16的定时/计数器 四—(04)、0~5V数字电压调整器 PWM数字电压调整器 由于定时器2(就是上一个实验)只能构成8位的PWM,作为数字电压调整器其精度不够,这里用定时器1构成10位PWM来实现0~5V的数字电压调整值 显然精度提高了吗~你看看后面的小数点就懂得了~~呵呵,按键按的我手疼~~就不按了~~ 下面的是程序:(我以后只给出主程序~~) //------------------------------------------------------------------------------ //PWM数字电压调整器 //由于定时器2只能构成8位的PWM,作为数字电压调整器其精度不够,这里
[单片机]
<font color='red'>AVR单片机</font>(学习ing)—(四)、ATMEGA16的定时/计数器—04
AVR单片机在无线自动报靶系统中的应用
目前,在野外射击训练考核中,大部分还是通过人工报靶的方法,带有很多人为因素(如报靶人员的主观性、情绪等),影响报靶的结果,使得射手不能正确了解自己的成绩,不利于打靶水平的提高。虽然现在市面上出现了一些自动报靶产品,但这些产品的成本高、系统比较复杂,并且占用场地。因此,本文根据实际训练需要,研制出了集轻武器射击训练所需的所有功能于一体的、基于AVR单片机的一种无线自动报靶系统。该系统包括精确和非精确报靶,射击成绩的自动实时显示、统计和打印,可以满足多种武器和多种射击模式的训练需求,对目标的隐显时机、次数、间隔等均按训练大纲要求由电脑自动控制,既可同时监控多个(25个)靶位的射击情况,也可单独监控一个靶位的射击情况。 1 系统组成  
[单片机]
<font color='red'>AVR单片机</font>在无线自动报靶系统中的应用
AVR单片机(学习ing)—(十)、ATMEGA16的同步串行接口—01
十、ATMEGA16的同步串行接口 十—(01)、ATMEGA16的同步串行接口的介绍 1、ATMEGA16的SPI特点 串行外设接口SPI 允许ATmega16 和外设或其他AVR 器件进行高速的同步数据传输。 ATmega16 SPI 的特点如下: • 全双工, 3 线同步数据传输 • 主机或从机操作 • LSB 首先发送或MSB 首先发送 • 7 种可编程的比特率 • 传输结束中断标志 • 写碰撞标志检测 • 可以从闲置模式唤醒 • 作为主机时具有倍速模式(CK/2) 2、主机与从机之间的SPI连接以及原理 主机和从机之间的SPI 连接如Figure 66 所示。 系统包括两个移位寄存器和一个主机时钟 发生器。通过将
[单片机]
<font color='red'>AVR单片机</font>(学习ing)—(十)、ATMEGA16的同步串行接口—01
AVR单片机I2C总线实验
AVR单片机I2C总线实验。 1、用24C02记录CPU启动次数,并在PB口上显示出来。 2、内部1 M晶振,程序采用单任务方式,软件延时。 3、进行此实验请插上JP1的所有8个短路块,JP7(LED_EN)/PC0/PC1短路块。 4、通过此实验,可以I2C总线操作有个初步认识。 */ #include "iom16v.h" extern unsigned char twi_write(unsigned char addr, unsigned char dd); extern unsigned char twi_read(unsigned char addr, unsigned char *dd); /*延时函数*/
[单片机]
AVR单片机常用库函数整理
AVR常用库函数整理 1. Character Type Functions - 字符类型函数 2. Standard C Input/Output Functions - 标准输入输出函数 3. Standard Library Functions - 标准库和内存分配函数 4. Mathematical Functions - 数学函数 5. String Functions - 字符串函数 6. BCD Conversion Functions - BCD 转换函数 7. Memory Access Functions - 存储器访问函数 8. Delay Functions - 延时函数
[单片机]
AVR单片机频率计设计 频率输入源STM32口
//---------------------STM32 3.3V转5V输出电路------------------------ 完整的程序源码下载: http://www.51hei.com/f/avrplj.rar //---------------------AVR代码----------------------- //芯片用ATMEG16 #include iom16.h #define uchar unsigned char #define uint unsigned int __flash uchar seg ={0x3f,0x06,0x5b,0x4f,0x66,0
[单片机]
<font color='red'>AVR单片机</font>频率计设计 频率输入源STM32口
AVR单片机在蓄电池剩余电量测试仪中的应用
    摘要: 利用一代AVR单片机(AT90S8515)实现蓄电池剩余电量在线测量。该方法通过实时测量蓄电池内阻,推算出剩余电量。最后给出了实验结果。     关键词: 单片机 在线测量 蓄电池 剩余电量 蓄电池作为备用电源,已在计算机网络、通主、电力等领域得到了广泛的应用。蓄电沁的荷电量与整个供电系统的可靠性密切相关,蓄电池剩余电量睦高,系统可靠性越高,否则反之。对于一些重要的用电领域,例如信息处理中心,如果能在既不消耗蓄电池的能量,又不影响用电设备正常工作的条件下,实现蓄电池剩余电量的在线监测,将有重要的实际意义。近几年随着IT产业的迅速发展,电池的重要性越来越突出,对剩余电量精确预测的需求越来越迫切。
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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