单片机万年历程序(能自动调整误差).doc_第1页
单片机万年历程序(能自动调整误差).doc_第2页
单片机万年历程序(能自动调整误差).doc_第3页
单片机万年历程序(能自动调整误差).doc_第4页
单片机万年历程序(能自动调整误差).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

#include /52单片机头文件#include /包含有左右循环移位子函数的库#include #include/*宏定义*/#define uchar unsigned char#define uint unsigned int/*参数定义*/char miao,shi,fen,fge,fshi,sge,sshi,mge,mshi,count,a,b,c,flag,num,keynum,count1;char nian,xingqi,yue,ri;/*对时间调节按钮进行定义*/sbit resget=P36;sbit key_mode=P33;sbit key_up=P34;sbit key_down=P35;/*对发光ds1302的控制*/sbit yi=P10;sbit er=P11;sbit san=P12;sbit si=P13;/*对数码管驱动位进行定义*/sbit fg=P20;sbit fs=P21;sbit sg=P22;sbit ss=P23;/*数码管显示表*/uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xff,0x9c;/*设置初始化时间*/void set1302();void du1302();void set(uchar sel,uchar sel_1);void show_word();void qiehuan();void tiaozheng();void xianshi();/*/函数名:delay()/功能:延时/参数:z(设置z的值即可设置延时 z MS)/*/void delay(uint z) uint x,y;for(x=z;x0;x-) for(y=175;y0;y-); /*用于显示函数的延时*/void delay1(void)unsigned char i=30;while(i-);/*/函数名:display()/功能:数码管显示子函数/参数:输入各位的显示/调用函数:delay()/*/void display(uchar aa,uchar bb,uchar cc,uchar dd) ss=0;P0=tableaa;delay(2);P0=table16;ss=1; sg=0;P0=tablebb;delay(2);P0=table16;sg=1;fs=0;P0=tablecc;delay(2);P0=table16;fs=1;fg=0;P0=tabledd;delay(2);P0=table16;fg=1;/*/函数名:keyscan()/功能:键盘扫描,对时间进行调节/参数:1为时间设置功能键,2对时进行加操作,3对分钟进行加操作/调用函数:delay(),display()/*/uchar id;void keyscan()if(resget=0)delay(5);if(resget=0)set1302();id=0;display(shi/16,shi%16,fshi,fge);du1302();if(key_mode=0)delay(5);if(key_mode=0)if (id+=6)id=0;while (key_mode=0)show_word();if(id!=0)switch(id)case 1: display(16,16,fen/16,fen%16);yi=er=0;break;case 2: display(shi/16,shi%16,16,16);yi=er=0;break;case 3: display(16,16,ri/16,ri%16);san=0;yi=er=1;break;case 4: display(yue/16,yue%16,16,16);san=0;break;case 5: display(16,16,16,xingqi%16);san=1;break;case 6: display(2,0,nian/16,nian%16);break;if(id!=0)if(key_up=0)delay(5);if(key_up=0)while(key_up=0)show_word();set(id,0);/调用时间函数if(key_down=0)delay(5);if(key_down=0)while(key_down=0)show_word();set(id,1);/调用时间函数void show_word()switch(id)case 1: display(16,16,fen/16,fen%16);break;case 2: display(shi/16,shi%16,16,16);break;case 3: display(16,16,ri/16,ri%16);break;case 4: display(yue/16,yue%16,16,16);break;case 5: display(16,16,16,xingqi%16);break;case 6: display(2,0,nian/16,nian%16);break;/*/sbit SCLK=P17;sbit SDA=P16;sbit RST=P15;/*/void delayus(uchar z) uchar x,y;for(x=z;x0;x-)for(y=1;y0;y-);/*/void DS1302WriteByte(uchar dat)uchar i;SCLK=0;delayus(1);for(i=0;i=1; /*/uchar DS1302ReadByte()uchar i,dat;delayus(1);for(i=0;i=1; if(SDA=1) dat=dat|0x80; SCLK=1; delayus(1);SCLK=0; delayus(1);return dat; /*/uchar DS1302Read(uchar cmd)uchar dat;RST=0; SCLK=0; RST=1; DS1302WriteByte(cmd); dat=DS1302ReadByte();SCLK=1; RST=0; return dat; /*/ void DS1302Write(uchar cmd, uchar dat)RST=0;SCLK=0;RST=1; DS1302WriteByte(cmd); DS1302WriteByte(dat);SCLK=1; RST=0; /*根据按键选择调整相应的时间*/void set(char sel,char sel_1)char address,time;char max,min;if(sel=1)address=0x82;max=59;min=0;/分if(sel=2)address=0x84;max=23;min=0;/小时if(sel=3)address=0x86;max=31;min=1;/日if(sel=4)address=0x88;max=12;min=1;/月if(sel=5)address=0x8a;max=7;min=1;/星期if(sel=6)address=0x8c;max=99;min=0;/年time=DS1302Read(address+1)/16*10+DS1302Read(address+1)%16;if(sel_1=0) time+;else time-;if(timemax) time=min;if(time=0&num=10&num=18&num=26&num=34&num=42&num=50&num=55&num=60)/星期display(16,16,16,xingqi%16);yi=er=1;if(id=0&keynum=1)display(shi/16,shi%16,fen/16,fen%16);/*/函数名:main()/功能:主函数/调用函数:init(),delay(),display()/*/void main() /主函数init();while (1)keyscan();/用于对时间的调整tiaozheng();/用于时间的自动调整,分别得零点,六点,十二点,十八点自动调整qiehuan();/用于自动显示和固定显示的切换xianshi();/用于数码管的显示/*/函数名:timer()/功能:中断

温馨提示

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

评论

0/150

提交评论