万年历-毕业设计(带阴历带闹钟)(8)

2019-04-15 19:25

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

{ for(i=0;i<7;i++) { if(i<6) {b[i]=a[11-i*2+clock]*10+a[10-i*2+clock];} else b[6]=a[24]; } if(b4==0) { delay(3); jj++; if(jj==7) { jj=0; } } if(b2==0) { delay(3); b[jj]++; if(b[6]>=8) b[6]=1; if(b[5]==60)b[5]=0; if(b[4]==60)b[4]=0; if(b[3]==24)b[3]=0; if((b[0]%4==0 && b[0]@0==0){if(b[2]>year2[b[1]-1])b[2]=1;} else {if(b[2]>year1[b[1]-1])b[2]=1;} if(b[1]==13)b[1]=1; if(b[0]==100)b[0]=0; } if(b3==0) { delay(3); b[jj]--; if(b[6]<=0) b[6]=7; if(b[5]==-1)b[5]=59; if(b[4]==-1)b[4]=59; if(b[3]==-1)b[3]=23; if((b[0]%4==0 && b[0]@0==0){if(b[2]<=0)b[2]=year2[b[1]-1];} else {if(b[2]<=0)b[2]=year1[b[1]-1];} if(b[1]==0)b[1]=12; if(b[0]==-1)b[0]=99;

32

b[0]0!=0) b[0]0!=0) ||

||

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

} for(i=0;i<6;i++) { a[11-i*2+clock]=b[i]/10; a[10-i*2+clock]=b[i]; } if (jj<6) { lcdwrite(j[jj]); lcdshuju(0); lcdwrite(j[jj]+1); lcdshuju(0); delay(200); lcdwrite(j[jj]); lcdshuju(a[11-2*jj+clock]+0x30); lcdwrite(j[jj]+1); lcdshuju(a[10-2*jj+clock]+0x30); delay(200); }

if (jj==6) { a[24]=b[6]; a[24]=a[24]&0x07; lcdwrite(j[jj]); lcdshuju(0); delay(200); lcdwrite(j[jj]); lcdshuju(a[24]+0x30); delay(200); } if(b1==1) { dsaddshuju(0x80,(a[1]<<4)+a[0]); dson(); } if(b5==0)clock=12; } } }

void main() {

33

四川大学锦城学院本科毕业论文 speaker=0; lcdrw=0; dson(); lcdon();

lcdwrite(0x80); for(i=0;i<10;i++) {

lcdshuju(row1[i]); delay(1); }

lcdwrite(0x81+0x40); for(i=0;i<8;i++) {

lcdshuju(row2[i]); delay(1); }

lcdwrite(0x8a+0x40); lcdshuju('T'); lcdshuju(':');

lcdwrite(0x8f+0x40); lcdshuju('C'); lcdwrite(0x8b); lcdshuju('W'); lcdshuju('e'); lcdshuju('e'); lcdshuju('K'); dsrst=0; dssclk=0; while(1) {

for(i=0;i<5;i++) { dsrst=1; dswrite(0x81+i*2); k=dsread(); dsrst=0; a[i*2]=k&0x0f; a[i*2+1]=(k>>4)&0x0f; }

dsrst=1;

dswrite(0x8d); k=dsread(); dsrst=0;

a[10]=k&0x0f;

a[11]=(k>>4)&0x0f;

基于单片机电子万年历的设计与实现

34

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

dsrst=1; dswrite(0x8B); k=dsread(); dsrst=0; a[24]=k&0x0f; delay(100); lcdscan(); key(); if(b5==0) { for(i=0;i<12;i++) { if(a[i+12]==a[i])num++; } if(num==12)bigclock=1; else num=0; lcdwrite(0x89+0x40); lcdshuju('&'); } else { lcdwrite(0x89+0x40); lcdshuju(0x00); } if(bigclock==1) { speaker=~speaker; c++; if(c==100){bigclock=0;speaker=0;} } temp=readtemperature();//temp是uint型的。不然会出现温度到25后回00的现象。可能是由于十六进制与十进制的差异。 lcdwrite(0x8d+0x40); lcdshuju(temp/100+0x30); lcdwrite(0x8e+0x40); lcdshuju(temp/10+0x30); lcdwrite(0x8f); lcdshuju(a[24]+0x30); }

35

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

}

#include

#define uint unsigned int #define uchar unsigned char

sbit lcdrs=P0^0; sbit lcdrw=P0^1; sbit lcden=P0^2;

void delay(uint z) {

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--); }//1毫秒左右延时

//lcdwrite() LCD写指令 void lcdwrite(uchar write) { lcdrs=0; P1=write; delay(1); lcden=1; delay(1); lcden=0; }

//lcdshuju() LCD写数据 void lcdshuju(uchar shuju) { lcdrs=1; P1=shuju; delay(1); lcden=1; delay(1); lcden=0; }

//lcdon() LCD显示初始化 void lcdon() { lcden=0; lcdwrite(0x38);//显示模式 lcdwrite(0x0c);//开显示,光标不闪烁 36


万年历-毕业设计(带阴历带闹钟)(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:预防医学试题库及答案

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

马上注册会员

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