//20150615
#include <STC15F2K60S2.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#include "text.h"//RAM资源定义
//---------用户库函数
#include "sub.h"
#include "ini_PWM.h"
//#include "adc.h"
#include "m_ini.h"
#include "disp.h"
#include "ini_ccp.h"
#include "interrupt_sub.h"//中断函数
#include "12864.h"
//---函数声明
void work0();//数码管测试
void work1();//时钟
void work2();//时钟设置
void work3();//AD电压测量
void work4();//
void work5();//
//-------------
//-----主函数
void main()
{
m_ini();
msta=0;
while(1)
{while(!TF0);
//TL0=0x78;TH0=0xec;
TF0=0;
//---程序公共部分
disp(xs);
keyscan();
switch(msta)
{
case 0: work0();//数码管测试
break;
case 1: work1();//时钟
break;
case 2: work2();//时钟设置
break;
case 3: work3();//AD电压测量
break;
case 4: work4();
break;
case 5: work5();
break;
default: break;
}
}
}
//---------------
void work0()
{
if(k0)
{msta=1;
xs[3]=xs[2]=xs[1]=xs[0]=0;
}
x=0x12;
x++;
y=x;
if(x>=200)
x=0;
//lcd_init();
//hd_12864(x,y);
}
//---------------
void work1()
{
if(k0)
{msta=0x02;
tzsta=0x03;
}
mcnt++;
if(mcnt>=200)//时钟
{ dot2^=1;
mcnt=0;
xs[0]++;
if(xs[0]>=0x0a)
{xs[0]=0;
xs[1]++;
if(xs[1]>=0x06)
{xs[1]=0;
xs[2]++;
if(xs[2]>=0x0a)
{xs[2]=0;
xs[3]++;
if(xs[3]>=0x06)
xs[3]=0;
}
}
}
}
}
//---------------
void work2()//时钟设置
{ flon=1;
dot2=1;
if(k3)
{
flon=0;
msta=0x01;
}
if(k0)
{
flon=0;dot2=0;
msta=0x03;
}
if(k2)
{tzsta--;
if(tzsta==0xff)
tzsta=0x03;
}
if(k1)
{
switch(tzsta)//时钟设置
{
case 0: xs[0]++;
if(xs[0]>=0x0a)
xs[0]=0;
break;
case 1: xs[1]++;
if(xs[1]>=0x06)
xs[1]=0;
break;
case 2: xs[2]++;
if(xs[2]>=0x0a)
xs[2]=0;
break;
case 3: xs[3]++;
if(xs[3]>=0x06)
xs[3]=0;
break;
default: break;
}
}
}
//---------
void work3()
{ uint u_in;
dot3=1;
mcnt++;
if(mcnt>=200)
{
mcnt=0;
// adc_buf=ADC(0x04,0x00,0x02);
//u_in=(long)adc_buf*4920/1023;
bcd(u_in);
}
if(k0)
{
msta=0;dot3=0;
xs[0]=xs[1]=xs[2]=xs[3]=0x00;
//ini_PWM();
}
}
//---------------
void work4()
{
if(k1)
{CCAP0H+=0x05;
CCAP1H+=0x0a;
}
if(k0)
{msta=5;
CCAPM0=CCAPM1=0x0;
xs[0]=xs[1]=xs[2]=xs[3]=0x03;
ini_PWM();
ini_ccp();
}
}
//------------------------
//---------------
void work5()
{
mcnt++;
if(mcnt>=200)
{
mcnt=0;
bcd(T);
}
if(k0)
{
msta=0;
CCAPM2=0x0;
CCAPM1=0x0;
CCAPM0=0x0;
}
}
//------------------------