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

📄 display.c

📁 通过C语言编程
💻 C
字号:
//-----------------------
//  7219  display





//#include <REG51.H>
//#include <INTRINS.H>
//函数声明---------------------
void InitIO_7219();
void senddata_7219(unsigned int ,unsigned int );
void send_7219(unsigned int data_in);
//void delay_in_display(unsigned int t,unsigned int p);
void clr_by_0();
void black_led();
void display(unsigned int digit ,unsigned int value);

char keyscan();
//-----------------------------



int a;

	sfr pin=0x90;
  sbit din=0x90;
  sbit cs=0x91;
  sbit clk=0x92;

  
  
  
  
  
main()
{
unsigned char x;

InitIO_7219();//初始化
black_led();

KEYSCAN();




display (1,0);
//while(1);
//black_led();
//clr_by_0();

while(1);}









void display(unsigned int digit ,unsigned int value)
{
  unsigned int i;

  
	din=1;
	cs=1;
	clk=1;

	//InitIO_7219();//初始化
	
    

	
	 
    switch(digit)
	{
		case 0:  senddata_7219(0x01,value); break;
        case 1:  senddata_7219(0x02,value);	break;
        case 2:  senddata_7219(0x03,value);	break;
		case 3:  senddata_7219(0x04,value);	break;
		case 4:  senddata_7219(0x05,value);	break;
		case 5:  senddata_7219(0x06,value);	break;
		case 6:  senddata_7219(0x07,value);	break;
		case 7:  senddata_7219(0x08,value);	break;
	
	default : black_led();
	}
    

     
 }




void InitIO_7219()
{
	din=1;
	cs=1;
	clk=1;
	senddata_7219(0x0c,0x01); // 使其7219工作正常模式
	senddata_7219(0x0b,0x07); // 配置scan limit模式,使其8个管子都工作
	senddata_7219(0x0a,0x0f); // 设置亮度为 1/2 亮
	senddata_7219(0x09,0xff); // 使8个管子都用编码方式

}
//*****************************************************
// 送数据给7219的函数
// order 是命令字
// data 是数据
//*****************************************************
void senddata_7219(unsigned int order,unsigned int data_in)
{
unsigned int rtemp=0,dtemp;
dtemp=data_in;
dtemp&=0x00ff;
rtemp=order;
rtemp<<=4;
rtemp<<=4;
rtemp|=dtemp;
send_7219(rtemp);
} 



void send_7219(unsigned int data_in)
{
unsigned int a;
// 将CS拉低

cs=0;
//CLR_CS();
for(a=0;a<16;a++)
{
clk=0;
//CLR_SCK();
if(data_in&0x8000)
din=1;
//SETB_SDA();
else
din=0;
//CLR_SDA();
clk=1;
//SETB_SCK();

data_in<<=1;
}
cs=1;
//SETB_CS();
}

void clr_by_0()
{int m;
for(m=1;m<=8;m++)
 senddata_7219(m,0);

}

void black_led()
{int m;
for(m=1;m<=8;m++)
senddata_7219(m,0x000f);
}


/*void delay_in_display(unsigned int t,unsigned int p)
{
 do
{	
do {t-=1;}
while(t);
p-=1;
}while(p);
	

}*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -