版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子产品设计时钟电路 系 :专业班级 :成员 :指导教师 :摘 要本课程设计目的是设计一个可显示年、月、日、星期、时、分、秒的电子钟,并通过简易的按键操作方便的更改显示的时间。该电子钟控制电路由STC89C51单片机实现,时钟由DS1302时钟芯片提供,显示部分为1602液晶显示模块。本项目基本工作流程为:上电后单片机给DS1302时钟芯片写入一组初始时间,之后单片机定时向DS1302芯片读取时间信息,并通过1602液晶显示模块显示出来,当有控制按键按下后,单片机将更改的时间信号写入DS1302芯片,由于单片机不停的从DS1302芯片中读取信息显示在1602液晶显示模块上,从而实现时间的调整。
2、一、设计目的:设计一个可显示年、月、日、星期、时、分、秒的电子钟,并通过简易的按键操作方便的更改显示的时间。二、设计中的问题及分析:1)时钟信号的来源电子钟的时钟信号的来源一般有两种:单片机提供和时钟芯片提供。这两种时钟信号各有其利弊。采用单片机提供的方案电路结构简单,程序编写方便,但由于不同单片机工作的时钟频率不同程序的移植性不强,时钟的精度不高,一般还需占据单片机的一两个定时计数器,在系统设计时占用了宝贵资源。采用时钟芯片提供的方案虽然电路复杂一些但具有很高的时钟精度和程序的可移植性。通过比对本设计采用了时钟芯片DS1302来提供时钟信号。2)显示方式的选择显示方式也有两种方案:数码管显示
3、和液晶显示,数码管虽有其价格低廉的优势但其功耗大电路复杂,显示稳定度差。出于功耗和显示质量的考虑在本设计中选用了1602液晶显示模块作为显示部分。3)按键的设计按键的作用是用于实现时间信号的更改,可行的方案有两种:数字键盘加功能键和只用功能键。数字键盘加功能键可以提供方便快捷的操作,但过多的按键数不适用本设计通过简易的按键操作方便的更改显示的时间的要求。最终本设计选择了只用功能键的设计方案,通过一个按键循环选择更改对象,通过另一个按键来循环增加时间值。三、硬件电路设计:1)流程图如下所示:电路如下所示:2)芯片及模块说明1. DS1302时钟芯片DS1302慢速充电时钟芯片包括实时时钟/日历和
4、31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式。使用同步串行通信,简化了DS1302与微处理器的通信。与时钟/RAM通信仅需三根线:(1)RST (复位)、(2)I/O(数据线)、和(3)SCLK(串行时钟)。数据可以以每次一个字节或多达31字节的多字节形式传送至时钟/RAM或从其中送出。DS1302设计成能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存数据和时钟信息。2. 1602液晶
5、显示模块工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。四、使用方法及其显示结果 ,有两个按键S1和S2,其作用分别为:S1用于循环选择调整对象,如年份,日期等,被选择的对象所在位置光标闪烁用于指示位置。S2键用于循环增加被S1选中的信息,单片机控制被选信息的循
6、环规律,如调整“月”的个位,当月的十位为零时,个位增加到9后才归零,而当十位为一时,个位增加到2后就归零,这样显示器上不会显示与现实不符合的时间。当时间调整时时钟会停止,直至一次调整完成才恢复运行。该时钟复位时间为2000-00-00 DAY00:00:00,依次为年、月、日、星期、时、分、秒,其中DAY表示星期通过调整可显示星期的英文缩写MON、TUE、WED、THU、FRI、SAT、SUN。 五程序 /*电子钟设计,显示年、月、日、星期、时、分、秒 设计时间2009-12-29 */#include<reg52.h>/完成显示和变化值显示#define uint unsigne
7、d int#define uchar unsigned charuchar data time8=0;uchar data time18=0;uchar code t=0x04,0x0e,0x0e,0x1f,0x1f,0x00,0x04,0;/闹铃的代码uchar code day="DAY MON TUE WED THU FRI SAT SUN"uchar key,n,n1;sbit SCK=P35;sbit SDA=P36;sbit RST = P37; / DS1302复位sbit rs=P22;sbit en=P24;sbit rw=P23;sbit k1=P30;
8、sbit k2=P31;sbit k3=P33;void delay(uchar c) /延时 uchar a,b; for(a=0;a<c;a+) for(b=0;b<110;b+) ;void write1(uchar temp) /写 uchar i; for (i=0;i<8;i+) /循环8次 写入数据 SCK=0; SDA=temp&0x01; /每次传输低字节 temp>>=1; /右移一位 SCK=1; void write(uchar address,uchar dat ) /写一位 RST=0; SCK=0; RST=1; /启动 wr
9、ite1(address);/发送地址 write1(dat);/发送数据 RST=0; /恢复void write_n() /写日历8位 uchar m; RST=0; SCK=0; RST=1; write1(0xbe); for(m=0;m<8;m+) write1(timem); RST=0; uchar read1() /读 uchar i,tem; for (i=0;i<8;i+) /循环8次 读取数据 tem>>=1;/每次传输低字节SCK=0; if(SDA) tem|=0x80; /右移一位 SCK=1; return(tem);uchar read(
10、 uchar address ) /读一位 uchar temp=0x00; RST=0; SCK=0; RST=1; write1(address); temp=read1(); RST=0;/以下为DS1302复位的稳定时间SCK=0;SDA=1;return (temp);/返回void read_n() /读日历8位 uchar m;/liya_10 RST=0; SCK=0; RST=1; write1(0xbf); for(m=0;m<8;m+) timem=read1(); RST=0;SCK=0;SDA=1; void dsdate() /运算 uchar m; for(
11、m=0;m<8;m+) time1m=timem>>4; for(m=0;m<8;m+) timem&=0x0f; void delay1(uchar c) /延时 uint a,b; for(a=0;a<c;a+) for(b=0;b<11;b+) ;void write_add(uchar add) /1602写指令 en=0; rs=0; rw=0; P0=add; en=1; en=0; P0=0xff; void write_date(uchar date)/1602写数据 en=0; rs=1; rw=0; P0=date; en=1;
12、en=0; P0=0xff; void chu() /1602初始化 write_add(0x01); delay1(1); write_add(0x38); delay1(1); write_add(0x0c); delay1(1); write_add(0x06); delay1(1);void key2(uchar m) uchar t; if(k2=0) delay(10); while(k2=0); timem+; if(timem=n) timem=0; time1m<<=4; t=timem+time1m; if(t>=n1) t=0; m<<=1;
13、 m+=0x80; write(m,t); void key3(uchar m) uchar t; if(k2=0) delay(10); while(k2=0); time1m+; if(time1m=n) time1m=0; time1m<<=4; t=timem+time1m; if(t>=n1) t=0; m<<=1; m+=0x80; write(m,t); void key1() /按键 uchar mao; if(k1=0) delay(10); while(k1=0); key+; if(key!=0) mao=read(0x81); mao|=0
14、x80; write(0x80,mao); delay1(1); if(key=1) write_add(0x83);n=10;n1=0xa0;key3(6); if(key=2) write_add(0x84);n=10;n1=0xa0;key2(6); if(key=3) write_add(0x86);n=2;n1=0x13;key3(4); if(key=4) write_add(0x87);n=10;n1=0x13;key2(4); if(key=5) write_add(0x89);n=4;n1=0x32;key3(3); if(key=6) write_add(0x8a);n=1
15、0;n1=0x32;key2(3); if(key=7) write_add(0x8d);n=8;n1=8;key2(5); if(key=8) write_add(0xc2);n=3;n1=0x24;key3(2); if(key=9) write_add(0xc3);n=10;n1=0x24;key2(2); if(key=10) write_add(0xc5);n=6;n1=0x60;key3(1); if(key=11) write_add(0xc6);n=10;n1=0x60;key2(1); if(key=12) key=0; delay1(1); write_add(0x0F);
16、 delay1(1); delay(60); write_add(0x0c); mao&=0x7f; write(0x80,mao); void tu() uchar m; write_add(0x40);/自定义区入口地址 for(m=0;m<8;m+)/写代码 delay1(1); write_date(tm); void main() uchar k,d; key=0; write_n();/ mao=read(0x81);/ mao|=0x80;/write(0x80,0); chu(); tu(); delay1(2); while(1) read_n(); dsdat
17、e(); write_add(0x81); /显示年 delay1(1); write_date('2'); delay1(1); write_date('0'); delay1(1); write_date(time16+0x30); delay1(1); write_date(time6+0x30); delay1(1); write_date('-'); for(k=5;k>3;k-) /显示年月日 delay1(1); write_date(time1k-1+0x30); delay1(1); write_date(timek-1+0x30); delay1(1); if(k=4) break; write_date('-'); delay1(1); write_add(0x8d); /显示星期 delay1(1); d=time5<<2; for(k=0;k<3;k+) write_date(dayd+k); delay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年零售餐饮服务业预付卡退卡政策合同
- 学校教师招聘16人考前自测高频考点模拟试题及答案详解(典优)
- 借信用卡合同
- 车贷款签合同
- 中央空调安装合同
- 中介的居间合同
- 2025-2030海上风电制氢项目经济可行性与国际经验借鉴研究
- 2025-2030活体检测技术防伪能力评估与行业应用深度调研
- 2025-2030汽车AI芯片架构创新与算力需求发展趋势
- 2025-2030民用无人机避障系统技术路线对比与成本效益分析
- 2025广西南宁市公安局第二次公开招聘警务辅助人员445人考试参考题库及答案解析
- 光催化还原剂设计与调控-洞察与解读
- 2025年华能鼎力(北京)新能源有限公司介绍企业发展分析报告
- 仲利国际租赁在线测试答案
- 2025年广东省深圳市检察机关招录劳动合同制司法辅助人员综合素质测试练习题及答案
- 2024年成人高等考试《医学综合》(专升本)试题真题及答案
- 汽轮机安装施工方案 -
- 喀斯特地貌精讲课件
- 部编 二年级语文上册 第七单元【教材解读】
- 无创辅助通气护理
- 城市文化与节事活动的的策划与管理肖岱柏课件
评论
0/150
提交评论