导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]FM12232F 串行 C51  不显示东西 只有背

* 11866: [求助]FM12232F 串行 C51 不显示东西 只有背光是亮的

   czd2003 
czd2003发表的帖子 

 [求助]FM12232F 串行 C51  不显示东西 只有背光是亮的
接线是sbit CS =P0^3;    
sbit SID=P0^1; 
sbit SCLK=P0^0;  VSS-0V VDD-5V  BL+ --5V   BL- ---0V
  程序是
#include "reg51.h"
#include "intrins.h"

sbit CS =P0^3;    
sbit SID=P0^1; 
sbit SCLK=P0^0; 


void delay(unsigned int j)
{
  unsigned char i;
  do{
  for(i=0;i    <100;i++);
   }while(j--);

                           
void send_command(unsigned char command_data) //·¢ËÍÃüÁî

 unsigned char i; 
 unsigned char i_data,temp_data1,temp_data2; 

 i_data=0xf8;   //²Ù×÷ÃüÁî,¿ÉÒԲ鿴×ÊÁÏ
 delay(10); 
 CS=1; 
 SCLK=0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 i_data&=0xf0; 
 for(i=0;i    <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data   <  <1; 
 } 
 i_data=command_data; 
 temp_data1=i_data&0xf0; 
 temp_data2=i_data&0x0f; 
 temp_data1>  >  =4; 
 temp_data2  <  <=4; 
 i_data=temp_data1|temp_data2; 
 i_data&=0xf0; 
 for(i=0;i    <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 CS=0; 

void send_data(unsigned char command_data)    //·¢ËÍÊý¾Ý

 unsigned char i; 
 unsigned char i_data,temp_data1,temp_data2;

 i_data=0xfa; //²Ù×÷ÃüÁî,¿ÉÒԲ鿴×ÊÁÏ
 delay(10); 
 CS=1; 
 for(i=0;i    <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 i_data&=0xf0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 i_data=command_data; 
 temp_data1=i_data&0xf0; 
 temp_data2=i_data&0x0f; 
 temp_data1>  >  =4; 
 temp_data2  <  <=4; 
 i_data=temp_data1|temp_data2; 
 i_data&=0xf0; 
 for(i=0;i  <8;i++) 
 { 
  SID=(bit)(i_data&0x80); 
  SCLK=0; 
  SCLK=1; 
  i_data=i_data  <  <1; 
 } 
 CS=0; 
}

void InitLCD() //Òº¾§³õʼ»¯

 send_command(0x30); //¹¦ÄÜÉèÖÃ:Ò»´ÎËÍ8λÊý¾Ý,»ù±¾Ö¸Á  
 send_command(0x06); //µãÉ趨:ÏÔʾ×Ö·û/¹â±ê´Ó×óµ½ÓÒÒÆÎ»,DDRAMµØÖ·¼Ó1 
 send_command(0x0c); //ÏÔʾÉ趨:¿ªÏÔʾ,ÏÔʾ¹â±ê,µ±Ç°ÏÔʾλ·´°×ÉÁ¶¯  
 send_command(0x04); //ÏÔʾÉ趨:¿ªÏÔʾ,ÏÔʾ¹â±ê,µ±Ç°ÏÔʾλ·´°×ÉÁ¶¯   
 send_command(0x01); //ÇåDDRAM            
 send_command(0x02); //DDRAMµØÖ·¹éλ         
 send_command(0x80); //°ÑÏÔʾµØÖ·ÉèΪ0X80£¬¼´ÎªµÚÒ»ÐеÄÊ×λ   
}
/* flagnew ÊÇˢбê־λ,1ÔòË¢ÐÂ,0²»Ë¢ÐÂ, 
 x,yΪÆðʼ×ù±ê x(0    <=x    <=3),y(0    <=y    <=7),xΪÐÐ×ù±ê,yΪÁÐ×ù±ê;
  howΪҪÏÔʾºº×ֵĸöÊý; 
    strÊÇÒªÏÔʾºº×ֵĵØÖ· */
        
void DispHanzi(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri)
{
 unsigned char hi=0;           //ºº×ÖÏÔʾ
 if(x==0) send_command(0x80+y);   //
 else if(x==1) send_command(0x90+y);
 else if(x==2) send_command(0x88+y);
 else if(x==3) send_command(0x98+y);
 for(hi=0;hi    <how;hi++)
 {
  send_data(*(stri+hi*2));
  send_data(*(stri+hi*2+1));
 }
}

void DispZimu(unsigned char x,unsigned char y,unsigned char how,unsigned char *stri)//
{
 unsigned char hi=0;         //×ÖĸÏÔʾ
 if(x==0) send_command(0x80+y);  
 else if(x==1) send_command(0x90+y);
 else if(x==2) send_command(0x88+y);
 else if(x==3) send_command(0x98+y); 
 for(hi=0;hi    <how;hi++)
 {
  send_data(*(stri+hi));
 } 
}

main()

 InitLCD();
 while(1)
 {DispHanzi(0,5,3,"时间");
 DispZimu(0,1,8,"Easy51-B");
 DispHanzi(1,0,8,"三度空间");

 }

}


发表时间:2008年10月4日11:51:36

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:深圳市华宇电子科技有限公司[原创]供应各品牌存储器芯片: SAMSUNG三星系列:
[下一篇帖子]:luminary 芯片使用心得[upload=pdf]viewfile.asp?id=16