#include <reg51.h> #include <absacc.h> #include <math.h> #define uchar unsigned char #define uint unsigned int #define ADC0809 XBYTE[0x0B000] //P2.6?通 float sum=0,fjg; uint i,j,*q,*p,sd=5; sbit p1_0=P1^0; void wait(uint n); void main(void) { j=0; TMOD=0X01;//?置定?器0 TH0=0XFC;//定?????1ms TL0=0X18; EA=0;//先?中? EA=1;//??中? ET0=1; //TR0=1; for(; ;) { if(j=20){ do{}while(!TF0); q=0x30; for(i=0;i<20;i++) //?化后的?值求均方根 {sum=sum+(*q)*(*q); q++; } sum=sum/20; fjg=sqrt(sum); if(fjg>sd) //判?是否跳? p1_0=1; j=0; }} } void power(void) { uchar x; for(;;) {ADC0809=0x01; wait(1000); x=ADC0809; P2=x; } }
void wait(uint n) { uint i,j; for(i=0;i<n;i++) for(j=0;j<100;j++); } timer0()interrupt 1 using 1 {*p=ADC0809; p++; TH0=0XFC; TL0=0X18; TR0=1; j++; }
|