基于ATMega16单片机闹钟设计

上传人:pu****.1 文档编号:552680929 上传时间:2024-03-17 格式:DOCX 页数:36 大小:378.27KB
返回 下载 相关 举报
基于ATMega16单片机闹钟设计_第1页
第1页 / 共36页
基于ATMega16单片机闹钟设计_第2页
第2页 / 共36页
基于ATMega16单片机闹钟设计_第3页
第3页 / 共36页
基于ATMega16单片机闹钟设计_第4页
第4页 / 共36页
基于ATMega16单片机闹钟设计_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《基于ATMega16单片机闹钟设计》由会员分享,可在线阅读,更多相关《基于ATMega16单片机闹钟设计(36页珍藏版)》请在金锄头文库上搜索。

1、基于ATMega16单片机的闹钟设计班级:1102班姓名:陈献彬 学号:2011210042同组:陆彦潇邮箱:目录基于ATMega16单片机的1闹钟设计1一系统构造3方案论证3一.1单片机的的选择:3一.3时钟信号源;4一.4显示器4一.5报警4二硬件电路:4二.1电源电路设计4二.2按键输入模块5二.3控制器最小系统:6二.4显示模块:7二.5报警电路设置:8三程序设计框图:9三.1主流程图:9三.2按键设置程序:10四液晶屏驱动:10四.1模块说明:10四.2通信时序图11四.3字符显示坐标12五AVR定时器CTC模式介绍12六系统调试13六.1可以显示时间14六.2调节时间15六.3系统

2、整体运行正常。16七附录17七.1电路总图17七.2全部程序17摘要本文主要讲述基于AVR单片机的数字电子闹钟,能够显示年月日时分秒,具备闰年平年补偿及闹铃功能。时钟信号源采用单片机内部定时器中断实现,该系统原理简单,成本低廉,操作简单。控制核心为Atmel公司的AVR高性能单片机,程序基于C语言开发,可读性强。显示核心为字符液晶LCD1602,显示效果稳定。输入模块为6个独立式按键,可操作性强,便于使用。关键词: AVR单片机、LCD1602、数字电子闹钟AbstractThis paper mainly described the digital electronic based on A

3、VR microcontroller able to display when the alarm clock, date of February alone, have a leap year provides compensation and alarm function. The clock signal source adopts singlechip internal timer interrupt achieve, this system theory is simple, low cost, simple operation. Atmel company control core

4、 for the AVR high-performance single chip microcomputer based on C language, program development, readable. Show LCD1602 core to characters LCD display effect, stable. Input module for six independent type key, the maneuverability is strong, easy to use.Keywords: AVR microcontroller, LCD1602, digita

5、l electronic alarm clock一 系统构造 根据系统设计要求,本设计由电源模、用户设置键盘、报警模块、显示模块组成,形成实时时钟系统。总体的框图如下:AVR单片机ATmega16L用户输入按键报警模块显示模块(LCD1602)电源模块方案论证一.1 单片机的的选择:方案一:使用功能较为简单的89C51单片机作为控制器,其优点是价格便宜。但是功能相对较为简单,烧录比较复杂,不便于程序调试。方案二:使用功能齐全的ATMEGA16单片机作为控制器,内部资源多,价格相对51稍贵,程序烧录容易,便于系统调试。根据我们设计的实际要求,我需要一个性能较高,稳定性好的单片机,我们选择了ATM

6、EGA16单片机实现设计。一.2 时钟信号源; 方案一:采用单片机内部定时器实现时钟,不需要外接芯片,成本较低,但是时间精度不高,时间掉电会丢失,只适合一般场合使用;方案二:使用时钟芯片DS1302作为时钟源,该芯片断电后需要通过外接电池或者电容供电,因此电路相对比较复杂,成本也较高。结合我们应用的实际情况,我们一般要求时钟精度不是很高,只用于一般使用,故选择成本较低的方案一实现。一.3 显示器方案一:使用数码管扫描,显示效果一般,只能显示数字,显示效果单一,不易于使用。方案二:使用LCD1602液晶显示,可以显示一些字符,显示效果较好,易于使用。综上,我们考虑到用户的使用方便,选择用LCD1

7、602作为显示终端。一.4 报警方案一:通过使用语音芯片实现语音播报来实现报时和闹钟功能。但是接口比较麻烦,同时需要录音和实现地址检索。方案二:通过三极管控制蜂鸣器发出BEEP声报警,电路简单,价格便宜。比较适合我们这个设计的应用。二 硬件电路:二.1 按键输入模块 使用六个按键设计,分别为闹钟/时钟切换键,设置键,修改切换键,加,减,确认。人性化设计,将调节按键分开,使用加、减键分离,更加便于调试。二.2 控制器最小系统:系统使用ATmega16L作为系统主控芯片,主要接受到按键设置信号。对报警蜂鸣器和显示器做出相应控制。单片机不断的扫描按键信息,通过LCD显示时钟和实现设置、闹钟的功能。二

8、.3 显示模块:使用1602液晶的4线控制方法,减少端口使用,提高硬件资源的充分利用。偏置电压使用RP1对电源分压输入,可以对液晶对比度进行调节。4线控制需要对一个字节的数据分两次写入液晶,所以在程序设计中每个字节需要使用2次传输完成。二.4 报警电路设置:使用PNP三极管驱动蜂鸣器报警。当单片机输出为低电平时,三级管导通,蜂鸣器发声报警。这样设计的原因在于,AVR单片机在上电时的电平输出为高电平,这样可以防止在单片机上电时发出蜂鸣声。三 程序设计框图:三.1 主流程图:三.2 按键设置程序:四 液晶屏驱动:四.1 模块说明:1602引脚说明主要技术参数:四.2 通信时序图读时序写时序4线式数

9、据传送共分两次实现一个字节数据的传输。时序参数四.3 字符显示坐标五 AVR定时器CTC模式介绍CTC( 比较匹配时清零定时器)模式 本设计的时间采用AVR单片机内部定时器0的CTC模式实现。六 系统调试经过分阶段的调试,成功完成系统的调试。六.1 可以显示时间六.2 调节时间六.3 系统整体运行正常。 a. 开机正常显示初始化时间2013年9月10号星期2,00:00:00闹铃关。b. 通过按键可以设置时间和闹钟。c. 闹钟响起时按下除功能键、设置键外其他键,闹钟停止。d. 显示信息正常。七 附录七.1 电路总图七.2 全部程序#include #define bee PORTB.0#inc

10、lude #includeint s,year;int sec,min,hour,date,month,xuanze,flog,flog1,week;int sec0,min0,hour0,bee_0,bee_turn;unsigned char key,moshi;unsigned char key_scan();unsigned const date_run12=31,28,31,30,31,30,31,31,30,31,30,31; /闰年月份unsigned const date_pin12=31,29,31,30,31,30,31,31,30,31,30,31; /平年月份unsig

11、ned char leapyear(int year1);unsigned char bee_clock();interrupt TIM0_COMP void timer0_comp_isr(void) unsigned char temp,temp1,tt; s+; if(s=1000) s=0; sec+; tt=bee_clock(); if(bee_turn) if(tt=1) bee=0; bee_0=1; if(bee_00) bee_0+; if(bee_0=20) bee=1; bee_0=0; if(sec=60) sec=0; min+; if(min=60) min=0; hour+; if(hour=24) hour=0; temp=leapyear(year); if(temp=0) temp1=date_pinmonth+1; if(temp=1) temp1=date_runmonth+1; date+; week+; if(week=8) week=1; if(date=temp1) date=0; month+; if(month=13) mon

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 微软认证

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号