本帖最后由 联众菜鸟 于 2015-2-14 15:31 编辑
#include <stdio.h>
#include <stdint.h>
#include "M051.h"
#include "Register_Bit.h"
#include "Common.h"
#include "retarget.h"
#include "Macro_SystemClock.h"
#include "Macro_Timer.h"
#include "Macro_ADC.h"
#define CLOCK_SETUP 1
#define CLOCK_EN 0xF
#define PLL_Engine_Enable 1
#define PLL_SEL 0x00000000
#define CLOCK_SEL 0x0
#define ADC_CLOCK_DIVIDER 0x00040000
#define ADC_CLK_Source 0x00000000
#define P0 0
#define P1 1
#define P2 2
#define P3 3
#define P4 4
#define C P00_DOUT
#define F P01_DOUT
#define MAX P02_DOUT
#define FD P20_DOUT
#define CD P21_DOUT
#define KG P22_DOUT
int32_t aj=0xff;
void TMR0_Delay1ms(uint32_t ulCNT);
void TMR0_Delay100us(uint32_t ulCNT);
void Timer0_Init(void);
main(void)
{
uint32_t k=3690,uc=0,back=0xff,ks=0xff,x=0;
while(1)
{
/***************************************************/
uc=1000;
C=1;
back=C;
if(back==0)这里是个按键检测,按下后开始工作 次数为x次,开始工作后ad升高
{
TMR0_Delay1ms(10);
C=1;
back=C;
if (back==0)
{
TMR0_Delay1ms(10);
C=1;
back=C;
if (back==0)
{
x=0X222;
ks=0;
KG=0;
TMR0_Delay1ms(20);
CD=0;
}
}
}
if(sy(10)>uc) 是采集ad 超过uc,会给指令控制ad降低(这里是意外开始工作的情况)
{
if(sy(10)>uc)
{
if(sy(10)>uc)
{
CD=1;
TMR0_Delay1ms(50);
KG=1;
TMR0_Delay1ms(50);
FD=0;
TMR0_Delay100us(10);
FD=1;
}
}
}
/****************************************/
while(x) 这里是按键按下,x被置数后运行到这
{
while(ks==0)
{
if(sy(10)>uc) 检测ad超过后,给指令降低ad
{
CD=1;
TMR0_Delay1ms(50);
KG=1;
TMR0_Delay1ms(50);
FD=0;
TMR0_Delay100us(10);
FD=1;
TMR0_Delay1ms(50);
if(uc<20)
{
ks=1;
FD=0;
TMR0_Delay1ms(10);
FD=1;
}
else
{
KG=0;
TMR0_Delay1ms(50);
CD=0;
}
uc=(uc*k)/4096;
}
}
x--;
if(x==0)
{
ks=1;
}
else
{
ks=0;
uc=1000;
KG=0;
TMR0_Delay1ms(100);
CD=0;
}
}
}
}
|