以AT89C51单片机为核心-制作一个LCD显示的智能电子钟_第1页
以AT89C51单片机为核心-制作一个LCD显示的智能电子钟_第2页
以AT89C51单片机为核心-制作一个LCD显示的智能电子钟_第3页
以AT89C51单片机为核心-制作一个LCD显示的智能电子钟_第4页
以AT89C51单片机为核心-制作一个LCD显示的智能电子钟_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

页脚页脚第6章智能电子钟的设计6.1功能要求设计要求以AT89C51单片机为核心,制作一个LCD显示的智能电子钟:计时:秒、分、时、天、周、月、年。闰年自动判别。五路定时输出,可任意关断(最大可到16路)。时间、月、日交替显示。自定任意时刻自动开/关屏。(6)计时精度:误差W1秒/月(具有微调设置)。(7)键盘采用动态扫描方式查询。所有的查询、设置功能均由功能键K1、K2完成。工作原理本设计采用市场上流行的时钟芯片DS1302进行制作。DS1302是DALLAS公司推出的涓流充电时钟芯片,含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与计算机进行通信,使得管脚数量减少。实时时钟/日历电路能够计算2100年之前的秒、分、时、日、星期、月、年的,具有闰年调整的能力。DS1302时钟芯片的主要功能特性:能计算2100年之前的年、月、日、星期、时、分、秒的信息;每月的天数和闰年的天数可自动调整;时钟可设置为24或12小时格式。31B的8位暂存数据存储RAM。(3)串行】/。口方式使得引脚数量最少。(4)DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需3根线。(5)宽围工作电压2.0-5.5V。(6)工作电流为2.0A时,小于300nA。(7)功耗很低,保持数据和时钟信息时功率小于1mW。方案论证系统硬件电路的设计FUIVAIDrnY«iiF口2flM工rn*Ri-.FHSi'AlEFIKMICrnTfwnaajikrr.i/AiR3JU.IDA]JUL11rz.-»uizR3MAI9PIAJCHrzjixifF1QTKMIri-m:!-njvrnrazrimro.+TO□unrajslfTOf?ET□u系统程序的设计#include<reg51.h>#include<lcd.h>#include<ds1302.h>#defineucharunsignedchar#defineuintunsignedintsbitkeyl=P3-0;//设置键sbitkey2=P3-3;//调节键加sbitkey3=P3八6;//设置键减ucharsecond,minute,hour;ucharday,week,month,year;ucharpos_flag=0;ucharkeyflag=0;//按键标志位//函数声明ucharread1302(ucharadd);//读地址、数据voidwrite1302(ucharadd,uchardate);//写入地址、数据voidwrite__date(ucharadd,uchardate);voidinit_lcd();voidinit_ds1302();voiddelay(uchartime);voidDisp_1602(ucharx,uchary,uchar*p);voidkeyscan();voidsettime();voidsettime(){write1302(0x8e,0x00); //关闭写保护TOC\o"1-5"\h\zwrite1302(0x80,second/10*16+second%10); //秒write1302(0x82,minute/10*16+minute%10); //分write1302(0x84,hour/10*16+hour%10); //时write1302(0x86,day/10*16+day%10); //日write1302(0x88,month/10*16+month%10); //月write1302(0x8a,week/10*16+week%10); //星期write1302(0x8c,year/10*16+year%10); //年write1302(0x8e,0x80);}voiddisplay()second=read1302(0x81);write__date(0xca,0x30+second%10);write__date(0xc9,0x30+second/10);minute=read1302(0x83);write__date(0xc7,0x30+minute%10);write__date(0xc6,0x30+minute/10);hour=read1302(0x85);write__date(0xc4,0x30+hour%10);write__date(0xc3,0x30+hour/10);day=read1302(0x87);write__date(0x8a,0x30+day%10);write__date(0x89,0x30+day/10);week=read1302(0x8b);write__date(0xcd,0x30+week%10);month=read1302(0x89);write__date(0x87,0x30+month%10);write__date(0x86,0x30+month/10);year=read1302(0x8d);write__date(0x84,0x30+year%10);write__date(0x83,0x30+year/10);}voidkeyscan()//修改调整时间日期{if(key1==0){delay(10);if(key1==0){pos_flag++;while(!key1);keyflag=1;switch(pos_flag){TOC\o"1-5"\h\zwrite_(0x80+4); //年write_(0x0f); //光标闪烁break;write_(0x80+7); //月break;write_(0x80+10); //日break;write_(0x80+0x40+0x0d);//星期break;write_(0x80+0x40+4);//时钟break;write_(0x80+0x40+7);//分钟break;write_(0x80+0x40+10);//秒钟break;default:break;}if(pos_flag==8) //pos_flag=8则退出调整pos_flag=0;keyflag=0; //按键标识清零delay(5);settime();write_(0x0c);//关光标}}}if(key2==0) //调节加键,按下(低电平)就加{delay(15);if(key2==0){while(!key2);switch(pos_flag){year++;if(year==99)year=0;write__date(0x84,0x30+year%10);write__date(0x83,0x30+year/10);break;month++;if(month==13)month=1;write__date(0x87,0x30+month%10);write__date(0x86,0x30+month/10);break;day++;〃闰年二月29〃闰年二月29天if(day==30)day=1;}if((year%4!=0)&&(month==2)) 〃平年二月28天{if(day==29)day=1;}if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//大月31天{if(day==32)day=1;}if(month==4||month==6||month==9||month==11)//小月30天{if(day==31)day=1;}write__date(0x8a,0x30+day%10);write__date(0x89,0x30+day/10);break;week++;if(week==8)week=1;write__date(0xcd,0x30+week);break;hour++;if(hour==24)hour=0;write__date(0xc4,0x30+hour%10);write__date(0xc3,0x30+hour/10);break;minute++;if(minute==60)minute=0;write__date(0xc7,0x30+minute%10);write__date(0xc6,0x30+minute/10);break;second++;if(second==60)second=0;write__date(0xca,0x30+second%10);write__date(0xc9,0x30+second/10);break;default:break;}}}if(key3==0){delay(15);if(key3==0){while(!key3);switch(pos_flag){year--;if(year==0)year=99;write__date(0x84,0x30+year%10);write__date(0x83,0x30+year/10);break;month--;if(month==0)month=12;write__date(0x87,0x30+month%10);write__date(0x86,0x30+month/10);break;day--;if((year%4==0)&&(month==2)) 〃闰年二月29天{if(day==0)day=29;}if((year%4!=0)&&(month==2)) 〃平年二月28天{if(day==0)day=28;}//if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)大月31天//{if(day==0)day=31;}if(month==4||month==6||month==9||month==11)//小月30天{if(day==0)day=30;}}页脚页脚write__date(0x8a,0x30+day%10);write__date(0x89,0x30+day/10);break;week--;if(week==0)week=7;write__date(0xcd,0x30+week);break;hour--;if(hour==0)hour=24;write__date(0xc4,0x30+hour%10);write__date(0xc3,0x30+hour/10);break;minute--;if(minute==0)minute=59;write__date(0xc7,0x30+minute%10);write__date(0xc6,0x30+minute/10);break;second--;if(second==0)second=59;write__date(0xca,0x30+second%10);write__date(0xc9,0x30+second/10);break;default:break;}页脚页脚}}页脚页脚}}voidmain(){init_lcd();delay(2);init_ds1302();delay(2);Disp_1602(1,0,"20-- week");Disp_1602(5,1,"::");while(1){if(keyflag==0){display();}keyscan();}}#ifndef_lcd_h_#define_lcd_h_#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitIcdrs=P2八0;sbitIcdrw=P2」;sbitIcden=P2八2;voiddelay(ucharms){uchari;for(;ms>0;ms--)for(i=110;i>0;i--);}voidwrite_(uchar)//写指令{lcden=0;lcdrs=0;lcdrw=0;P0=;delay(1);lcden=1;delay(1);lcden=0;}//写数据voidwrite_data(uchardate)//写数据{lcden=0;lcdrs=1;lcdrw=0;P0=date;delay(1);lcden=1;delay(1);lcden=0;}voidwrite__date(ucharadd,uchardate){write_(add);delay(1);write_data(date);}voidDisp_1602(ucharx,uchary,uchar*p){while(*p){if(y==0)x|=0x80;elsex|=0xc0;write_(x);delay(5);write_data(*p);x++;p++;}}voidinit_lcd(){delay(15);write_(0x38);delay(15);write_(0x38);delay(5);write_(0x38);write_(0x0c);write_(0x06);write_(0x01);}#endif#ifndef_ds1302_h_#define_ds1302_h_#include<reg51.h>#defineucharunsignedch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论