电子日历毕业设计论文(6)

2020-02-22 11:01

附 录 if((u1+1)==0) { u1=59; }

if(u1>59) { u1=59; } }

Write_ds1302(rd,(u1/10)<<4 | (u1));////秒 write_sfm(fd,u1);

lcd_wcom(0x80+0x40+fd);//显示分 lcd_wcom(0x38);

lcd_wcom(0x0f);//显示功能开,有光标 }

//时的加减子函数//输入//

void hjia_key(uchar rd,uchar wd,uchar fd,uchar shi) {

u0=Read_ds1302(wd);

u0=((u0&0x70)>>4)*10+(u0&0x0F); if(shi==1) { u0++; if(u0==24) {u0=0; } } else { u0--;

if((u0+1)==0) { u0=23; }

if(u0>23) { u0=23; } }

Write_ds1302(rd,(u0/10)<<4 | (u0)); //秒 _asm(\

write_sfm(fd,u0);

lcd_wcom(0x80+0x40+fd); //显示分 _asm(\lcd_wcom(0x38);

lcd_wcom(0x0f); //显示功能开,有光标 lcd_wcom(0x80+0x40+fd); }

//日的加减子函数/输入//

void rjia_key(uchar rd,uchar wd,uchar fd,uchar day)

23

附 录 { n3=Read_ds1302(wd);

n3=((n3&0x70)>>4)*10+(n3&0x0F); if (day==1) { n3++; if(n3==32) { n3=0; } } else {n3--;

if((n3+1)==0) {

n3=31; }

_asm(\if(n3>31) { n3=31; } }

Write_ds1302(rd,(n3/10)<<4 | (n3)); _asm(\

write_sfm1(fd,n3); _asm(\

lcd_wcom(0x80+fd); //显示 lcd_wcom(0x38);

lcd_wcom(0x0f); //显示功能开,有光标 }

// 月的子函数//输入//

void yjia_key(uchar rd,uchar wd,uchar fd,uchar yue) {n2=Read_ds1302(wd);

n2=((n2&0x70)>>4)*10+(n2&0x0F); _asm(\

if(yue==1) { n2++; if(n2==13) { n2=0; } } else {n2--;

if((n2+1)==0) { n2=12; }

24

附 录 if(n2>12) { n2=12; } }

Write_ds1302(rd,(n2/10)<<4 | (n2)); _asm(\

write_sfm1(fd,n2); _asm(\

lcd_wcom(0x80+fd); _asm(\lcd_wcom(0x38);

lcd_wcom(0x0f);//显示功能开,有光标 }

// 年的子函数/输入//

void njia_key(uchar rd,uchar wd,uchar fd,uchar nian) { n1=Read_ds1302(wd);

n1=((n1&0xF0)>>4)*10+(n1&0x0F); if (nian==1) {n1++;

if(n1==100) { n1=0; } }

else {n1--;

if((n1+1)==0) { n1=99; }

if(n1>99) { n1=99; } }

Write_ds1302(rd,(n1/10)<<4 | (n1)); write_sfm1(fd,n1);

lcd_wcom(0x80+fd); //显示 lcd_wcom(0x38);

lcd_wcom(0x0f); //显示功能开,有光标 lcd_wcom(0x80+fd); }

//初始化1302,设置开始时候的时分秒 void Init_DS1302(void) {

Write_ds1302(Write_protect,0x00);

25

附 录 Write_ds1302(Write_year,0x0A);//年

Write_ds1302(Write_month,0XC); //月 Write_ds1302(Write_day,0X22); //日 Write_ds1302(Write_hour,0X23); //小时 Write_ds1302(Write_minute,0X59); //分 Write_ds1302(Write_second,0X00); //秒

Write_ds1302(Write_protect,0x80); //关闭寄存器操作; }

void write_sfm(uchar add,uchar dat) { uchar shi,ge; shi=dat/10; ge=dat;

lcd_wcom(0x80+0x40+add); lcd_wdat(table2[shi]); lcd_wdat(table2[ge]); }

void write_sfm1(uchar add,uchar dat) { uchar shi,ge; shi=dat/10; ge=dat;

lcd_wcom(0x80+add); lcd_wdat(table2[shi]); lcd_wdat(table2[ge]); }

void write_sfm2(uchar add,uchar dat) { uchar k,ge; ge=dat;

lcd_wcom(0x80+add);

for(k=(ge*3-3);k<(ge*3);k++) { lcd_wdat(table3[k]); delay(5);} }

void lcd_init1(void) //显示祝福语 { uchar i,k=0; PD_ODR=0x11; lcd_wcom(0x80); for(i=0;i<16;i++)

{ lcd_wdat(table4[i]); }

lcd_wcom(0x80+0x40); for(k=0;k<16;k++)

{ lcd_wdat(table5[k]); delay(100);

26

附 录 PD_ODR=0X18; } }

void naozhong(uchar hour1,uchar day1,uchar month1) {

if(hour1==00) //判断是否时相等 {

if(day1==23) //判断日是否相等 {

if(month1==12) //判断月是否相等 {

lcd_init1();

lcd_wcom(0x01); //清屏 lcd_init(); PD_ODR=0X00; return; } } } }

void read_shzh(void) {

u2=Read_ds1302(Read_second ); //把读取的数据暂时储存在u2 u2=((u2&0x70)>>4)*10+(u2&0x0F); //转十进制的bcd码换成十进制 write_sfm(6,u2);

u1=Read_ds1302(Read_minute ); //分

u1=((u1&0xF0)>>4)*10+(u1&0x0F); //转换成十进制 write_sfm(3,u1); //显示分

u0=Read_ds1302(Read_hour ); //时

u0=((u0&0xF0)>>4)*10+(u0&0x0F); //转换成十进制 write_sfm(0,u0); //显示小时 u3=Read_ds1302(Read_week ); //周

u3=u3&0x0F; //转换成十进制 write_sfm2(11,u3); //显示星期 n1=Read_ds1302(Read_year );

n1=((n1&0xF0)>>4)*10+(n1&0x0F); //转换成十进制 write_sfm1(2,n1); //显示年 n3=Read_ds1302(Read_day );

n3=((n3&0x30)>>4)*10+(n3&0x0F); //转换成十进制 write_sfm1(8,n3); //显示日 n2=Read_ds1302(Read_month );

n2=((n2&0x10)>>4)*10+(n2&0x0F); //转换成十进制 write_sfm1(5,n2); //显示月 if(u1==0)

27

附 录 {naozhong(u0,n3,n2); //闹钟子函数 } }

main() {

_asm(\

delay(20); //延时15ms等待电源电压稳定 GPIO_Init(); //IO口初始化 _asm(\lcd_init(); _asm(\delay(5);

Init_DS1302(); while (1) {_asm(\delay(5); read_shzh(); _asm(\} } 28


电子日历毕业设计论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电气安全管理规程 机械工业部(86)机生字76号

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: