7281code.c
来自「7281读写C51源程序(键盘与显示)」· C语言 代码 · 共 102 行
C
102 行
#include <reg51.h>
unsigned char nian[8]={8,1,8,0,8,0,0,2};
unsigned char stime[8]={0xf,0xf,1,5,4,1,0,0},dtime[8]={0,0,3,0,2,1};
unsigned char *p=stime,zt,ss[7]={0,1,18,20,8,7,20};
/*7281按键显示程序
*/
sbit dat=P1^3;
sbit key=P1^4;
sbit clk=P1^5;
sbit P1_0=P1^0;
bit n1;
bit b1224;
unsigned char sel,zt,chbit;
void delay(unsigned char dd)
{unsigned char i;
for(i=0;i<dd;i++);return;
}
unsigned char receive()
{ unsigned char i,k=0;
clk=0;
clk=1;
while(dat);
clk=0;
clk=1;
for(i=0;i<8;i++)
{ delay(4);
k=k<<1;
if(dat)k=k|0x01;
else k=k&0xfe;
clk=0;
clk=1;
// k=k<<1;
}
return k;
}
void wr_7281(unsigned char b)
{unsigned char i;
do{ clk=0;
clk=1;
} //B为控制字,C为数据
while(dat);
clk=0;
clk=1;
while(!dat); //建立握手信?
for(i=0;i<8;i++)
{ if(b<0x80)dat=0;
else dat=1;
clk=0;
clk=1;
b=b<<1;
delay(2);
}
dat=1;
}
void setdisplay(unsigned char *p)
{ unsigned m,i;
for(i=0;i<8;i++)
{m=i<<4;
wr_7281(0x15);
wr_7281(m|p[i]);
}
return;
}
void main()
{
unsigned char kk=1;
unsigned char m,i,k=1;
TMOD=0X02;
TH0=TL0=0;
TR0=1;
EA=0;
ET0=1;
k=ss[0];
wr_7281(0x12);//设置7281工作方式
wr_7281(0x80);
setdisplay(stime);
k=0;
while(1)
{while(!key)
{m=0;
wr_7281(0x93);
k=receive();
stime[0]=k%10;
stime[1]=k/10%10;
setdisplay(stime);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?