预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机课程设计报告题目:简易电子时钟专业:自动化班级:12级自动化1班日期:2014年3月PAGE\*MERGEFORMAT14设计目的随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用STC89C51单片机作为核心,功耗小,能在5V的低压工作,电压可选用3~5V电压供电。综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。本电路为实现电子万年历的功能,采用单片机STC89C51,辅助以必要的外围电路,用C语言编写程序,并进行模块化设计而成的电子万年历系统.它通过LCD能正确显示阳历星期和时分秒,温度等,可以进行整点提醒,具有功能稳定,精确度高和可调的特点。1、通过《单片机原理及应用》教程了解单片微型计算机的发展;2、根据课程设计的要求,学会设计程序的过程,学会应用程序设计调试软件、学会根据要求运用PCB设计电路板硬件部分;3、通过调试程序设计模块,掌握单片微型计算机的结构原理,了解程序设计的编程思想;4、通过软件调试熟悉使用单片机指令系统,掌握C语言程序设计方法及编程技巧,掌握子程序的设计与使用,熟悉定时器中断服务程序的设计及调用过程。5、综合课程设计更全方面了解单片机的硬件和软件知识。设计要求和方案选择设计要求:显示出基本时间:时、分、秒;(基础部分)显示年、月、日、周具体时间(拓展部分)断电保护时间功能(拓展部分)环境温度感应功能显示(拓展部分)整点报时功能(拓展部分)方案选择:根据题目基本要求以及外拓展功能,本次单片机课程设计打算以AT89S52单片机系统为基础实现以上的设计要求,并在此分为软硬件模块结合实现所要求的功能,各重要模块如下:AT89S52单片机最小系统最小系统包括晶体振荡电路、复位开关和电源部分。图2为STC89C52RC单片机的最小系统。DS1302时钟芯片模块时钟模块采用DS1302芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:RST复位、I/O数据线、SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。18B20温度感应芯片模块温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55℃~125℃,可编程为9位~12位A/D转换精度,测温分辨率达到0.0625℃,采用寄生电源工作方式,CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。LCD1602液晶显示器模块LCD液晶显示模块采用LCD1602型号,具有很低的功耗,正常工作时电流仅2.0mA/5.0V。通过编程实现自动关闭屏幕能够更有效的降低功耗。LCD1602分两行显示,每行可显示多达16个字符。LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,通过内部指令可实现对其显示多样的控制,并且还能利用空余的空间自定义字符。蜂鸣器模块软件设计当硬件做出来的时候下一步就是在软件上实现所要求的功能,各个芯片最好都应该有各自的基本C文件程序,然后再在主函数上用函数的调用的方法最后实现功能。以下是本次课程设计的全部代码:#include<reg51.h>#include"DS18B20_3.H"#defineuintunsignedint#defineucharunsignedcharuchara,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;//flag用于读取头文件中的温度值,和显示温度值#defineyh0x80//LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#defineer0x80+0x40//LCD第二行初始位置(因为第二行第一个字符位