tm1618.txt

来自「数码管驱动芯片TM1618的C语言驱动程序」· 文本 代码 · 共 115 行

TXT
115
字号
#include <reg52.h>

sbit  L_STB = P2^0;
sbit  L_CLK = P2^1;
sbit  L_DIO = P2^3;

void write_tm1618(unsigned char dat)
{
  unsigned char i,temp;
  temp=dat;
  L_STB=1;
  _nop_();
  L_CLK=1;
  L_STB=0;
  _nop_();

  for(i=0;i<8;i++)
  {
   L_CLK=0;
   if(temp&0x01) L_DIO=1;
   else L_DIO=0;
   temp>>=1;
   L_CLK=1;
  }
  _nop_();
  L_STB=1;
}

void write_1618_data(unsigned char adr,unsigned char dat)
{
  unsigned char i,temp;
  temp=adr;
  L_STB=1;
  L_CLK=1;
  L_STB=0;
  for(i=0;i<8;i++)
  {
   L_CLK=0;
   if(temp&0x01) L_DIO=1;
   else L_DIO=0;
   temp>>=1;
   L_CLK=1;
  }
  
  temp=dat;
  for(i=0;i<8;i++)
  {
   L_CLK=0;
   if(temp&0x01) L_DIO=1;
   else L_DIO=0;
   temp>>=1;
   L_CLK=1;
  } 

  L_STB=1;
}


void main()
{
 
 write_tm1618(0);
 write_tm1618(0x44);
 write_1618_data(0xc0,0x00);
 write_1618_data(0xc1,0x00);
 write_1618_data(0xc2,0x00);
 write_1618_data(0xc3,0x00);
 write_1618_data(0xc4,0x00);
 write_1618_data(0xc5,0x00);
 write_1618_data(0xc6,0x00);
 write_1618_data(0xc7,0x00);
 write_1618_data(0xc8,0x00);
 write_1618_data(0xc9,0x00);
 write_1618_data(0xca,0x00);
 write_1618_data(0xcb,0x00);
 write_1618_data(0xcc,0x00);
 write_tm1618(0x8b);      //10/16



 while(1)
 {

 	if(!KEY4)
	{
      write_1618_data(0xc0,0x1f); 
	  write_1618_data(0xc1,0x38); 
      write_1618_data(0xc2,0x17); 
      write_1618_data(0xc3,0x18); 
	  write_1618_data(0xc4,0x17); 
      write_1618_data(0xc5,0x18);
	  write_1618_data(0xc6,0x14); 
      write_1618_data(0xc7,0x10);
      
	  while(!KEY4);

	}
 	if(!KEY1)
	{
      write_1618_data(0xc0,0x00); 
	  write_1618_data(0xc1,0x00); 
      write_1618_data(0xc2,0x14); 
      write_1618_data(0xc3,0x00); 
	  write_1618_data(0xc4,0x14); 
      write_1618_data(0xc5,0x00);
	  write_1618_data(0xc6,0x14); 
      write_1618_data(0xc7,0x00);
      
	  while(!KEY1);

	}
	
  }
}

⌨️ 快捷键说明

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