- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AT89C51单片机的实时时钟设计学号姓名一.系统分析本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在4.5V超低压工作;显示部分用LCD1602实现,能够同时显示16x02即32个字符;闹钟部分由蜂鸣器构成,蜂鸣器是一种一体化结构的电子讯响器;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V.采用三线接口与单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能,本设计中为DS1302增加了备用电池,当主电源掉电时,备用电池自动为其供电;温度的采集由DS18B20构成;当闹铃时间到时,通过蜂鸣器播放闹铃铃声。二.系统功能框图的设计三.系统硬件设计本设计采用的元器件如下:单片机AT89C51LM016LDS1302晶振CRYSTAL DS18B2024C02C电容CAP电解电容CAP-ELEC电阻RES排阻RESPACK-8按键BUTTON四.系统软件设计(流程图和软件设计)主程序流程图时间调整程序流程图定时闹铃程序流程图C程序:#include reg52.h#include intrins.h#include 24c02.h#define uchar unsigned char#define uint unsigned int//闹钟显示缓冲区code ucharalarm_one[]= Hello,L.WHou;code ucharalarm_two[]=GOOD MORNING HLW;code uchar w1[]={0x01,0x03,0x1D,0x11,0x1D,0x03,0x01,0x00};code uintcyc[]={1800,1600,1440,1351,1200,1079,960};//音阶1-7的半周期数code uchar tone[]={13,15,16,16,15,16,13,12,12,13,15,16,16,15,16,13,13, 13,15,16,16,15,16,13,12,12,15,13,12,13,12,11,12,6,6,12,15,13,12,6,6,15,13,12,13,12,11,12,6,5,6,0xff};// 乐曲《康定情歌》的简谱表code uchar time[]={8,8,8,4,4,8,8,12,4,8,8,8,4,4,8,16,8,8,8,8,4,4,8,8,12,4,8,8,4,4,4,4,8,24,8,24,8,24,8,16,8,8,8,4,4,4,4,8,16,8,32};// 节拍表uchar H0,L0,cnt;uchar code tabe1[]=20 - - ; //液晶一直显示的字符uchar code tabe2[]= : : ;uchar code tabe3[]=Alarm set:;uchar miao,fen,shi,nian,yue,ri,week,wendu_shi,wendu_ge,wendu_shu,variate,alarm_shi,alarm_fen,alarm_miao;uchar flag=1,count=0,flag_up=0,flag_down=0,flag_alarm=0,alarm_on,alarm_count=0,done=0;uintwendu;//定义IOsbit DQ = P1^0; //ds18b20温度传送数据IO口sbit ds1302_rst = P1^1; //1302复位sbit ds1302_io = P1^2; //数据输入输出sbit ds1302_sclk= P1^3; //串行时钟sbitalarm_out = P3^6;sbit lcd1602_rs = P2^0; // 1602命令、数据选择sbit lcd1602_rw = P2^1; // 1602写sbit lcd1602_e = P2^2; // 1602使能sbit set = P2^4;//选择按键sbit up = P2^5;//加sbit down= P2^6;//减sbitnao = P2^7;sbit ACC0=ACC^0;sbit ACC7=A
文档评论(0)