第一范文网 - 专业文章范例文档资料分享平台

基于51单片机的电子万年历设计毕业论文设计

来源:用户分享 时间:2025/5/30 15:17:48 本文由薄荷梦 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

delay_18B20(100); // this message is wery important Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 delay_18B20(100); L_18B20=ReadOneChar(); //读取低八位数据 H_18B20=ReadOneChar(); //读取高八位数据 zhengshu=L_18B20/16+H_18B20*16; //整数部分 xiaoshu_a=(L_18B20&0x0f)*10/16; //小数第一位 }

//------------------DS18B20--------------------- ///////////////////////////////////////////////// /*

* 按键扫描 */

int8 scan_key(void) { int8 val=-1; if (KeyIn1 == 0) { val = 1; while (KeyIn1 == 0); } else if (KeyIn2 == 0) { val = 2; while (KeyIn2 == 0); } else if (KeyIn3 == 0) { val = 3; while (KeyIn3 == 0); } //if (val > 0) //buzzer_sound(); return val; }

/*

* 主界面框架 */

void main_frame(void) { play32(80, 2, 10); play32(32, 2, 10); play8(16, 0, S_xie); play8(40, 0, S_xie); // play8(96, 0, RH);

// play8(120, 0, S_percent); play8(120, 6, S_du); } /*

* 主界面 */

void main_show(bit refresh) {

uint8 lunar[2]; if (refresh) read_time((uint8 *)&time); // 时间 if (refresh || (time.sec != tmp_time.sec)) // 秒更新 { tmp_time.sec = time.sec; // 温湿度

play8_num(104, 6,zhengshu); //温度显示 play32_num(96, 2, time.sec); } if (refresh) main_frame(); if (refresh || (time.min != tmp_time.min)) // 分更新 { if (!refresh) flag = 0; tmp_time.min = time.min; play32_num(48, 2, time.min); }

} /*

if (refresh || (time.hour != tmp_time.hour)) // 时更新 { if ((!refresh)&&(Clock_flag)) alarm_sound(); tmp_time.hour = time.hour; play32_num(0, 2, time.hour); }

if (refresh || (time.day != tmp_time.day)) // 日更新 { tmp_time.day = time.day; play8_num(48, 0, time.day); // 农历 turn_lunar_calendar(&time, lunar); play_lunar_calendar(0, 6, lunar[0], lunar[1]); }

if (refresh || (time.week != tmp_time.week)) // 周更新 { tmp_time.week = time.week; play_week(68, 0, time.week); }

if (refresh || (time.mon != tmp_time.mon)) // 月更新 { tmp_time.mon = time.mon; play8_num(24, 0, time.mon); // 农历 turn_lunar_calendar(&time, lunar); play_lunar_calendar(0, 6, lunar[0], lunar[1]); }

if (refresh || (time.year != tmp_time.year)) // 年更新 { tmp_time.year = time.year; play8_num(0, 0, time.year); // 农历 turn_lunar_calendar(&time, lunar); play_lunar_calendar(0, 6, lunar[0], lunar[1]); }

* 主机界面设置 */

void main_set(void) { int8 key_val, state=1; play32_num(96, 2|0x80, time.sec); while (1) { key_val = scan_key(); if (key_val == 1) // 设置 { if (state >= 7) state = 0; else state++; set_time((uint8 *)&time); main_show(1); switch (state) { case 0: set_time((uint8 *)&time); break; case 1: play32_num(96, 2|0x80, time.sec); break; case 2: play32_num(48, 2|0x80, time.min); break; case 3: play32_num(0, 2|0x80, time.hour); break; case 4: play_week(68, 0|0x80, time.week); break; case 5: play8_num(48, 0|0x80, time.day); break; case 6: play8_num(24, 0|0x80, time.mon); break; case 7: play8_num(0, 0|0x80, time.year); break; default: break; } } else if (key_val > 1) { if (state == 1) { if (key_val == 3) time.sec++; else time.sec--; if (time.sec >= 60) time.sec = 0; else if (time.sec < 0)

基于51单片机的电子万年历设计毕业论文设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5648d63ems6x2111f20r4n7xz5ee5l00bh0_12.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top