赞
踩
实物演示效果:
https://www.bilibili.com/video/BV1RN4y1Q7dK/?vd_source=6ff7cd03af95cd504b60511ef9373a1d
- void main()
- {
- int temp; // 保存温度值
-
- LcdInit(); // 执行液晶初始化
- DS1302_Init(); // 时钟芯片的初始化
- LcdShowInit(); // 液晶显示内容的初始化
- TimerInit(); // 定时器初始化
-
- if(DS1302_Read_Byte(0x81)>=128) // 判断时钟芯片是否正在运行
- {
- DS1302_Write_Time(); // 如果没有,则初始化一个时间
- }
-
-
- Clock_Hour=EEPROM_Read(0x2000); // 读取0x2000这个地址的内容,赋值给闹钟的小时变量
- if(Clock_Hour>23) // 如果读取到的闹钟小时数值不正常,则重新赋值
- {
- Clock_Hour=12;
- }
- Clock_Minute=EEPROM_Read(0x2001); // 读取0x2001这个地址的内容,赋值给闹钟的分钟变量
- if(Clock_Minute>59) // 如果读取到的闹钟分钟数值不正常,则重新赋值
- {
- Clock_Minute=30;
- }
- Clock_Swt=EEPROM_Read(0x2002); // 读取0x2002这个地址的内容,赋值给闹钟的开关变量
- if(Clock_Swt>1) // 如果读取到的闹钟开关数值不正常,则重新赋值
- {
- Clock_Swt=0;
- }
-
- while(DS18B20_ReadTemp()==850) // 等待温度传感器初始化完成
- {
- DelayMs(10);
- }
-
- while(1)
- {
- DS1302_Read_Time(); // 获取当前时钟芯片的时间,存在数组time_buf中
- FlashTime(); // 刷新时间显示
- ClockJudge(); // 闹钟工作的判断
-
- temp=DS18B20_ReadTemp(); // 读取温度
- LcdGotoXY(1,9); // 定位到显示温度的地方
- LcdPrintTemp(temp); // 显示温度
-
- KeyScanf1(); // 按键扫描(时间的设置)
- KeyScanf2(); // 按键扫描(闹钟的设置)
- KeyScanf3(); // 按键扫描(进入和退出秒表)
-
- DelayMs(100); // 延时0.1秒
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。