📄 display.c
字号:
LED_DCLK2 = 0;
if(Data2_1 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data2_1>>1;
Data2_1 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data1_1 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data1_1>>1;
Data1_1 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data0_1 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data0_1>>1;
Data0_1 = Temp;
}
LED_E = 0;
LED_E = 1;
}
else
{
Data3_2 |= Hundred;
Data2_2 |= Decade;
Data1_2 |= One;
Data0_2 |= Tenth;
switch(Channel) // 确定要选通的驱动芯片
{
case 10:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 0;
LED_A0 = 0;
break;
case 12:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 0;
LED_A0 = 1;
break;
case 14:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 1;
LED_A0 = 0;
break;
case 16:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 1;
LED_A0 = 1;
break;
}
for(i=0; i<12; i++) // 更新数码管显示
{
LED_DCLK2 = 0;
if(Data3_2 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data3_2>>1;
Data3_2 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data2_2 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data2_2>>1;
Data2_2 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data1_2 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data1_2>>1;
Data1_2 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data0_2 & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data0_2>>1;
Data0_2 = Temp;
}
LED_E = 0;
LED_E = 1;
}
}
void UpdateVoltage_3(unsigned char Channel, unsigned int Result) // 数码管17-21显示更新
{
unsigned int Data3_1 = 0x0f00;
unsigned int Data2_1 = 0x0e00;
unsigned int Data1_1 = 0x0d80;
unsigned int Data0_1 = 0x0c00;
unsigned int Data3_2 = 0x0b00;
unsigned int Data2_2 = 0x0a00;
unsigned int Data1_2 = 0x0980;
unsigned int Data0_2 = 0x0800;
unsigned char Hundred;
unsigned char Decade;
unsigned char One;
unsigned char Tenth;
unsigned int Temp;
unsigned char i;
Hundred = Result/0x0333; // 计算百位数值
Result %= 0x333;
Decade = Result/0x52; // 计算十位数值
Result %= 0x52;
One = Result/0x08; // 计算个位数值
Result %= 0x08;
Tenth = Result*1.22; // 计算小数位数值
if(Channel%2)
{
Data3_1 |= Hundred; // 准备要发送的数据
Data2_1 |= Decade;
Data1_1 |= One;
Data0_1 |= Tenth;
switch(Channel) // 确定要选通的驱动芯片
{
case 17:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 0;
LED_A0 = 0;
break;
case 19:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 0;
LED_A0 = 1;
break;
case 21:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 1;
LED_A0 = 0;
break;
}
for(i=0; i<12; i++) // 更新数码管显示
{
LED_DCLK3 = 0;
if(Data3_1 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data3_1>>1;
Data3_1 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data2_1 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data2_1>>1;
Data2_1 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data1_1 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data1_1>>1;
Data1_1 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data0_1 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data0_1>>1;
Data0_1 = Temp;
}
LED_E = 0;
LED_E = 1;
}
else
{
Data3_2 |= Hundred;
Data2_2 |= Decade;
Data1_2 |= One;
Data0_2 |= Tenth;
switch(Channel) // 确定要选通的驱动芯片
{
case 18:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 0;
LED_A0 = 0;
break;
case 20:
LED_A3 = 0;
LED_A2 = 0;
LED_A1 = 0;
LED_A0 = 1;
break;
}
for(i=0; i<12; i++) // 更新数码管显示
{
LED_DCLK3 = 0;
if(Data3_2 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data3_2>>1;
Data3_2 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data2_2 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data2_2>>1;
Data2_2 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data1_2 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data1_2>>1;
Data1_2 = Temp;
}
LED_E = 0;
LED_E = 1;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data0_2 & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data0_2>>1;
Data0_2 = Temp;
}
LED_E = 0;
LED_E = 1;
}
}
void WrongAlarm(unsigned char Channel) // 使数码管闪烁,显示错误
{
unsigned int Data;
unsigned int Temp;
unsigned char i, m;
if(Channel==21)
{
Data = 0x06f0;
}
else
{
if(Channel%2)
{
m = Channel + 1;
if(g_State[m]==0x00)
{
Data = 0x06f0;
}
else
{
Data = 0x06ff;
}
}
else
{
m = Channel - 1;
if(g_State[m]==0x00)
{
Data = 0x060f;
}
else
{
Data = 0x06ff;
}
}
}
if(Channel<9)
{
for(i=0; i<12; i++)
{
LED_DCLK1 = 0;
if(Data & 0x0001)
{
LED_DIN1 = 1;
}
else
{
LED_DIN1 = 0;
}
LED_DCLK1 = 1;
Temp = Data>>1;
Data = Temp;
}
}
else
{
if((Channel>9)&&(Channel<17))
{
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data>>1;
Data = Temp;
}
}
else
{
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data>>1;
Data = Temp;
}
}
}
LED_E = 0;
LED_E = 1;
}
void ReturnFine(unsigned char Channel) // 使数码管停止闪烁,恢复正常
{
unsigned int Data;
unsigned int Temp;
unsigned char i, m;
if(Channel==21)
{
Data = 0x0600;
}
else
{
if(Channel%2)
{
m = Channel + 1;
if(g_State[m]==0x00)
{
Data = 0x0600;
}
else
{
Data = 0x060f;
}
}
else
{
m = Channel - 1;
if(g_State[m]==0x00)
{
Data = 0x0600;
}
else
{
Data = 0x06f0;
}
}
}
if(Channel<9)
{
for(i=0; i<12; i++)
{
LED_DCLK1 = 0;
if(Data & 0x0001)
{
LED_DIN1 = 1;
}
else
{
LED_DIN1 = 0;
}
LED_DCLK1 = 1;
Temp = Data>>1;
Data = Temp;
}
}
else
{
if((Channel>9)&&(Channel<17))
{
for(i=0; i<12; i++)
{
LED_DCLK2 = 0;
if(Data & 0x0001)
{
LED_DIN2 = 1;
}
else
{
LED_DIN2 = 0;
}
LED_DCLK2 = 1;
Temp = Data>>1;
Data = Temp;
}
}
else
{
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Data & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Data>>1;
Data = Temp;
}
}
}
LED_E = 0;
LED_E = 1;
}
void ControlDisplay(unsigned int Value) // 更新控制控制数码管的显示
{
unsigned int Temp;
unsigned char i;
for(i=0; i<12; i++)
{
LED_DCLK3 = 0;
if(Value & 0x0001)
{
LED_DIN3 = 1;
}
else
{
LED_DIN3 = 0;
}
LED_DCLK3 = 1;
Temp = Value>>1;
Value = Temp;
}
LED_A3 = 1;
LED_A2 = 0;
LED_A1 = 1;
LED_A0 = 0;
LED_E = 0;
LED_E = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -