不懂,求含义

来源:互联网 发布:hiroko kubota 淘宝 编辑:程序博客网 时间:2024/05/24 03:43
  现在要根据以下的这段芯片HT1621的测试程序进行修改,改为HT1626的程序,可是却不懂这段程序的含义,求解释,先谢谢各位了

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

sbit     CHS=P1^7;
sbit     RED=P1^6 ;
sbit     WRI=P1^5;
sbit     DAT=P1^4;
sbit     IRQ=P1^3;/***可以不用****/
sbit     RUN=P1^0;
sbit     LIG=P2^0;

#define BIAS 0x52
#define SYSEN 0x02
#define LCDON 0x06
#define LCDOFF 0x04

void Sendbit_1621(unsigned char da,unsigned char cnt) small
{unsigned char i;
 for(i=0;i<cnt;i++)
 {if((da&0x300)==0)DAT=0;
  else DAT=1;
  WRI=0;_nop_();LIG=LIG^1;
  WRI=1;
  da<<=1;
  }
 }
void SendDatabit_1621(unsigned char da,unsigned char cnt) small
{unsigned char i;
 for(i=0;i<cnt;i++)
 {if((da&0x01)==0)DAT=0;
  else DAT=1;
  WRI=0;_nop_();LIG=LIG^1;
  WRI=1;
  da>>=1;
  }
 }

void SendCmd(unsigned char comand) small
{CHS=0;
Sendbit_1621(0x300,16);
Sendbit_1621(comand,8);
CHS=1;
 }
void Write_1621(unsigned char addr,unsigned char da) small
{CHS=0;
Sendbit_1621(0xa0,3);
Sendbit_1621(addr,6);
SendDatabit_1621(da,4);
CHS=1;
 }
void WriteAll_1621(unsigned char addr,unsigned char *p,unsigned char cnt) small
{unsigned char i;
CHS=0;
Sendbit_1621(0xa0,3);
Sendbit_1621(addr,6);
for(i=0;i<cnt;i++)
{SendDatabit_1621(*p,8);
 }

CHS=1;
 }

/******************************************************************************/
/*Delay Subroutine                                                                                                            */
/******************************************************************************/
void DelayXms(int count) small
{
int i,j;
for(i=0; i<count; i++)
{for(j=0; j<6; j++)_nop_();}
}

void main(void)
{

SendCmd(BIAS);
SendCmd(SYSEN);
SendCmd(LCDON);
do{
 WriteAll_1621(0,0x0F,64);                          /***全显***/
 DelayXms(6000);
 DelayXms(6000);
 DelayXms(6000);
 DelayXms(6000);
 RUN=RUN^1;

  WriteAll_1621(0,0x00,64);                             /***全清***/


  DelayXms(1000);

}while(1);

 

 }

原创粉丝点击