当前位置:首页 > 万年历课程设计报告
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
共分享92篇相关文档