×
单片机 > 单片机程序设计 > 详情

12864 LCD显示屏读写程序

发布时间:2020-05-26 发布时间:
|

#include"reg51.h" 
#define uchar unsigned char 
#define uint unsigned int 
sbit SCLK=P2^2; 
sbit SID=P2^1; 
sbit CS=P2^0; 

void delay(uint v)/*延时*/ 


    while(v!=0) v--; 

void ser_in(uchar c)/*serial输入程序*/ 

   uchar BitCnt; 
   for(BitCnt=0;BitCnt<8;BitCnt++)   
     { 
      if((c<      else  SID=0; 
      delay(1);                 
      SCLK=1;               
      delay(3);       
      SCLK=0;  
      } 
 }    

void wcode (uchar cmd)/*写命令*/ 
{        
  CS=0; 
  delay(10); 
  CS=1; 
  ser_in(0xf8); 
  ser_in(cmd&0xf0); 
  ser_in((cmd&0x0f)<<4); 


void wdata(uchar dat)/*写数据*/ 

  CS=0; 
  delay(10); 
  CS=1; 
  ser_in(0xfa); 
  ser_in(dat&0xf0); 
  ser_in((dat&0x0f)<<4); 
    


/*void set_adr(uchar x,uchar y)/*设定行列*/        
/*{ 
    x=x+0x80; 
    y=y+0x40; 
    wcode(x); 
    wcode(y); 
}*/ 
void set_adr_GB(uchar x)/*设定国标码地址*/ 

        x=x+0x80; 
        wcode(x); 

void clear(void)/*清除显示*/ 

        wcode(0x01); 


void set_function(uchar c)/*功能设定*/ 

        c=c+0x30; 
        wcode(c); 
}  

void addr_zero(void)/*地址归零*/ 

        wcode(0x02); 


void dis_on_off(uchar c)/*显示状态*/ 

    c=c+0x08; 
    wcode(c); 

void setup(void) 

  wcode(0x01); 
  wcode(0x30); 
  wcode(0x02); 
  wcode(0x04); 
  wcode(0x0c); 
  wcode(0x01); 
  wcode(0x80); 


void main(void) 

  uint GB,GB_l,GB_h; 
  uchar loop; 
  //PSB=0; 
  /*reset();*/ 
  dis_on_off(0x07);  
  set_function(0x00); 
  setup(); 
  while(1) 
  { 
    addr_zero(); 
    clear(); 
    set_adr_GB(0); 
    loop=0;   
    for(GB=0xb0a1;GB<=0xf7ff;GB++) 
      { 
        loop++; 
        if(loop==33){addr_zero();clear();set_adr_GB(0);loop=0;} 
        GB_h=(GB&0xff00)>>8; 
        GB_l=GB&0xff; 
        if(GB_l==0x00){GB_h=GB_h;GB_l=0xa1;GB=(GB_h<<8)+GB_l;} 
        wdata(GB_h); 
        wdata(GB_l); 
        delay(12000); 
       }    
   } 
 }         




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
stm32 总线矩阵介绍