软件源程序设计
软件采用可读性强的C语言编写,经过KeilC编译通过,程序编写采取模块化、结构化设计。各个器件都有其独立的驱动程序,方便读者理解。其主程序工作流程如图(1)所示。
图(1)
本制作的C语言程序可以分为几个主要功能模块程序:
1. DS18B20驱动程序:包含了DS18B20各种操作和命令
2. LPH7366驱动程序:包含了LPH7366各种操作和命令
3. 时间程序:主要完成时间控制功能。
4. 键盘扫描程序:主要完成键盘扫描和判断功能。
程序中每个函数都有其详细的参数介绍,方便读者应用和学习。
/****************************主函数**************************/
/*函数原型:void main()
/*函数功能:程序起始
/*输入参数:无
/*输出参数:无
/*调用模块:LPH7366_init(),LPH7366_clr(),time_init(),LPH7366_write_str(),
LPH7366_write_han(),LPH7366_write_han()pic_temp_face_move(),
time_move(),temp_move(), temp_bar_move(),key_main(),tick_time_temp()
/*建立时间:2005/11/16
/************************************************************/
void main()
{
LPH7366_init(); //显示屏幕初始化
LPH7366_clr(); //屏幕白屏
time_init(); //定时器0初始化
pic_temp(); //温度主画面
LPH7366_write_str(1,4,'D'); //设计标题 DX Temp
LPH7366_write_str(1,5,'X');
LPH7366_write_str(1,6,' ');
LPH7366_write_str(1,7,'T');
LPH7366_write_str(1,8,'e');
LPH7366_write_str(1,9,'m');
LPH7366_write_str(1,10,'p');
LPH7366_write_han(2,1,0); //显示 气温: C
LPH7366_write_han(2,2,1);
LPH7366_write_doc(4,25,0x36); //:
LPH7366_write_doc(4,26,0x36);
time_init(); //定时器0初始化
while(1) //温度图动画部分
{
data_flag=1; //动画显示 影响LPH7366_write_str()函pic_temp_face_move(); //人脸表情
time_move(); //时间部分动画
temp_move(); //温度部分动画
temp_bar_move(); //温度条部分动画
key_main(); //主键盘
tick_time_temp(); //查询各个参数是否到了设定数值
if(temp_TL<temp&&temp<temp_TH) //室温在正常范围内
{
LED=1;
face_flag=1; //笑脸
}
}