1、电子万年历课程设计 一、任务设计:一、设计任务:设计并制作一个多功能数字钟。二、设计要求:设计能支持年、月、日、礼拜、时、分、秒的时钟,时钟有时刻调整功能及闹钟功能;时钟附带有一个温度计功能,温度检测精度高于2度,显示精度为1度;时钟具有装卸电池时掉电保护功能,保护时刻大于5分钟;时钟功耗小于5V。二、方案论证:1.显示部份:显示部份是本次设计的重要部份,一般有以下两种方案:方案一:采用LED显示,分静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且靠得住性也较低。而对于动态显示方式,虽能够避免静态显示的问题,但设计上若是处置不妥,易造成亮度低,有闪烁等问题。方案二
2、:采用LCD显示。LCD液晶显示具有丰硕多样性、灵活性、电路简单、易于控制而且功耗小等长处,对于信息量多的系统,是比较适合的。鉴于上述原因,咱们采用方案二。2.数字时钟:数字时钟是本设计的核心的部份。按照需要可采用以下两种方案实现:方案一:方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节别离寄存时钟的时、分、秒信息。利用按时器与软件结合实现1秒按时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但当单片机不上电,程序将不
3、执行。而且由于每次执行程序时,按时器都要从头赋初值,所以该时钟精度不高。方案二:方案采用Dallas公司的专历时钟芯片DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情形下仍能正常工作,芯片内部包括锂电池。当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。而且即便系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时刻。基于时钟芯片的上述长处,本设计采用方案二完成数字时钟的功能。3.温度收集:由于此刻用品追求多
4、样化,多功能化,给系统加上温度测量显示模块,能够方便人们的生活,使该设计具有人性化。方案一:采用热敏电阻,可知足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、靠得住性较差,对于检测小于1摄氏度的信号是不适用的。方案二:采用温度传感器DS18B20。DS18B20能够知足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,利用方便。基于DS18B20的以上长处,咱们决定选取DS18B20来测量温度。三、整体方案:1.工作原理:本设计采用STC89
5、C52RC单片机作为本系统的控制模块。单片机可把由DS18B20、DS130二、AT24C02中的数据利用软件来进行处置,从而把数据传输到显示模块,实现温度、日历和闹铃的显示。以LCD液晶显示器为显示模块,把单片机传来的数据显示出来,而且显示多样化。在显示电路中,主要靠按键来实现各类显示要求的选择与切换。2.整体设计:设计整体框架图如图1ST89C52RCLCD液晶显示模块DS1302DS18B20键盘输入、四、系统硬件设计(单元电路设计及分析):1.STC89C52RC单片机最小系统。最小系统包括晶体振荡电路、复位开关和电源部份。图2为STC89C52RC单片机的最小系统。 图2 最小系统电
6、路图2.温度测量模块:温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55125,可编程为9位12位A/D转换精度,测温分辨率达到,采用寄生电源工作方式,CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。接口电路如图3所示。图3 DS18B20测量电路3.时钟模块:时钟模块采用DS1302芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实不时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实不时钟/日历电路提供秒分时日日期月年的信息每一个月的天数和闰年的天数可自动调整时钟操作可通过AM
7、/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:RST复位、I/O数据线、SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低,维持数据和时钟信息时功率小于1mW,其接线电路如图4所示:4. LCD液晶显示模块:LCD液晶显示模块采用LCD1602型号,具有很低的功耗,正常工作时电流仅。通过编程实现自动关闭屏幕能够更有效的降低功耗。LCD1602分两行显示,每行可显示多达16个字符。LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图
8、形,通过内部指令可实现对其显示多样的控制,而且还能利用空余的空间自概念字符。其接线如图6所示。5.整体电路:五、主程序流程如图9所示: 是 否时刻设定程序流程如图10所示:温度测量流程图如图11所示:六、程序:/*DS1302有关子函数*/void write_byte(uchar dat)/写一个字节 ACC=dat; RST=1; for(a=8;a0;a-) IO=ACC0; SCLK=0; SCLK=1; ACC=ACC1; uchar read_byte()/读一个字节 RST=1; for(a=8;a0;a-) ACC7=IO; SCLK=1; SCLK=0; ACC=ACC1;
9、return (ACC);/-void write_1302(uchar add,uchar dat)/向1302芯片写函数,指定写入地址,数据 RST=0; SCLK=0; RST=1; write_byte(add); write_byte(dat); SCLK=1; RST=0;uchar read_1302(uchar add)/从1302读数据函数,指定读取数据来源地址 uchar temp; RST=0; SCLK=0; RST=1; write_byte(add); temp=read_byte(); SCLK=1; RST=0; return(temp);uchar BCD_D
10、ecimal(uchar bcd)/BCD码转十进制函数,输入BCD,返回十进制 uchar Decimal; Decimal=bcd4; return(Decimal=Decimal*10+(bcd&=0x0F);七、按键功能说明A键:复位键B键:位移键C键:增加键D键:减少键E键:秒清零键八、实验心得电子万年历的设计进程中,通过量次的反复测试与分析,对电路的原理和功能加倍熟悉,同时提高了设计功能与对电路的分析能力。通过此设计,大体完成了设计任务的要求。在这次课程序设计中在收获知识的同时,还收获了阅历,收获了成熟,更重要的是在课程序设计里我学会了很多学习的方式,这是以后最实用的,面对社会的挑战,只有不断学习,再学习。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1