智能仪表设计实习报告 - 图文(4)

2019-03-23 14:11

write_1302(0x8e,0x80);

}

break;

} }

//------------------------------加键key2----------------------------

if(key1n!=0)//当key1按下以下。再按以下键才有效(按键次数不等于零) {

if(key2==0) //上调键

{ delay(10); if(key2==0) {

buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1;

while(!key2); switch(key1n) {

case 1:miao++;//设置键按动1次,调秒

if(miao==60)

miao=0;//秒超过59,再加1,就归零

write_sfm(0x08,miao);//令LCD在正确位置显示\加\设定好的秒数

write_1302(0x8e,0x00); //允许写,禁止写保护

write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护

write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指

定返回

//write_1602com(0x0b);

15

break;

case 2:fen++;

if(fen==60)

fen=0;

write_sfm(0x05,fen);//令LCD在正确位置显示\加\设定好的分数据

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回

原来的位置

break;

case 3:shi++;

if(shi==24)

shi=0;

write_sfm(2,shi);//令LCD在正确的位置显示\加\设定好的小时数据

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标

回位

break;

case 4:week++;

if(week==8)

week=1;

write_1602com(yh+0x0C);//指定'加'后的周数据显示位置

write_week(week);//指定周数据显示内容 write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码

16

write_1302(0x8e,0x80);//打开写保护

write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需

要光标回位

break;

case 5:ri++;

if(ri==32)

ri=1;

write_nyr(9,ri);//令LCD在正确的位置显示\加\设定好的日期数据 write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光

标回位

break;

case 6:yue++;

if(yue==13)

yue=1;

write_nyr(6,yue);//令LCD在正确的位置显示\加\设定好的月份数据

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x88,temp);//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(yh+7);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标

回位

break;

case 7:nian++;

if(nian==100)

nian=0;

write_nyr(3,nian);//令LCD在正确的位置显示\加\设定好的年份数据

write_1302(0x8e,0x00);//允许写,禁止写保护

17

write_1302(0x8c,temp);//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(yh+4);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标

回位 }

}

//------------------减键key3,各句功能参照'加键'注释--------------- if(key3==0) {

delay(10);//调延时,消抖动 if(key3==0) { }

break;

buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1;

while(!key3); switch(key1n) {

case 1:miao--;

if(miao==-1)

miao=59;//秒数据减到-1时自动变成59

write_sfm(0x08,miao);//在LCD的正确位置显示改变后新的秒数

write_1302(0x8e,0x00); //允许写,禁止写保护

write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护

18

write_1602com(er+0x09);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是

写回原来的位置

//write_1602com(0x0b); break;

case 2:fen--;

if(fen==-1)

fen=59;

write_sfm(5,fen);

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(er+6);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回

原来的位置

break;

case 3:shi--;

if(shi==-1)

shi=23;

write_sfm(2,shi);

write_1302(0x8e,0x00);//允许写,禁止写保护

write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);//打开写保护

write_1602com(er+3);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标

回位

break;

case 4:week--;

if(week==0)

week=7;

write_1602com(yh+0x0C);//指定'加'后的周数据显示位置

write_week(week);//指定周数据显示内容

19


智能仪表设计实习报告 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1.毕业设计(论文)任务书

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

马上注册会员

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