?? display.c
字號(hào):
//-----------------------
// 7219 display
//#include <REG51.H>
//#include <INTRINS.H>
//函數(shù)聲明---------------------
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個(gè)管子都工作
senddata_7219(0x0a,0x0f); // 設(shè)置亮度為 1/2 亮
senddata_7219(0x09,0xff); // 使8個(gè)管子都用編碼方式
}
//*****************************************************
// 送數(shù)據(jù)給7219的函數(shù)
// order 是命令字
// data 是數(shù)據(jù)
//*****************************************************
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);
}*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -