⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.c

📁 时钟芯片ds1302 程序 源程序按版本号放在文件夹中。里面有在Protues中仿真的DSN文件。 打开MPLAB的MCP文件进行编译 将DSN文件载入Protues中 将生成的HEX导入到P
💻 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 + -