课程设计(论文)基于单片机的电子闹钟的设计.doc
《课程设计(论文)基于单片机的电子闹钟的设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的电子闹钟的设计.doc(24页珍藏版)》请在三一办公上搜索。
1、基于单片机的电子闹钟的设计作者: 指导老师: (安徽农业大学工学院 07级农业机械化及其自动化专业 合肥 230036)摘要:本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃功能的电子闹钟。当前电子钟开发手段采用了较多的分立元器件,不仅占用很大空间而且利用率比较低。单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。 它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。本设计应用单片机STC12C5A16AD芯片作为核心,由LCD1602液晶屏显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。这种实现方法的优点是电路简单,性能可靠,实时性好,
2、时间精度高,操作简单,编程容易。 关键词:电子闹钟,单片机,C语言编程1 绪论单片机是微型机的一个主要分支,就其组成和功能而言,一块单片机芯片就是一台计算机。单片机具有如下特点:1 集成度高、体积小、有很高的可靠性;有优异的性能价格比;2 控制功能强;3 低功耗、低电压,便于生产便携式产品;4 外部总线增加了I2C、SPI等串行总线方式,进一步缩小了体积,简化了结构;5 单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。所以单片机的应用非常广泛,在智能仪表、机电一体化、实时控制、分布式多机系统以及人们的生活中均有用武之地。单片机应用的重要意义还在于,它从根本上改变了传统的控制
3、系统设计思路和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种用软件代替硬件的控制技术,是对生产控制技术的一次革命。利用单片机的智能性,可方便地实现具有智能的电子钟设计。单片机均具有时钟振荡系统,利用系统时钟借助微处理器的定时器/计数器可实现电子钟功能。然而系统时钟误差较大,电子钟的积累误差也可能较大,所以可以通过误差修正软件加以修正,或者在设计中加入高精度时钟日历芯片,以精确时间。另外很多功能不同的单片机是兼容的,这就更便于实现产品的多功能性。由于单片机具有货源充足、价格低廉,可软硬件结合使用,能够较方便的实现系统的多功能性,性价比高等诸多优
4、点,故采用单片机作为本设计的硬件基础。2 基于单片机的电子闹钟硬件设计2.1 IC芯片选择2.1.1微处理器选择STC12 系列单片机简要介绍:1. STC12系列单片机为增强型 8051 芯片,1T,单时钟/ 机器周期,指令代码完全兼容传统8051单片机。2. 工作电压:STC12C5410AD 系列工作电压:5.5V - 3.8V(5V 单片机)/3.8V - 2.4V(3V 单片机)STC12C2052AD 系列工作电压:5.5V - 3.4V(5V 单片机)/3.8V - 2.4V(3V 单片机,可到2V)3. 工作频率范围:0 - 35 MHz,相当于普通8051 的 0420MHz
5、.实际工作频率可达48MHz4. 用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K / 1K 字节5. 片上集成 512 字节 RAM(STC12C5410AD 系列), STC12C2052AD 系列单片机为256 字节RAM6. 通用I/O 口(27/23/15 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串
6、口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8. EEPROM 功能9. 看门狗10.内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路)11. 时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟常温下内部R/C 振荡器频率为:5.2MHz 6.8MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,应认为是4MHz 8MHz12. 共2 个16 位定时器/ 计数器,但可用PCA 模块再产生4 个定时器(2052 系列只有两路PCA)13. 外部中断2 路,下降沿中断或低
7、电平触发中断,Power Down 模式可由外部中断唤醒14. PWM(4 路)/PCA(可编程计数器阵列,4 路),5410 系列是4 路,2052 系列只有两路- 也可用来当4 路D/A 使用- 也可用来再实现4 个定时器- 也可用来再实现4 个外部中断(上升沿中断/ 下降沿中断均可分别或同时支持)15. A/D 转换, 10 位精度ADC,共8 路。STC12C2052AD 系列只有8 位精度16. 通用全双工异步串行口(UART),由于STC12 系列是高速的8051,也可再用定时器软件实现多串口17. SPI 同步通信口,主模式/ 从模式18. 工作温度范围: 0 - 75 / -4
8、0 - +8519. 封装:PLCC-32, PDIP-28,SOP-28,PDIP-20,SOP-20,TSSOP-20(超小封状6.4mm 6.4mm,定货)PLCC-32 有27 个I/O 口,PDIP28/SOP28 有23 个I/O 口,PDIP20/SOP20/TSSOP20 有15 个I/O 口,I/O 口不够时,可用74HC595 / 74HC165 串行扩展I/O 口,或用双CPU,三线通信,还多了串口。STC12C5410AD 系列及STC12C2052AD 系列单片机是宏晶科技生产的单时钟/ 机器周期(1T)的单片机,是高速/ 低功耗/ 超强抗干扰的新一代8051 单片机
9、,指令代码完全兼容传统8051,但速度快8-12 倍,内部集成MAX810 专用复位电路。4 路PWM,8 路高速10 位A/D 转换,针对电机控制,强干扰场合。STC12C2052AD 系列只有2 路PWM,8 路高速8 位A/D 转换。图2.1 STC12C5A16AD芯片PDIP封装引脚图2.1.2 常用时钟日历芯片比较在电子闹钟设计中,常用的实时时钟芯片有DS12887、DS1216、DS1643、DS1302。每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。DS12887与DS1216芯片都有内嵌式锂电池作为备用电池; X1203
10、引脚少,没有嵌入式锂电池,跟DS1302芯片功能相似,只是相比较之下,X1203与AT89S51搭配使用时占用I/O口较多。DS1643为带有全功能实时时钟的8K8非易失性SRAM,集成了非易失性SRAM、实时时钟、晶振、电源掉电控制电路和锂电池电源,BCD码表示的年、月、日、星期、时、分、秒,带闰年补偿。同样,DS1643拥有28只管脚,硬件连接起来占用微处理器I/O口较多,不方便系统功能拓展和维护。故而从性价比和货源上考虑,本设计采用实时时钟日历芯片DS1302。2.1.3 DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM
11、,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(1F)来替代。此外,DS1302需要使用32.768KHz的晶振。2.1.4 DS1302引脚说明DS1302引脚图参照图2.2。图2.2 DS1302芯片引脚图其引脚功能参照表2.1。表2.1 DS1302引脚功能说明引脚
12、号名称功能1VCC1备份电源输入2X132.768KHz晶振输入3X232.768KHz晶振输出4GND地5RST控制移位寄存器/复位6I/O数据输入/输出7SCLK串行时钟8VCC2主电源输入2.1.5 DS1302控制字说明在编程过程中要注意DS1302的读写时序。DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表2.2。表2.2 DS1302控制字(即地址及命令字节)BIT7BIT6BIT5BIT4BIT 3BIT 2BIT 1BIT 01RAMA4A3A2A1A0R
13、D控制字的作用是设定DS1302的工作方式、传送字节数等。每次数据的传输都是由控制字开始。控制字各位的含义和作用如下:BIT7:控制字的最高有效位,必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。BIT 6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;BIT 5至BIT 1(A4A0):用A4A0表示,定义片内寄存器和RAM的地址。定义如下:当BIT 6位=0时,定义时钟和其他寄存器的地址。A4A0=06,顺序为秒、分、时、日、月、星期、年的寄存器。当A4A0=7,为芯片写保护寄存器地址。当A4A0=8,为慢速充电参数选择寄存器。当A4A0=31,为时钟多字节方式选择
14、寄存器。当BIT 6=1时,定义RAM的地址,A4A0=030,对应各子地址的RAM,地址31对应的是RAM多字节方式选择寄存器。4BIT 0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。2.2 电子闹钟硬件电路设计电子闹钟至少要包括秒信号发生器、时间显示电路、按键电路、供电电源、闹铃指示电路等几部分。硬件电路框图参照图2.3。该系统使用STC12C5A16AD单片机作为核心,通过读取时钟日历芯片DS1302的数据,完成此电子闹钟的主要功能时钟/日历。使用LCD1602液晶屏显示。 STC12C5A16AD显示键盘时钟日历芯片DS1302+5V电源闹铃电路图2.3 电子闹钟硬件
15、系统框图键盘是为了完成时钟/日历的校对和显示功能。由于此电子闹钟要求具有闹铃功能,所以设计有闹铃电路,进行声音响铃。闹铃电路中的闹铃音乐可以直接采用蜂鸣器闹铃,如当前时刻与闹铃时间相同,单片机向蜂鸣器送出高电平,蜂鸣器发声。采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。也可以在编程的时候编写一段音乐程序,待闹铃时间到时,调用该音乐程序给扬声器,便响起音乐。不过该方法只能做一些简单音乐,并且音乐程序会占用很多单片机存储资源。但闹铃的音乐不是本设计中的重点,故采用最简单的方法,占用单片机一根I/O口。整个电路只使用了一种电源,+5V电源将为整个电路供电。DS1302没有备用电源。当+5
16、V电源被切断后, DS1302不能继续工作。当+5V电源恢复供电,因为断电使系统复位到初始化时间,需要重新校时。具体电路图如下: 3 基于单片机的电子闹钟软件设计单片机可以应用汇编语言和C语言进行编程。,汇编语言与机器指令一一对应所以用汇编语言编写的程序在单片机里运行起来效率较高。C语言程序可读性高,更便于理解。本设计使用C语言编程。3.1 主程序设计第一次上电,系统先进行初始化, LCD显示初始时间并开始走时。单片机依次开始调用键盘扫描子程序、DS1302子程序、闹铃子程序,经过延时,返回程序开头循环运行。主程序流程图如图3.1。图3.1 多功能电子钟主程序流程图3.2子程序设计3.2.1实
17、时时钟日历子程序设计该程序主要实现对DS1302写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。在读写操作子程序中都执行了关中断指令,因为在串行通信时对时序要求比较高,而且在此是用I/O口软件模拟串行时钟脉冲,所以在通信过程中最好保证传输的连续性,不要允许中断。其流程图如图3.2。图3.2 实时时钟日历子程序流程图DS1302每次上电时自动处于暂停状态,必须把秒寄存器的位7置位0,时钟才开始计时。如果DS1302一直没有掉电,则不存在此问题。在进行写操作时,需要先解除写保护寄存器的“禁止”状态。当用多字节模式进行操作时,必须写够8字节。3.2.2显示子程序设计在单片机系统中应用晶液显
18、示器作为输出器件有以下几个优点:显示质量高;数字式接口;体积小、重量轻;功耗低。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。LCD1602是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它由32个5*8点阵字符位组成,每一个点阵字符位都可以显示一个字符,但是它不能显示图形。模块内部自带有160个5*8点阵字型的字符发生器CHROM和8个可由用户自定义的5*8的字符发生器CGRAM。
19、图3.4 显示子程序流程图3.2.3键盘扫描子程序单片机对键盘扫描的方法有随机扫描方式、定时扫描方式和中断扫描方式。在随机扫描方式中,CPU完成某特定任务后,即执行键盘扫描程序,以确定键盘有无按键输入,然后根据按键功能转去执行相应的操作。在执行键盘按键规定的功能中不理睬键盘输入。定时扫描方式与随机扫描方式基本相同,只是利用CPU内的定时中断,每隔一定时间扫描有无按键被按下,键盘反应速度较快,在处理按键功能过程中,可以通过键盘命令进行干预,如取消、暂停等操作。前两种扫描方式均会占用CPU大量时间。不管有没有键入操作,CPU总要在一定的时间内进行扫描,这对于单片机控制系统是很不利的。单片机扫描完键
20、盘,得到键值,并根据键值转入执行对应任务,以实现按键功能。如果没有按键按下,则程序扫描到Key=FFH,将键值Key清零,返回主程序。程序流程如图3.5。图3.5键盘扫描子程序3.2.4闹铃子程序设计闹铃子程序最主要的任务是不断用时钟分(min)与时(hour)同设定的闹铃分(clk_min)与闹铃时(clk_hour)比较,只要满足min等于clk_min、hour等于clk_hour,响铃启动一段时间,并根据外部按键执行相应任务。该程序流程图参见图3.6。图3.6 闹铃子程序流程图4 系统调试调试工作分硬件调试和软件调试两部分,调试方法介绍如下:首先,硬件调试主要是先搭建硬件平台,然后利用
21、万用表等工具对电路检查,最后应用程序进行功能调试。硬件调试比较费时,需要细心和耐心,也需要熟练掌握电路原理。然后,软件调试可以直接应用一些编辑或仿真软件进行,比如单片机C51编辑软件Keil。该软件提供了一个集成开发环境uVision,它包括C编辑器、宏编辑器、连接器、库管理和一个功能强大的仿真调试器。通过编译、运行,可以检查程序错误。但应用此方法,仍需要十分了解所使用元器件的工作方式和管脚连接方式。在软件调试过程中要仔细耐心,即便是多写或少些一两个字符,都无法编译成功。还有一种方式,即应用仿真软件搭建电路的软件平台,再导入程序进行仿真调试。如果电路出错,可以在计算机上方便的修改电路,程序出错
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 论文 基于 单片机 电子 闹钟 设计
链接地址:https://www.31ppt.com/p-4150705.html