【蓝桥杯单片机设计与开发】(19)省赛试题解析 2011第三届 温度记录器(下) 从本章我们继续上一章的内容,我将开始为大家讲解历年的省赛真题的编程思路以及编程原理,通过这种方式让大家学习边熟悉这种多模块协同的综合题目的编程方式。 2011年第三届蓝桥杯 单片机类 省赛试题是按照任务要求设计一个“温度监控器”第二章。 功能简述 “温度监控器”可以实现环境温度检测及报警功能;通过 EEPROM 存储上下限温度数值,温度上下限数值可通过外部按键更改。系统硬件电路主要有单片机控制电路、数码管显示电路、EEPROM 存储电路、直流电机驱动电路(设计部分)、键控制电路及继电器组成,系统框图如图 1 所示: MCS-51 单片机汇编指令集、C51 关键字、DS18B20 和 AT24C02 芯片部分驱动、CT107D考试平台电路原理图以及本题所涉及到的芯片数据手册,可参考计算机上的电子文档。 设计任务要求3.EEPROM 记录单元系统通过 AT24C02 存储温度信息,AT24C02 内部存储地址 0x00 和 0x01 分别存储
温度上下限数据信息;温度上下限数据可通过外部按键进行修改,并通过数码管实时显
示。数据存储格式如图 3 所示: 示例代码:at24c02.c - /************************************************************/
- /************************智术灵慧****************************/
- /******************蓝桥杯2011年省赛试题**********************/
- /***********************温度监控器***************************/
- /*******************联系QQ:1149809374***********************/
- /*************联系邮箱:418224424@aliyun.com*****************/
- /*****************官方博客:www.bkoak.com********************/
- /************************************************************/
-
- #ifndef __AT24C02_H_
- #define __AT24C02_H_
-
- #define SlaveAddrW 0xA0
- #define SlaveAddrR 0xA1
-
- void IIC_Start(void);
- void IIC_Stop(void);
- void IIC_Ack(unsigned char ackbit);
- bit IIC_WaitAck(void);
- void IIC_SendByte(unsigned char byt);
- unsigned char IIC_RecByte(void);
- void WriteByte_AT24C02(uchar add,uchar date);
- uchar ReadByte_AT24C02(uchar add);
-
- #endif
复制代码
4.按键控制单元(见main.c)独立按键 S4 设定为“加上限”按键;每按下一次,温度上限值增加 1℃; 独立按键 S5 设定为“加下限”按键;每按下一次,温度下限值增加 1℃; 独立按键 S6 设定为“减上限”按键;每按下一次,温度上限值减少 1℃; 独立按键 S7 设定为“减下限”按键;每按下一次,温度下限值减少 1℃。 5.按直流电机驱动电路设计(见main.c)设计一个直流电机驱动电路与单片机 P34 引脚连接。 6.温控单元(见main.c)若当前温度数值超过 EEPROM 中存储的温度上限数据,通过单片机 P34 口产生周期为 1KHz 占空比为 30%的 PWM 信号驱动直流电机工作。待温度恢复到上下限阈值内时,P34 口输出高电平,直流电机停止工作。
若当前温度低于 EEPROM 中存储的温度下限数据,继电器打开,当温度恢复到上
3下限阈值内时,继电器自动关闭。 7.系统初始状态说明(见main.c)上、下限温度值需要设定在 0℃到 99℃范围内,下限值不大于上限值。系统上电后,从 EEPROM 中读取温度上、下限数值,并实时显示当前温度。 示例代码:main.c 本章资料下载地址 本章关于2011年省赛试题“温度监控器”的讲解到这里就结束了,如果有不理解的可以加群,找我或者群里的朋友交流。
更多资讯关注公众号:智术灵慧(zslh_dyh) QQ交流群:693211073
|