万年历课程设计报告 联系客服

发布时间 : 星期六 文章万年历课程设计报告更新完毕开始阅读0b62a5b4a0116c175f0e48f4

WriteAddress(0x80+0x40+0x0f); WriteData(table1[sec1]); /*第二行在此显示完毕*/

ReadyReadTemp(); //读温度准备

TL=ReadOneChar(); //先读的是温度值低位 TH=ReadOneChar(); //接着读的是温度值高位

TN=TH*16+TL/16; //实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 //这样得出的是温度的整数部分,小数部分被丢弃了 TD=(TL)*10/16; //计算温度的小数部分,将余数乘以10再除以16取整, //这样得到的是温度小数部分的第一位数字(保留1位小数)

display_temp1(TN); //显示温度的整数部分 display_temp2(TD); //显示温度的小数部分 //以下部分是闹钟键盘检测程序

if((x==hour2*10+hour1)&&(y==min2*10+min1))//若时间到了,则开启闹钟 {

beep=0; }

else //否则,关闭闹钟 {

beep=1; }

delaynms(10);

tixing(t_mon,t_day); } }

void exter1()interrupt 2 {

uint k;

write_com(0x01); for(k=0;k<2000;k++) {

while(key1==0) //键盘扫描.当key1按下时, { //闹钟的小时部分加一 delaynms(10);

if(key1==0) //消抖 {

delaynms(10);

while(key1==0); //松手检测 x++;

if(x==24) //小时部分加到24后自动清零 x=0; } }

33

while(key2==0) //键盘检测。当key2按下时, {

delaynms(10); //闹钟的分钟部分加一 if(key2==0) //消抖 {

delaynms(10);

while(key2==0);//松手检测 y++;

if(y==60) //若分钟部分加到60,则自动清零 y=0; }

}

show_naozhong(x,y); //调用闹钟显示程序 }

write_com(0x01); }

void tixing(unsigned char mm,unsigned dd) {

uchar i;

if(mm==0x01&&dd==0x01) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table6[i]); }

show();

if(mm!=0x01||dd!=0x01) break; } }

if(mm==0x02&&dd==0x14) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table7[i]); }

show();

if(mm!=0x02||dd!=0x14)

34

/* break; } }

if(mm==0x04&&dd==0x05) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table8[i]); }

show();

if(mm!=0x04||dd!=0x05) break; } }

if(mm==0x05&&dd==0x01) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table9[i]); }

show();

if(mm!=0x05||dd!=0x01) break; } }

if(mm==0x06&&dd==0x15) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table10[i]); }

show();

if(mm!=0x06||dd!=0x15) break; }

35

}

}

if(mm==0x08&&dd==0x01) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table11[i]); }

show();

if(mm!=0x08||dd!=0x01) break; } }

if(mm==0x09&&dd==0x10) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table12[i]); }

show();

if(mm!=0x09||dd!=0x10) break; } }

if(mm==0x10&&dd==0x01) {

while(1) {

WriteAddress(0x80); for(i=0;i<16;i++) {

WriteData(table13[i]); }

show();

if(mm!=0x10||dd!=0x01) break; } } */

36