
基于ATMega16单片机闹钟设计
36页基于ATMega16单片机的闹钟设计班级:1102班姓名:陈献彬 学号:2011210042同组:陆彦潇邮箱:1508467803@.com目录基于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 系统整体运行正常 16七 附录 17七.1 电路总图 17七.2 全部程序 17摘要本文主要讲述基于AVR单片机的数字电子闹钟,能够显示年月日时分秒,具备闰年平年补偿及闹铃功能时钟信号源采用单片机内部定时器中断实现,该系统原理简单,成本低廉,操作简单控制核心为Atmel公司的AVR高性能单片机,程序基于C语言开发,可读性强。
显示核心为字符液晶LCD1602,显示效果稳定输入模块为6个独立式按键,可操作性强,便于使用关键词: AVR单片机、LCD1602、数字电子闹钟Abstract This paper mainly described the digital electronic based on AVR 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 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, digital electronic alarm clock一 系统构造 根据系统设计要求,本设计由电源模、用户设置键盘、报警模块、显示模块组成,形成实时时钟系统。
总体的框图如下:AVR单片机ATmega16L用户输入按键报警模块显示模块(LCD1602)电源模块方案论证一.1 单片机的的选择:方案一:使用功能较为简单的89C51单片机作为控制器,其优点是价格便宜但是功能相对较为简单,烧录比较复杂,不便于程序调试方案二:使用功能齐全的ATMEGA16单片机作为控制器,内部资源多,价格相对51稍贵,程序烧录容易,便于系统调试根据我们设计的实际要求,我需要一个性能较高,稳定性好的单片机,我们选择了ATMEGA16单片机实现设计一.2 时钟信号源; 方案一:采用单片机内部定时器实现时钟,不需要外接芯片,成本较低,但是时间精度不高,时间掉电会丢失,只适合一般场合使用;方案二:使用时钟芯片DS1302作为时钟源,该芯片断电后需要通过外接电池或者电容供电,因此电路相对比较复杂,成本也较高结合我们应用的实际情况,我们一般要求时钟精度不是很高,只用于一般使用,故选择成本较低的方案一实现一.3 显示器方案一:使用数码管扫描,显示效果一般,只能显示数字,显示效果单一,不易于使用方案二:使用LCD1602液晶显示,可以显示一些字符,显示效果较好,易于使用综上,我们考虑到用户的使用方便,选择用LCD1602作为显示终端。
一.4 报警方案一:通过使用语音芯片实现语音播报来实现报时和闹钟功能但是接口比较麻烦,同时需要录音和实现地址检索方案二:通过三极管控制蜂鸣器发出BEEP声报警,电路简单,价格便宜比较适合我们这个设计的应用二 硬件电路:二.1 按键输入模块 使用六个按键设计,分别为闹钟/时钟切换键,设置键,修改切换键,加,减,确认人性化设计,将调节按键分开,使用加、减键分离,更加便于调试二.2 控制器最小系统:系统使用ATmega16L作为系统主控芯片,主要接受到按键设置信号对报警蜂鸣器和显示器做出相应控制单片机不断的扫描按键信息,通过LCD显示时钟和实现设置、闹钟的功能二.3 显示模块:使用1602液晶的4线控制方法,减少端口使用,提高硬件资源的充分利用偏置电压使用RP1对电源分压输入,可以对液晶对比度进行调节4线控制需要对一个字节的数据分两次写入液晶,所以在程序设计中每个字节需要使用2次传输完成二.4 报警电路设置:使用PNP三极管驱动蜂鸣器报警当单片机输出为低电平时,三级管导通,蜂鸣器发声报警这样设计的原因在于,AVR单片机在上电时的电平输出为高电平,这样可以防止在单片机上电时发出蜂鸣声三 程序设计框图:三.1 主流程图:三.2 按键设置程序:四 液晶屏驱动:四.1 模块说明:1602引脚说明主要技术参数:四.2 通信时序图读时序写时序4线式数据传送共分两次实现一个字节数据的传输。
时序参数四.3 字符显示坐标五 AVR定时器CTC模式介绍CTC( 比较匹配时清零定时器)模式 本设计的时间采用AVR单片机内部定时器0的CTC模式实现六 系统调试经过分阶段的调试,成功完成系统的调试六.1 可以显示时间六.2 调节时间六.3 系统整体运行正常 a. 开机正常显示初始化时间2013年9月10号星期2,00:00:00闹铃关b. 通过按键可以设置时间和闹钟c. 闹钟响起时按下除功能键、设置键外其他键,闹钟停止d. 显示信息正常七 附录七.1 电路总图七.2 全部程序#include