301c3 lcm.c

来自「很好的c语言显示代码」· C语言 代码 · 共 190 行

C
190
字号
//SMS0301C3

#include<reg51.h>
#include<intrins.h>

#define time_1 6000
sbit LOADPIN = P1^0;               //用户自定义LOAD对应引脚
sbit CLKPIN = P1^1;                //用户自定义CLK对应引脚
sbit  DIPIN = P1^2;                //用户自定义DI对应引脚
unsigned char data l_data[5];      //用户自定义LCD缓冲区

void delay(unsigned int t)         // 延时子程序
{  unsigned int i,j;
   for(i=0;i<t;i++)
      for(j=0;j<10;j++)
         ;
}

void lcdwbit(bit n)
{  DIPIN = n;
   CLKPIN = 1;
   CLKPIN = 0;
   CLKPIN = 1;
}


void lcdwd(unsigned char data1)
{  unsigned char i;
   //data1=~data1;                  //数据取反
   for(i=0;i<8;i++)
   {  if((data1&0x01)==0x01)
         lcdwbit(1);
      else 
         lcdwbit(0);
      data1>>=1;
   }
}

void l_set_clr()
{
   l_data[1]=0xff;
   l_data[2]=0xff;
   l_data[3]=0xff;
   l_data[4]=0xff;
   l_data[5]=0xff;
}
void l_set0()
{
   l_data[1]=0xff;
   l_data[2]=0x90;
   l_data[3]=0x90;
   l_data[4]=0x90;
   l_data[5]=0xff;
}
void l_set1()
{
   l_data[1]=0xff;
   l_data[2]=0xf3;
   l_data[3]=0xf3;
   l_data[4]=0xf3;
   l_data[5]=0xff;
}
void l_set2()
{
   l_data[1]=0xff;
   l_data[2]=0x89;
   l_data[3]=0x89;
   l_data[4]=0x89;
   l_data[5]=0xff;
}
void l_set3()
{
   l_data[1]=0xff;
   l_data[2]=0xa1;
   l_data[3]=0xa1;
   l_data[4]=0xa1;
   l_data[5]=0xff;
}
void l_set4()
{
   l_data[1]=0xff;
   l_data[2]=0xe2;
   l_data[3]=0xe2;
   l_data[4]=0xe2;
   l_data[5]=0xff;
}
void l_set5()
{
   l_data[1]=0xff;
   l_data[2]=0xa4;
   l_data[3]=0xa4;
   l_data[4]=0xa4;
   l_data[5]=0xff;
}
void l_set6()
{
   l_data[1]=0xff;
   l_data[2]=0x84;
   l_data[3]=0x84;
   l_data[4]=0x84;
   l_data[5]=0xff;
}
void l_set7()
{
   l_data[1]=0xff;
   l_data[2]=0xf1;
   l_data[3]=0xf1;
   l_data[4]=0xf1;
   l_data[5]=0xff;
}
void l_set8()
{
   l_data[1]=0xff;
   l_data[2]=0x80;
   l_data[3]=0x80;
   l_data[4]=0x80;
   l_data[5]=0xff;
}
void l_set9()
{
   l_data[1]=0xff;
   l_data[2]=0xa0;
   l_data[3]=0xa0;
   l_data[4]=0xa0;
   l_data[5]=0xff;
}
void l_set()
{
   l_data[1]=0xbe;
   l_data[2]=0x00;
   l_data[3]=0x00;
   l_data[4]=0x00;
   l_data[5]=0x5c;
}

void lcdwd1()
{  unsigned char i;
   LOADPIN=1;
   for(i=0;i<5;i++) 
      lcdwd(l_data[i+1]);
   LOADPIN=0;
}

void transram()
{
   l_set0();
   lcdwd1();                       //显示0
   delay(time_1);
   l_set1();
   lcdwd1();                       //显示1
   delay(time_1);
   l_set2();
   lcdwd1();                       //显示2
   delay(time_1);
   l_set3();
   lcdwd1();                       //显示3
   delay(time_1);
   l_set4();
   lcdwd1();                       //显示4
   delay(time_1);
   l_set5();
   lcdwd1();                       //显示5
   delay(time_1);
   l_set6();
   lcdwd1();                       //显示6
   delay(time_1);
   l_set7();
   lcdwd1();                       //显示7
   delay(time_1);
   l_set8();
   lcdwd1();                       //显示8
   delay(time_1);
   l_set9();
   lcdwd1();                       //显示9
   delay(time_1);
   l_set();
   lcdwd1();                       //全显
   delay(time_1);
   delay(time_1);
}

main()
{  while(1)
   {
      transram();
   }
}


⌨️ 快捷键说明

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