ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:17.76KB ,
资源ID:3950681      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3950681.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(万年历初始源程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

万年历初始源程序.docx

1、万年历初始源程序12864、DS1302制作的电子万年历代码如下:/*名称:电子万年历功能:自动计时100年,节日、时间提醒作者:甘春生实验板:KX-1N/*#include#define uint unsigned int#define uchar unsigned charsbit RS=P20;sbit RW=P21;sbit EN=P22;sbit FUN=P10;sbit OK=P11;sbit INC=P12;sbit DEC=P13;sbit RST=P25;sbit IO=P26;sbit SCLK=P27;uchar hour=10;uchar min=18;uchar se

2、c=30;uchar year=10;uchar mon=1;uchar date=20;uchar day=3;uchar count=0;uchar flag=0;uchar num=0;uchar i=6;void delay(uint i) uint j; for(;i0;i-) for(j=0;j125;j+);void Write_Ds1302_Byte(uchar temp) uchar i; for(i=0;i=1; SCL=1; void Write_Ds1302(uchar address,uchar dat) RST=0; SCLK=0; RST=1; Write_Ds1

3、302_Byte(address); Write_Ds1302_Byte(dat); SCLK=1; RST=0;uchar Read_Ds1302(uchar address) uchar i,temp=0x00; RST=0; SCLK=0; RST=1; Write_Ds1302_Byte(address); for(i=0;i=1; SCLK=0; if(IO) temp=temp|0x80; SCLK=1; RST=0; IO=0; return temp;void Check_Busy(void) RW=1;/RW=1为读 RS=0;/RS=0为指令 EN=1; while(P2&

4、0X80); void Write_com(uchar com) Check_Busy(); RW=0; RS=0; P2=com; EN=1; delay(1); EN=0;void Write_dat(uchar dat) Check_Busy(); RW=0; RS=1; P2=dat; EN=1; delay(1); EN=0; void Lcd_Pos(uchar Xpos,uchar Ypos) uchar tmp; Xpos&=0x0f; Ypos&=0x03; tmp=Xpos; if(Ypos=0) tmp|=0x80; if(Ypos=1) tmp|=0x90; if(Yp

5、os=2) tmp|=0x88; if(Ypos=3) tmp|=0x98; Write_com(tmp);void Write_LCD_String(uchar x,uchar y,uchar *s) Lcd_Pos(x,y); Lcd_Pos(x,y); while (*s!=0) Write_dat(*s); s+; delay(1); void LCD_Rst(void) Write_com(0x30); Check_Busy(); Write_com(0x01); Write_com(0x06); Write_com(0x0c); delay(5);void Write_day(uc

6、har Sel) switch (Sel) case 1:Write_LCD_String(6,1,一);break; case 2:Write_LCD_String(6,1,二);break; case 3:Lcd_Pos(6,1);Write_dat(0xc8);Write_dat(0xfd);break; case 4:Write_LCD_String(6,1,四);break; case 5:Write_LCD_String(6,1,五);break; case 6:Write_LCD_String(6,1,六);break; case 7:Write_LCD_String(6,1,日

7、);break; default :break; void Updat_Time(void) Lcd_Pos(3,0);Write_dat(0x30+(year/10);Write_dat(0x30+(year%10); Lcd_Pos(0,1);Write_dat(0x30+(mon/10);Write_dat(0x30+(mon%10); Lcd_Pos(2,1);Write_dat(0x30+(date/10);Write_dat(0x30+(date%10); Lcd_Pos(0,2);Write_dat(0x30+(hour/10);Write_dat(0x30+(hour%10);

8、 Lcd_Pos(2,2);Write_dat(0x30+(min/10);Write_dat(0x30+(min%10); Lcd_Pos(4,2);Write_dat(0x30+(sec/10);Write_dat(0x30+(sec%10); Write_day(day);void Write_Time(void) Write_Ds1302(0x8e,0x00); Write_Ds1302(0x8c,(year/10)*16+year%10); Write_Ds1302(0x88,(mon/10)*16+mon%10); Write_Ds1302(0x86,(date/10)*16+da

9、te%10); Write_Ds1302(0x84,(hour/10)*16+hour%10); Write_Ds1302(0x82,(min/10)*16+min%10); Write_Ds1302(0x80,(sec/10)*16+sec%10); Write_Ds1302(0x8a,(day/10)*16+day%10); Write_Ds1302(0x8e,0x80);void Read_Time(void) year=(Read_Ds1302(0x8d)4)*10+Read_Ds1302(0x8d)%16; mon=(Read_Ds1302(0x89)4)*10+Read_Ds130

10、2(0x89)%16; date=(Read_Ds1302(0x87)4)*10+Read_Ds1302(0x87)%16; hour=(Read_Ds1302(0x85)4)*10+Read_Ds1302(0x85)%16; min=(Read_Ds1302(0x83)4)*10+Read_Ds1302(0x83)%16; sec=(Read_Ds1302(0x81)4)*10+Read_Ds1302(0x81)%16; day=(Read_Ds1302(0x8b)4)*10+Read_Ds1302(0x8b)%16; Updat_Time(); void Set_Time(void) if

11、(FUN=0) delay(10); if(FUN=0) while(!FUN); flag=1; num+; if(num=8) num=1; if(flag) if(num=1) Lcd_Pos(0,2); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while(!INC); hour+; if(hour=24) hour=0; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); hour-; if(hour=-1) hour=23; Updat_Time(); if(num

12、=2) Lcd_Pos(2,2); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while(!INC); min+; if(min=60) min=0; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); min-; if(min=-1) min=59; Updat_Time(); if(num=3) Lcd_Pos(4,2); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while(!INC); sec+; if(sec=60

13、) sec=0; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); sec-; if(sec=-1) sec=59; Updat_Time(); if(num=4) Lcd_Pos(3,0); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while(!INC); year+; if(year=100) year=0; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); year-; if(year=-1) sec=

14、99; Updat_Time(); if(num=5) Lcd_Pos(0,1); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while(!INC); mon+; if(mon=13) mon=1; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); mon-; if(mon=0) mon=12; Updat_Time(); if(num=6) Lcd_Pos(2,1); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while

15、(!INC); date+; if(date=32) date=1; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); date-; if(date=0) date=31; Updat_Time(); if(num=7) Lcd_Pos(6,1); Write_com(0x0d); if(INC=0) delay(10); if(INC=0) while(!INC); day+; if(day=8) day=1; Updat_Time(); if(DEC=0) delay(10); if(DEC=0) while(!DEC); day-; if(day=0) day=7; Updat_Time(); i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1