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 + -
显示快捷键?