资源简介
c8051f330实现的计步器,很好的程序用c语言实现的。
代码片段和文件信息
#include
#include
#include
//===============================================================
#include “sys.h“
#include “5110.h“
#include “adxl345.h“
#include “ds1302.h“
/*==============================================================*/
sbit K1=P1^3;
sbit K2=P1^2;
sbit speak=P0^5;
unsigned char ADXL345_FLAG=0;
unsigned char START_FLAG=0;
unsigned char number=0;
unsigned char idata bad_flag[3];
unsigned int idata array0[3]={111};
unsigned int idata array1[3]={111};
unsigned int idata array2[3]={000};
unsigned int idata adresult[3];
unsigned int idata max[3]={000};
unsigned int idata min[3]={100010001000};
unsigned int idata dc[3]={500500500};
unsigned int idata vpp[3]={303030};
unsigned int idata precision[3]={555};
unsigned int idata old_fixed[3];
unsigned int idata new_fixed[3];
unsigned int idata STEPS=0;
unsigned int idata time=0;
float xdata speed=0;
float xdata dist=0;
float xdata kalul=0;
SYSTEMTIME CurrentTime;
//获取时钟函数
void get_clock(void)
{
DS1302_GetTime(&CurrentTime);
DateToStr(&CurrentTime);
TimeToStr(&CurrentTime);
}
//时钟显示函数
void show_time(void)
{
Set_R_C_5110(012);
Write_String_5110(CurrentTime.DateString);
Set_R_C_5110(060);
Write_String_5110(“---“);
Write_Char_5110(CurrentTime.DateString[9]);
Set_R_C_5110(10);
Write_String_5110(CurrentTime.TimeString);
}
//BCD码转化成十进制码
uchar zh(uchar temp)
{
temp=((temp&0x70)>>4)*10 + (temp&0x0F);
return temp;
}
void first_picture(void)
{
DS1302_SetTime(DS1302_YEAR12);
DS1302_SetTime(DS1302_MONTH1);
DS1302_SetTime(DS1302_DAY11);
DS1302_SetTime(DS1302_WEEK5);
DS1302_SetTime(DS1302_HOUR12);
DS1302_SetTime(DS1302_MINUTE12);
DS1302_SetTime(DS1302_SECOND12);
Set_R_C_5110(00);
Write_String_5110(“20“);
Set_R_C_5110(154);
Write_String_5110(“SET- “);
Set_R_C_5110(20);
Write_String_5110(“B=00000 b“);
Set_R_C_5110(30);
Write_String_5110(“L=00000 m“);
Set_R_C_5110(40);
Write_String_5110(“S=00.00 m/s“);
Set_R_C_5110(50);
Write_String_5110(“C=00.00 c/kg/h“);
}
void delay_ms(uint n)
{
uint ij;
for(i=0;i for(j=0;j<1000;j++);
}
/*------------------------------------------------------------------------------------------------------------------------
*Name: step_counter()
*Function: 实现Pedometer的基本算法.
*Input: void
*Output: void
*------------------------------------------------------------------------------------------------------------------------*/
void step_counter(void)
{
static uchar sampling_counter=0;
uchar jtemp;
ADXL345_FLAG=0;
Multiple_read_ADXL345(); //连续读出数据,存储在BUF中
//------------------------------------------采样滤波----------------------//
for(jtemp=0;jtemp<=2;jtemp++)
{
array2[jtemp]=array1[jtemp];
array1[jtemp]=array0[jtemp];
array0[jtemp]=BUF[2*jtemp]+(BUF[2*jtemp+1]<<8);
adresult[jtemp]=a
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-09 12:39 程序\
文件 46020 2013-01-10 20:14 程序\330
文件 55272 2013-01-10 20:14 程序\330.M51
文件 55 2013-01-10 20:14 程序\330.lnp
文件 206 2013-03-09 12:27 程序\330.plg
文件 180045 2013-03-09 12:39 程序\330.uvgui.Administrator
文件 178051 2013-03-02 13:42 程序\330.uvgui_Administrator.bak
文件 8827 2013-03-09 12:39 程序\330.uvopt
文件 14151 2013-01-10 19:54 程序\330.uvproj
文件 8827 2013-03-02 13:42 程序\330_uvopt.bak
文件 14151 2013-01-10 19:50 程序\330_uvproj.bak
文件 8521 2013-01-10 19:58 程序\5110.h
文件 19 2013-01-10 20:15 程序\ExtDll.iex
文件 6411 2012-12-04 12:46 程序\STARTUP.A51
文件 14133 2013-01-10 20:14 程序\STARTUP.LST
文件 758 2013-01-10 20:14 程序\STARTUP.OBJ
文件 6479 2012-12-04 18:53 程序\adxl345.h
文件 5119 2013-01-10 14:56 程序\ds1302.h
文件 20448 2013-01-10 20:14 程序\main.LST
文件 53550 2013-01-10 20:14 程序\main.OBJ
文件 9348 2013-01-10 20:14 程序\main.c
文件 819 2013-01-10 15:45 程序\sys.h
- 上一篇:NCDDE服务连接DDE封装的APIddehelper
- 下一篇:gps定位解算
评论
共有 条评论