📄 display.c
字号:
#include "display.h"
union BCDFormat{
struct{
unsigned start:0;
unsigned Low:4;
unsigned High:4;
}BCD;
unsigned char Byte;
};
union ScanFormat{
struct{
unsigned Low:4;
unsigned High:4;
}Scan;
unsigned char Byte;
};
//0x06 is the Port Adress of PORTB
union BCDFormat BCDData @ BCDOutPort;
union BCDFormat BCDTemp;
union ScanFormat ScanBits @ ScanControl;
//define BCDOut as the out port of BCD data
#define BCDOut BCDData.BCD.Low
#define BCDTB BCDTemp.Byte
#define BCDTBL BCDTemp.BCD.Low
#define BCDTBH BCDTemp.BCD.High
#define ScanPort ScanBits.Scan.Low
#define DataPort BCDData.Byte
// ********CA Com Anode*********
void Seg7DisplayCA(char *out)
{
char cnt=4;
ScanPort=0b0001;
DataPort=0;
while(cnt--)
{
DataPort=out[cnt];
SDelay(225);
ScanPort<<=1;
}
}
//*
// ********CC Com Anode*********
void Seg7DisplayCC(char *out)
{
char cnt=4;
ScanPort=0b1101;
DataPort=0;
while(cnt--)
{
ScanPort+=1;
DataPort=out[cnt];
SDelay(225);
ScanPort<<=1;
}
}
//*
// *******CA Com Anode**********
void BCDDisplayCA(char *out)
{
unsigned char cnt=2;
ScanPort=0b0001;
while(cnt--)
{
BCDTB=out[cnt];
BCDOut=BCDTBL;
SDelay(225);
ScanPort<<=1;//=0b11111100;
BCDOut=BCDTBH;
SDelay(225);
ScanPort<<=1;
}
}
//*/
// ******CC Com Cathode*********
void BCDDisplayCC(char *out)
{
//unsigned char cnt=2;
unsigned char BCDTmp;
//unsigned char ScanTemp;
/*
ScanPort=0b1101;
while(cnt--)
{
ScanPort+=1;//0b11111110;
BCDTmp=out[cnt];
BCDOut=BCDTmp;
SDelay(225);
ScanPort<<=1;//=0b11111100;
ScanPort+=1;
BCDOut=BCDTmp>>4;
SDelay(225);
ScanPort<<=1;
}
//*/
/*
ScanPort=0B1111;
ScanTemp=0x01;
while(cnt--)
{
ScanPort-=ScanTemp;
BCDTmp=out[cnt];
BCDOut=BCDTmp;
SDelay(225);
ScanTemp<<=1;
ScanPort-=ScanTemp;
BCDOut=BCDTmp>>4;
SDelay(225);
ScanTemp<<=1;
}
//*/
//*
ScanPort=0b1111;
ScanPort=0b1110;;//0b11111110;
BCDTmp=out[1];
BCDOut=BCDTmp;
SDelay(225);
ScanPort=0b1101;;//=0b11111100;
BCDOut=BCDTmp>>4;
SDelay(225);
ScanPort=0b1011;;//0b11111110;
BCDTmp=out[0];
BCDOut=BCDTmp;
SDelay(225);
ScanPort=0b0111;;//=0b11111100;
BCDOut=BCDTmp>>4;
SDelay(225);
//*/
}
void SDelay(char tt)
{
while(tt--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -