📄 keydeal.c
字号:
#include "reg5410.h"
#include "head.h"
extern void DispZimu(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri);
extern void DispShuzi(unsigned char x,unsigned char y,unsigned int n); //8*16数字显示
extern void DispShuzi0(unsigned char x,unsigned char y,unsigned int n); //8*16数字显示
extern void DispHanzi(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri);
extern void send_command(unsigned char command_data) ;
extern void GetADCaiJiDL(unsigned int *ADData);
extern void GetADCaiJiDY(unsigned int *ADData);
extern unsigned char read(unsigned char ADDRH,unsigned char ADDRL);
extern void write(unsigned char ADDRH,unsigned char *p,unsigned char k);
extern unsigned int Sec;
extern unsigned int Min;
void Disp_Page0(void);
void Disp_Page1(void);
void Disp_Page2(void);
void Disp_Page3(void);
void jiemian(void)
{
static unsigned char ti=0,page=0;
unsigned int tmp=0;
if(page==1)
{
GetADCaiJiDL(&tmp);DispShuzi0(2,5,tmp);
GetADCaiJiDY(&tmp);DispShuzi0(1,5,tmp);
}
if(Mode==0||Up==0||Down==0)
{
ti++;
if(ti>=30)
{
ti=0;
if(Mode==0)
{
page++;
if(page>=5)
page=0;
if(page==0)
Disp_Page0();
else if(page==1)
Disp_Page1();
else if(page==2)
Disp_Page2();
else if(page==3)
Disp_Page3();
}
}
}
else ti=0;
}
void Disp_Page0(void)
{
send_command(0x01);
DispHanzi(1,1,5,"多功能智能");
DispHanzi(2,1,5,"电池充电器");
}
void Disp_Page1(void)
{
unsigned int td=0;
send_command(0x01);
DispHanzi(0,0,4,"充电中。");
DispHanzi(1,0,4,"充电电压");
DispZimu(1,7,1,"V");
DispHanzi(2,0,4,"充电电流");
DispZimu(2,7,1,"A");
DispHanzi(3,0,4,"充电时间");
// td=read(0x2a,0x00);Min=td*256+read(0x2a,0x01);
DispShuzi0(3,4,Min);
// td=read(0x28,0x00);Sec=td*256+read(0x28,0x01);
DispShuzi0(3,6,Sec);
DispHanzi(3,5,1,"分");
DispHanzi(3,7,1,"秒");
}
void Disp_Page2(void)
{
send_command(0x01);
DispHanzi(0,0,4,"充电完成");
}
void Disp_Page3(void)
{
send_command(0x01);
DispHanzi(0,0,5,"电池被移除" );
DispHanzi(1,0,4,"充电中止");
}
void GetADCaiJiDL(unsigned int *ADData)
{
unsigned int i, j, Sum;
ADC_CONTR=0x80|0x05;
for(i=0; i<100; i++);
Sum = 0;
for(i=0; i<64; i++)
{
ADC_CONTR|=0x08;
while((ADC_CONTR&0x10)==0x00); //等待变成flag=1
Sum = Sum + (ADC_DATA*4+ADC_LOW2);
for(j=0; j<100;j++);
}
*ADData = Sum / 64;
}
void GetADCaiJiDY(unsigned int *ADData)
{
unsigned int i, j, Sum;
ADC_CONTR=0x80|0x06;
for(i=0; i<100; i++);
Sum = 0;
for(i=0; i<64; i++)
{
ADC_CONTR|=0x08;
while((ADC_CONTR&0x10)==0x00); //等待变成flag=1
Sum = Sum + (ADC_DATA*4+ADC_LOW2);
for(j=0; j<100;j++);
}
*ADData = Sum / 64;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -