📄 displaycontrol.c
字号:
#define _DISPLAYCONTROL_C_Def
#include "hd7279.h"
#include "DisplayControl.h"
void InitialDisplayControl(void){
unsigned char i;
SendInstructTo7279(CMD_RESET); //
for( i=0;i<DIG_NUMs;i++ ){
DisplayV.DisplayBakBuffer[i] = 0xFF;
DisplayV.DisplayBuffer[i] = 0x98;//DP , transMode 1, data 8
}
DisplayV.FlashC = 0xFF;
DisplayV.HideC = 0xFF;
DisplayV.BakFlashC = 0x00;
DisplayV.BakHideC = 0x00;
DisplayV.ControlMark = 1;
return;
}
//disBit:0~7
//mark:1 显示小数点;0:不显示小数点
void SetupDPForLED(unsigned char disBit, unsigned char mark)
{
if(mark)
DisplayV.DisplayBuffer[disBit] |= 0x80;
else
DisplayV.DisplayBuffer[disBit] &= 0x7F;
}
//返回显示缓冲器中的数据,0x00~0x0f
unsigned char ReturnLedBufData(unsigned char disBit)
{
return DisplayV.DisplayBuffer[disBit] & 0x0F;
}
//让所有的LED无显示, 注意:不是隐藏
void GoOutAllLED(void)
{
unsigned char i;
for ( i=0;i<DIG_NUMs;i++ )
DisplayV.DisplayBuffer[i] = 0x0F;
}
//DisBit:0~7
//Data: 0x00~0x0F
//DP: 0 or 1
//transMode:0 or 1 or 2
unsigned char SetupDisBuffer(unsigned char DisBit, unsigned char Dp, unsigned char Data, unsigned char transMode){
unsigned char i;
if( DisBit>7 ) return 0;
i = Data & 0x0F;
if( Dp!=0 ) i += 0x80;
i += ((transMode & 0x03) << 4);
DisplayV.DisplayBuffer[DisBit] = i;
return 1;
}
//DisBit:0~7, other all bit
//mark:1-闪烁; 0-不闪烁
void SetupFlashBit(unsigned char DisBit, unsigned char mark){
if( DisBit>7 ){
if( mark!=0 )//闪烁
DisplayV.FlashC = 0x00;
else//不闪烁
DisplayV.FlashC = 0xFF;
}
else{
if( mark!=0 )//闪烁
DisplayV.FlashC &= ~(1 << (7-DisBit));
else//不闪烁
DisplayV.FlashC |= (1 << (7-DisBit));
}
return;
}
//DisBit:0~7, other all bit
//mark: 1-消隐; 0-不消隐
void SetupHideBit(unsigned char DisBit, unsigned char mark){
if( DisBit>7 ){
if( mark!=0 )//消隐
DisplayV.HideC = 0x00;
else//不消隐
DisplayV.HideC = 0xFF;
}
else{
if( mark!=0 )//消隐
DisplayV.HideC &= ~(1 << (7-DisBit));
else//不消隐
DisplayV.HideC |= (1 << (7-DisBit));
}
return ;
}
//-------------------------------------------------------------------------------
void Display(void)
{
unsigned char i;
if( DisplayV.ControlMark==0 )
return;
for( i=0;i<DIG_NUMs;i++ ){
if( DisplayV.DisplayBuffer[i]!=DisplayV.DisplayBakBuffer[i] ){
SetupLedData(7-i, DisplayV.DisplayBuffer[i]&0x8F, (DisplayV.DisplayBuffer[i]&0x70)>>4 );
DisplayV.DisplayBakBuffer[i] = DisplayV.DisplayBuffer[i];
}
}
if( DisplayV.FlashC!=DisplayV.BakFlashC ){
Flash7279(DisplayV.FlashC);
DisplayV.BakFlashC = DisplayV.FlashC;
}
if( DisplayV.HideC!=DisplayV.BakHideC ){
Hide7279(DisplayV.HideC);
DisplayV.BakHideC = DisplayV.HideC;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -