基于单片机的水温水位SD卡存储系统设计

一、硬件设计

水是生命之源,在日常的生活生产中需要对水的信息进行检测,最早的对水温水位信息的检测是采用人工,采用温度计和标尺,把信息记录到工作本上,然后再进行相应的统计和整理。近年来伴随着电子信息技术的发展,特别是嵌入式技术的进步和低成本化,为水位水温信息的采集记录智能化的实现提供了可能,本文就是利用STC单片机和压力传感器,水温传感器为一体,通过单片机把水的信息进行采集,然后在液晶上面实时显示出来。同时把采集到的信息记录到SD卡上面,方面查看以往的信息记录

二、设计功能

系统采用防水型的DS18B20检测水的温度,采用压力传感器检测水位的高度,然后通过单片机把传感器输出的模拟量转换为对应的高度,同时系统还有时间信息,记录的时候也把时间现象添加上,方面后面整理。系统有按键信息输入功能,方便对时间信息的调试和校准。这就是整个系统所需要实现的功能。

三、设计原理图

四、软件程序

1、软件流程图

2、主程序源码

int main()

 unsigned int res=0,i=0;

 unsigned long len=0;

  LCD1602_cls();

  LCD1602_write(0,0x80);

  LCD1602_writebyte(" Please Insert  "); 

  LCD1602_write(0,0xC0);

  LCD1602_writebyte("The Memory Card "); 

 UART_Init(); 

 UART_Send_Str("\r\n串口设置完毕\r\n");

 znFAT_Device_Init(); //存储设备初始化

 UART_Send_Str("SD卡初始化完毕\r\n");

 znFAT_Select_Device(0,&Init_Args); //选择设备

 res=znFAT_Init(); //文件系统初始化  

 if(!res) //文件系统初始化成功

 {

  UART_Send_Str("Suc. to init FS\r\n");  

  UART_Put_Inf("BPB_Sector_No:",Init_Args.BPB_Sector_No);   

  UART_Put_Inf("Total_SizeKB:",Init_Args.Total_SizeKB); 

  UART_Put_Inf("BytesPerSector:",Init_Args.BytesPerSector); 

  UART_Put_Inf("FATsectors:",Init_Args.FATsectors);  

  UART_Put_Inf("SectorsPerClust:",Init_Args.SectorsPerClust); 

  UART_Put_Inf("FirstFATSector:",Init_Args.FirstFATSector); 

  UART_Put_Inf("FirstDirSector:",Init_Args.FirstDirSector); 

  UART_Put_Inf("FSsec:",Init_Args.FSINFO_Sec);

  UART_Put_Inf("Next_Free_Cluster:",Init_Args.Next_Free_Cluster);

  UART_Put_Inf("FreenCluster:",Init_Args.Free_nCluster); 

 }

 else //文件系统初始化失败

 {

UART_Put_Inf("Fail to init FS, Err Code:",res);

 }

 //==================================================================

// dt.date.year=2012; dt.date.month=12; dt.date.day=21;

// dt.time.hour=15;   dt.time.min=14;   dt.time.sec=35;

 res=znFAT_Create_File(&fileinfo,"\\Record.txt",&dt); //创建文件

 if(!res) //创建文件成功

 {

  UART_Send_Str("Suc. to create file.\r\n");

  UART_Send_Str("================================\n");

  UART_Send_Str("File_Name(Short 8.3):");

  UART_Send_Str(fileinfo.File_Name);UART_Send_Enter();

  UART_Put_Inf("File_Size:",fileinfo.File_Size);

  UART_Send_Str("File_CDate:");

  UART_Put_Num(fileinfo.File_CDate.year); UART_Send_Str("年");

  UART_Put_Num(fileinfo.File_CDate.month);UART_Send_Str("月"); 

  UART_Put_Num(fileinfo.File_CDate.day);  UART_Send_Str("日");

  UART_Put_Num(fileinfo.File_CTime.hour); UART_Send_Str("时");

  UART_Put_Num(fileinfo.File_CTime.min);  UART_Send_Str("分");

  UART_Put_Num(fileinfo.File_CTime.sec);  UART_Send_Str("秒\r\n");

  UART_Put_Inf("File_StartClust:",fileinfo.File_StartClust);

  UART_Put_Inf("File_CurClust:",fileinfo.File_CurClust);

  UART_Put_Inf("File_CurSec:",fileinfo.File_CurSec);

  UART_Put_Inf("File_CurPos:",fileinfo.File_CurPos);

  UART_Put_Inf("File_CurOffset:",fileinfo.File_CurOffset);

  UART_Send_Str("================================\n");

 }

 else

 {

UART_Put_Inf("Fail to create file, Err Code:",res);

 }

完整资料:基于单片机的水温水位SD卡存储系统设计

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值