資源簡介
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定位解算
評論
共有 條評論