test.c

来自「UCOSII 运行于PC 机」· C语言 代码 · 共 118 行

C
118
字号
#include<reg51.h>
#include<intrins.h>

#define uchar unsigned char

#define BIAS 0x29
#define SYSEN 0x01
#define LCDOFF 0x02
#define LCDON 0x03


sbit dat = P1^0;
sbit cs = P1^1;
sbit wr = P1^2;
sbit led1 = P1^3;
sbit led2 = P1^4;

void delay(void)
{ 
  uchar i,j;
  for(i=0;i<100;i++)
  {
   for(j=0;j<150;j++)
  {;}
  }
}


void SendBit_1621( uchar udata, uchar cnt)
{
  uchar i;
  for(i=0;i<cnt;i++)
   { 
    if((dat&0x80)==0) dat=0;
	else dat=1;
	wr=0;
    _nop_();
    _nop_();
	wr=1;
	udata<<=1;
   }
}
      
void SendDataBit_1621(uchar udata, uchar cnt)
{
  uchar i;
  for(i=0;i<cnt;i++)
   { 
    if((dat&0x01)==1) dat=0;
	else dat=1;
	wr=0,
	_nop_();
	_nop_();
	wr=1;
	udata>>=1;
   }
}

void SendCmd(uchar command)
{ 
   cs=0;
   SendBit_1621(0x80,3);
   SendBit_1621(command,9);
   cs=1;
}


void Write_1621(uchar addr,uchar dat) 
{
   cs=0;
   _nop_();
   _nop_();
   SendBit_1621(0xa0,3);
   SendBit_1621(addr<<2,6);
   SendDataBit_1621(dat,4);
   cs=1;
}

void WriteAll_1621(uchar addr,uchar *p,uchar cnt)
{
   uchar i;
   cs=0;
   _nop_();
   _nop_();
   SendBit_1621(0xa0,3);
   SendBit_1621(addr<<2,6);
   for(i =0; i <cnt; i++,p++)
   {
    SendDataBit_1621(*p,8);
   }
   cs=1;
}

void main()
{  
     while(1)
   {
     uchar a[10];
     a[0]=0x21;a[1]=0x43;a[2]=0x65;a[3]=0x87;a[4]=0xa9;
     P3=0xaa;
	 P1=0;
	 cs=0;
     SendCmd(BIAS);
     SendCmd(SYSEN);
     SendCmd(LCDON);
     Write_1621(0x00,0x10);
     Write_1621(0x20,0x10);
	 led1=0;
     led2=0;
	 P1=0;
     WriteAll_1621(0,a,5);
	 cs=1;
     //SendCmd(LCDOFF);

  }
          
}                                                          

⌨️ 快捷键说明

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