📄 ybmain.c
字号:
if(bBDing)
{
uu=div(timer_ok);
display1=timer_ok-uu*10;
}
else if(bQUERY)
{
fuhao=0;
if(longQurey<0)
{
fuhao=1;
longQurey=0-longQurey;
}
uu=div(longQurey);
display1=longQurey-uu*10;
}
else
{
uu=div(G_hw);
display1=G_hw-uu*10;
}
TI=0;
SBUF=0xFF;
}
else if(timer_number==2) {
aa=div(uu);
display2=uu-aa*10;
uu=aa;
TI=0;
if(fuhao==1)
{
t=G_WeiShu^0x20;
}
else{t=G_WeiShu;}
if(IsFull==1)
{
t^=0x80;
}
else{t&=0x7F;}
SBUF=t;
//SBUF=0x11;
}
else if(timer_number==3) {
aa=div(uu);
display3=uu-aa*10;
uu=aa;
TI=0;
if(dis[1]>9)
t=0x00<<4;
else
t=dis[1]<<4;
if(dis[0]>9)
SBUF=t+0x00;
//SBUF=0x44;
else
SBUF=t+dis[0];
// SBUF=0x22;
}
else if(timer_number==4) {
aa=div(uu);
display4=uu-aa*10;
uu=aa;
TI=0;
if(dis[3]>9)
t=0x00<<4;
else
t=dis[3]<<4;
if(dis[2]>9)
SBUF=t+0x00;
//SBUF=0x33;
else
SBUF=t+dis[2];
//SBUF=0x33;
}
else if(timer_number==5) {
aa=div(uu);
display5=uu-aa*10;
display6=aa;
TI=0;
if(dis[5]>9)
t=0x00<<4;
else
t=dis[5]<<4;
if(dis[4]>9)
SBUF=t+0x00;
//SBUF=0x22;
else
SBUF=t+dis[4];
//SBUF=0x44;
}
//显示消隐
else if(timer_number==6) {
if((display5==0)&&(display6==0)&&(display4==0)&&(display3==0)&&(display2==0)&&(display1==0))
{
fuhao=0;zero_flag=1;
}
else {zero_flag=0;}
if((display5==0)&&(display6==0)&&(display4==0)&&(display3==0)&&(display2==0)&&(dot_number<1))
{
display2=20;
display3=20;
display4=20;
display5=20;
display6=20;
if(fuhao==1){display2=24;}
}
else if((display5==0)&&(display6==0)&&(display4==0)&&(display3==0)&&(dot_number<2))
{
display3=20;
display4=20;
display5=20;
display6=20;
if(fuhao==1){display3=24;}
}
else if((display5==0)&&(display6==0)&&(display4==0)&&(dot_number<3))
{
display4=20;
display5=20;
display6=20;
if(fuhao==1){display4=24;}
}
else if(display5==0&&display6==0)
{
display5=20;
display6=20;
if(fuhao==1){display5=24;}
}
else if(display6==0)
{
display6=20;
if(fuhao==1){display6=24;}
}
}
//满标志
else if(timer_number==7){
dis[0]=display1;
dis[1]=display2;
dis[2]=display3;
dis[3]=display4;
dis[4]=display5;
dis[5]=display6;
}
else{}
}
#endif
////////////////////////////////////////////////////////////////////////
// 函数名称: delay(unsigned char n)
// 入口参数: (unsigned char n)
// 函数功能:延时程序
////////////////////////////////////////////////////////////////////////
void delay(unsigned char n){
unsigned char i;
for(i=0;i<n;i++);
}
#ifndef TT
void SweepLED(unsigned char sel,unsigned char pp)
{
unsigned char j;
PB8155=sel;
PA8155=pp;
for(j=200;j>0;j--){;}
PA8155=0;
}
#endif
#ifdef TT
////////////////////////////////////////////////////////////////////////
// 函数名称: SMled(unsigned char duanma, unsigned char weima)
// 入口参数: unsigned char duanma-段码, unsigned char weima-位码
// 函数功能:LED显示器自检
////////////////////////////////////////////////////////////////////////
void SMLed(unsigned char duanma, unsigned char weima)
{
//COM8155=0x03;
PB8155=weima;
PA8155=duanma;
delay(15);
PA8155=0x00;
//delay(60);
}
////////////////////////////////////////////////////////////////////////
// 函数名称: SMled(unsigned char duanma, unsigned char weima)
// 入口参数: unsigned char duanma-段码, unsigned char weima-位码
// 函数功能:LED显示器自检
////////////////////////////////////////////////////////////////////////
void SMposLed(unsigned char dpos, unsigned char wpos)
{
//COM8155=0x03;
PB8155=wcode[wpos];
PA8155=table[dpos];
delay(15);
PA8155=0x00;
//delay(60);
}
////////////////////////////////////////////////////////////////////////
// 函数名称: BlackLED())
// 入口参数k
// 函数功能:LED显示器自检
////////////////////////////////////////////////////////////////////////
void BlackLED()
{
SweepLED(0x00);
}
////////////////////////////////////////////////////////////////////////
// 函数名称: DisplayCheck()
// 入口参数: char pp
// 函数功能:LED显示器自检
// ok
////////////////////////////////////////////////////////////////////////
void DisplayCheck()
{
unsigned int i,j,k;
for(i=9;i>0;i--)
{
beep=1;
k=150;
beep=0;
while(k>0)
{
for(j=1;j<30;j++)
{
SweepLED(selfexamcode[i]);
}
k--;
}
}
}
////////////////////////////////////////////////////////////////////////
// 函数名称: KeyScan()
// 入口参数: char pp
// 函数功能:用段码PP扫描6个LED
////////////////////////////////////////////////////////////////////////
void SweepLED(unsigned char duanma)
{
unsigned char sel,i,j;
// COM8155=0x03;
sel=0x04;
for(i=0;i<6;i++)
{
PB8155=sel;
PA8155=duanma;
for(j=10;j>0;j--){;}
sel=sel<<1;
PA8155=0x00;
}
}
////////////////////////////////////////////////////////////////////////
// 函数名称: DisplayCode()
// 入口参数: unsigned char*codepos-段码在表中位位置,len显示码的长度
// 函数功能:用段码PP扫描6个LED
////////////////////////////////////////////////////////////////////////
void DisplayCode(unsigned char*codepos,unsigned char len)
{
unsigned char i=0;
for(i=0;i<len;i++)//显示len位数字
{
SMposLed(codepos[i],i+1);
}
for(;i<6;i++) //高位无显示
{
SMposLed(codepos[0],i+1);
}
}
#endif
#ifdef TT
////////////////////////////////////////////////////////////////////////
//读密码;
void ReadPass()
{
unsigned char i;
for(i=0;i<6;i++)
{
AT24C64_R(&Bding_pass[i],0x0001+i,1);
}
/* AT24C64_R(&Bding_pass[0],0x01,1);
AT24C64_R(&Bding_pass[1],0x02,1);
AT24C64_R(&Bding_pass[2],0x03,1);
AT24C64_R(&Bding_pass[3],0x04,1);
AT24C64_R(&Bding_pass[4],0x05,1);
AT24C64_R(&Bding_pass[5],0x06,1); */
}
///////////////////////////////////////////////////////////////////////
//写密码
void WritePass()
{
unsigned char i;
for(i=0;i<6;i++)
{
AT24C64_W(&Bding_pass[i],0x0001+i,1);
}
/* AT24C64_W(&Bding_pass[0],0x01,1);
AT24C64_W(&Bding_pass[1],0x02,1);
AT24C64_W(&Bding_pass[2],0x03,1);
AT24C64_W(&Bding_pass[3],0x04,1);
AT24C64_W(&Bding_pass[4],0x05,1);
AT24C64_W(&Bding_pass[5],0x06,1); */
}
////////////////////////////////////////////////////////////////////////
//初始化密码;
void InitPass()
{
unsigned char i;
for(i=0;i<6;i++)
{
Bding_pass[i]=0x08;
AT24C64_W(&Bding_pass[i],0x0001+i,1);
}
}
////////////////////////////////////////////////////////////////////////
// 函数名称:bit CheckPassW();//
// 入口参数: 无
// 函数功能:检验密码;
////////////////////////////////////////////////////////////////////////
bit CheckPassW()
{
// unsigned char dcode[6]={8,8,8,8,8,8};//临时变量,保存键号
unsigned char i=0;
unsigned char key;
i=0;
// return 1;
while(1)
{
key=KeyScan();
if(key==66)
{
BlackLED();
}
else
{
if(key<10)
{
dcode[0]=key;
break;
}
}
}
dcode[5]=0; dcode[4]=0;dcode[3]=0;dcode[2]=0;dcode[1]=0;//dcode[0]=0;
while(1)
{
DisplayCode(dcode,6);
key=KeyScan();//键盘扫描
if(key==SR) break;//不是输入键
if(key==TC)//按退出键,则退出;
return 0;
if(key<10)
{
dcode[5]=dcode[4];
dcode[4]=dcode[3];
dcode[3]=dcode[2];
dcode[2]=dcode[1];
dcode[1]=dcode[0]; // DisplayCode(t,i);
dcode[0]=key;
}
}
// ReadPass();
for(i=0;i<6;i++)
{
if(dcode[i]!=Bding_pass[5-i]) return 0;//密码不同
}
return 1;
}
////////////////////////////////////////////////////////////////////////
//分度值管理函数;
void ReadFenDu() //读分度
{
AT24C64_R(&G_FenDu,0x07,1);
}
void SaveFenDu() //保存分度?
{
AT24C64_W(&G_FenDu,0x07,1);
}
void InitFenDu() //初始化分度;
{
G_FenDu=50;
AT24C64_W(&G_FenDu,0x07,1);
}
////////////////////////////////////////////////////////////////////////
//位数管理函数;
void ReadWeiShu() //读位数
{
AT24C64_R(&G_WeiShu,0x08,1);
}
void SaveWeiShu() //保存位数
{
AT24C64_W(&G_WeiShu,0x08,1);
}
void InitWeiShu() //初始化位数
{
G_WeiShu=0;
AT24C64_W(&G_WeiShu,0x08,1);
}
////////////////////////////////////////////////////////////////////////
//量程管理函数;
void ReadFull() //读量程
{
AT24C64_R(&G_Full,0x09,4);
}
void SaveFull() //保存量程
{
AT24C64_W(&G_Full,0x09,4);
}
void InitFull() //初始化量程
{
G_Full=80000;
AT24C64_W(&G_Full,0x09,4);
}
////////////////////////////////////////////////////////////////////////
//滤波强度管理函数;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -