/****************************************************************************************
*
* 文件名: main.c
* 项目名: s1006
* 版 本: v1.0
* 日 期: 2016年05月24日 11时30分18秒
* 作 者: Administrator
*
****************************************************************************************/
#include<KF8F210.h>
#define uchar unsigned char
#define uint unsigned int
void Delay_200us()
{
uchar i = 240;
while(--i);
}
//;***************************************************************
//; 函 数 名:void Delay50Us()
//;功能函数:延时函数,50us
//;入口参数:无
//;返回参数:无
//;***************************************************************
void Delay50Us()
{
char cnt ;
cnt = 30;
while(cnt--);
}
/*****************************************************
* 函数名称:initFun()
* 函数功能:运放校正使能
* 输入: 无
* 输出: 无
*
*
***************************************************** */
void OP_fun()
{
unsigned char first_back_up,i,val_AMPCALI;
AMP2ON =1;
Delay50Us();
Delay50Us();
CALIEN =1;
Delay50Us();
Delay50Us();
first_back_up = AMPCTL & 0x80;
val_AMPCALI = first_back_up; //保存第一次的值,用于以后判断的标准
for(i=0;i<64;i++)
{
AMPCALI=val_AMPCALI;
Delay50Us();
Delay50Us();
Delay50Us();
if(first_back_up !=(AMPCTL & 0x80))
{
CALIEN = 0; //关闭自校准使能,运放2可以进行采样,运放2已经使能,不需要重新打开
return;
}
val_AMPCALI++;
}
CALIEN = 0;
}
void initallFun()
{
OSCCTL =0X70;
TR0 = 0b00001011;
TR1 = 0b10000100;
TR2 = 0b11110000;
P0 = 0B00100000;
P1 = 0B00000000;
P2 = 0B00000000;
ANSEL = 0b01100000;
ANSEH = 0b00001111;
}
void DelayMs (uint Num)
{
uint cnt;
while(Num--)
{
cnt=2000;
while(cnt--);
}
}
//主函数
void main()
{
initallFun();
DelayMs(50);
OP_fun();
while(1);
}
//中断函数
void int_fun() __interrupt
{
}
|