导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求救:T6963     MGLS240128T[elliemy]

 *第44179篇: 求救:T6963 MGLS240128T

  
楼 主:elliemy 2006年11月2日16:59
 求救:T6963     MGLS240128T
大虾们,帮帮忙吧!我都快疯了。
情况是这样的,我用的新华龙的单片机C8051F005,和MGLS240128(6963的驱动)。
但现在什么反应都没的,不过有时候屏能闪动,原理如附图。按原理图检查线路没问题。我现在也不知道是硬件还是软件的问题。希望大虾门帮忙看一下,本人感激万分。
程序如下;
#include   <c8051f000.h>        
#include   <stdio.h>  
#include   <intrins.h>  
#define  uchar unsigned char
#define  uint  unsigned int 

#define  lcd_bus   P1
sbit     wr   =  P3^4;                  //写控制信号
sbit     rd   =  P3^5;                  //读控制信号
sbit     cd   =  P3^6;                  //通道信号, cd=1指令 cd=0 数据

void     delay(uchar t);                //延时
void     check( void );                 //忙标准检查
void     wr_com ( uchar wr_com );       //写命令
void     wr_data( uchar wr_data);       //写数据
uchar    *word;                         //显示字

//******************************************************************
//*******读取忙标准,工作状态
//******************************************************************
void check( void )
{  unsigned char  m; 
   do{  lcd_bus = 0xff;
        cd=1;
  rd=0;
     m=lcd_bus;
     rd=1;  
  }
   while((m&0x03)!=0x03);
}
//*******************************************************************
//       延时程序
//*******************************************************************
void delay(uchar t)

  uchar i,j;
    for(i=0;i  <t;i++)
        {  for(j=0;j  <10;j++);  }
}
void delay1(uint k)

  uchar j;
    while ((k--)!=0)
       {   for (j=0;j  <125;j++);}
}
//**********************************************************
//        写命令
//***********************************************************
void wr_com( uchar w_com)
{
   check();
   cd = 1;    
   lcd_bus = w_com;
   wr=0; 
   wr=1;
}
//************************************************************
//        写数据
//************************************************************
void wr_data( uchar w_data)
{  
   check();
   cd = 0;    
   lcd_bus =w_data;
   wr=0;
   wr=1;
}
//************************************************************
//       初始化设置
//************************************************************
void lcd_init (void)
{  wr_data(0x00);
   wr_data(0x00);
   wr_com (0x40);  //文本首地址
  
   wr_data(0x20);
   wr_data(0x00);
   wr_com (0x41);  //文本宽度设置

   wr_data(0x00);
   wr_data(0x08);
   wr_com (0x42);  // 图形首地址
   
   wr_data(0x20);
   wr_data(0x00);
   wr_com (0x43);  //设置图形宽度  
                   //即一行显示所占字节数
   wr_com (0xa7);  //光标设置 
   wr_com (0x80);  //显示方式设置  逻辑“或”合成
   wr_com (0x9c);  //显示开关
  }
//**********************************************************
//   函数原型: void draw_dot(x,y)
//   功    能; T6963屏上打点
//     入口参数: 横坐标(x),枞坐标(y)
//     出口参数: 
//***********************************************************
void draw_dot(x,y)
{  uint m;
   uchar n=0x00,t=0x00;

   m=(y&0x7f)*0x20;
   n=x/8;
   t=m-(m/0x100)*0x100 +n;
   wr_data(t);
   t=m/0x100+0x08;
   wr_data(t);
   wr_com(0x24);

   if(y>  =0x80)   n=0xf8;
   else          n=0xf0;

   t=x%8;
   t=(~t)&0x07;
   t=n|t;
   wr_data(t);
}
//********************************************************
//   函数原型: void sys_init(void)
//   功    能; c8051f005系统初始化设置
//                1、关闭看门狗 2、外部时钟使能 3、端口设置
//     入口参数:
//     出口参数: 
//********************************************************
void sys_init(void)
{  uint i;

   WDTCN = 0xde;                
   WDTCN = 0xad;
                         
   OSCXCN = 0x67;                     
   for (i=0; i   < 100; i++)  ;           
   while (!(OSCXCN & 0x80)) ;           
   OSCICN = 0x88;                     
   OSCICN=0X07;                                  
 
   XBR0   = 0x00;
   XBR1   = 0x00;
   XBR2   = 0x40;
   PRT0CF = 0x00; 
   PRT1CF = 0x7f;
   PRT2CF = 0x00;
   P2 = 0xff;

   rd=1;
   wr=1;
   cd=1;
}
//***********************************************************
//        主函数
//***********************************************************
main()
{ int  x; 

  sys_init ();
  lcd_init();
  while(1) {
    for(x=0;x  <128;x++)
     {
       draw_dot(x,x);
      }
   }
}
此主题相关图片如下:
按此在新窗口浏览图片


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:t1.009 美化版

[下一篇主题]:请教Keil c51中都要用哪些伪指令(如:public,rseg等等)