📄 dm114.c
字号:
#include <reg51.h>
sbit DIN=P1^0;
sbit CLK=P1^1;
sbit STB=P1^2;
sbit OE =P1^3;
sbit key0=P1^4;
unsigned char mode,number,p;
unsigned char flag;
unsigned char code ANODE[8][90]={0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,
0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,
0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,
0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,
0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,
0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };
void send(unsigned char add)
{unsigned char ADS,j;
ADS=add;
for(j=0;j<8;j++)
{
CLK=0;
DIN=ADS&0x01;
ADS=ADS>>1;
CLK=1;
}
}
void delay(unsigned int n)
{unsigned int k;
while(n--)
{for(k=0;k<250;k++)
{;}
}
}
/////////////////////////////////////////////////////
void clock_inital0() reentrant //定时器0的初始化;
{TR0=0;TH0=0x3c;TL0=0xb0;TR0=1;}
///////////////////////////////////////////////////
void clock_inital1() reentrant //定时器1的初始化;
{TR1=0;
TH1=0x00;
TL1=0x00;
TR1=1;}
//////////////////////////////////////////////////
void keynum0() //display mode
{
flag++;
mode=0;
if(flag>=9) {flag=0; mode=1;}
}
////////////////////////////////////////
void key() //键盘子程序;
{ unsigned char keycode;
key0=1;
keycode=P1&0x10;
if(keycode!=0x10) //判断是否有键按下;
{
delay(20); //延时去抖动;
keycode=P1&0x10;
while(keycode!=0x10) //确认有键按下;
{
if(key0==0) //KEY0按下后执行子程序;
{
keynum0(); //
while(1) //等待键释放;
{ if(key0==1) break;
delay(10);
}
}
break; }
}
}
////////////////////////////////////////////////
///////////////////////////////////////////////////
main()
{
TMOD=0x11;
EA=1;
TF1=0;
TF0=0;
clock_inital1();
clock_inital0();
ET1=1;
ET0=1;
STB=0;
OE=0;
flag=1;
mode=0;
number=0;
p=0;
while(1)
{ if((P1&0x10)!=0x10)
{key();}
}
}
///////////////////////////////////////////////////////////////
void clk_int0() interrupt 1 //定时器0中断程序;
{
clock_inital0();
number++;
}
///////////////////////////////////////////////////////////////
void clk_int1() interrupt 3
{ unsigned char i;
clock_inital1();
if(mode==0)
{switch(flag)
{
case 1: for(i=0;i<90;i++)
{send(ANODE[0][i]);}
STB=1;
STB=0;
break;
case 2: for(i=0;i<90;i++)
{send(ANODE[1][i]);}
STB=1;
STB=0;
break;
case 3: for(i=0;i<90;i++)
{send(ANODE[2][i]);}
STB=1;
STB=0;
break;
case 4: for(i=0;i<90;i++)
{send(ANODE[3][i]);}
STB=1;
STB=0;
break;
case 5: for(i=0;i<90;i++)
{send(ANODE[4][i]);}
STB=1;
STB=0;
break;
case 6: for(i=0;i<90;i++)
{send(ANODE[5][i]);}
STB=1;
STB=0;
break;
case 7: for(i=0;i<90;i++)
{send(ANODE[6][i]);}
STB=1;
STB=0;
break;
case 8: for(i=0;i<90;i++)
{send(ANODE[7][i]);}
STB=1;
STB=0;
break;
default : flag=1;break;
}
}
if(mode==1)
{if(number>=12){ number=0;p++;}
if(p==7) p=0;
for(i=0;i<90;i++)
{ send(ANODE[p][i]);} STB=1;STB=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -