| 
 | 
 
 
发表于 2006-7-17 16:50:47
|
显示全部楼层
 
 
 
| 
 
 选几个IO口模拟就可以,这是51的参考程序: 
 
/*----------------------------------------------------------- 
功能:用51驱动1621芯片的段码液晶 
------------------------------------------------------------*/ 
 
sbit CS   = P1^0; 
sbit WR_  = P1^2; 
sbit DAT  = P1^3; 
 
/*------------------------ 
功能:延时 
参数:uint y 
返回:无 
说明:无 
-------------------------*/ 
void Delay(uint n) 
{  
  uint j,i; 
  for(j=0;j<n;j++) 
  { 
    i=0; 
  } 
} 
/*------------------------ 
功能:写字节 
参数:uchar k,uchar N 
返回:无 
说明:无 
-------------------------*/ 
void write_byte(uchar k,uchar n) 
{ 
  uchar i,j; 
  for(i=0;i<n;i++) 
  { 
// 
    if(k&0x80) //p2.3 
      DAT = 1; 
    else 
      DAT = 0; 
 
    WR_ = 1; //WR_=1; 
    j=0; 
    k=k<<1; 
    j=0; 
    WR_ = 0; //WR_=0; 
  } 
} 
 
// 
void write_byte1(uchar k,uchar n) 
{ 
  uchar i; 
  for(i=0;i<n;i++) 
  { 
// 
    if(k&0x01) 
      DAT = 1; 
    else 
      DAT = 0; 
// 
    WR_ = 1; //WR_=1; 
// 
    k=k>>1; 
// 
    WR_ = 0; //WR_=0; 
  } 
} 
 
 
/*------------------------ 
功能:写命令 
-------------------------*/ 
void write_com(uchar com) 
{ 
  CS = 0;//cs=0; 
// 
  write_byte(0x80,3); //写100 
  write_byte(com,8); 
  WR_ = 1; //WR_=1 
// 
  WR_ = 0; //WR_=0 
// 
  CS = 1;// cs=1; 
} 
 
 
/*------------------------ 
功能:写数据 
-------------------------*/ 
void write_dat(uchar add,uchar mdata) 
{ 
  CS = 0;//cs=0; 
// 
  add=add<<2; 
  write_byte(0xa0,3); //写101 
  write_byte(add,6); 
  write_byte1(mdata,4); 
// 
  CS = 1;// cs=1; 
} 
 
 
/*------------------------ 
功能:清屏 
-------------------------*/ 
void display_clr(void) 
{ 
  uchar i; 
  for(i=0;i<32;i++) 
  { 
    write_dat(i,0);  
  } 
} 
 
 
/*------------------------ 
功能 满屏 
-------------------------*/ 
void display_full(void) 
{ 
  uchar i; 
  for(i=0;i<16;i++) 
  { 
    write_dat(i,0xff);  
  } 
} 
 
 
/*------------------------- 
功能:初始化液晶 
-------------------------*/ 
void int1621(void) 
{ 
  CS = 1;// cs=1; 
// 
  WR_ = 0; //WR_=0 
// 
  DAT = 1;//dat=1; 
// 
  write_com(0x29); //BIAS1/3 
  write_com(0x18); //RC256K 
  write_com(0x06); //WDT溢出标志失效 
  write_com(0x04); //时基输出失效 
  write_com(0x01); //SYS EN,打开系统振荡器 
  write_com(0x03); //打开LCD偏压发生器 
  display_clr(); 
} 
 
 
/*------------------------- 
功能:显示 
-------------------------*/ 
/* 
void display(uchar add,uchar dat) 
{ 
  write_dat(add,dat>>4); 
  write_dat(add+1,dat); 
} 
*/ |   
 
 
 
 |