导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[blackfire531]关于青云公司LCM320240zk驱动的



No.29997
作者:blackfire531
邮件:blackfire531@yahoo.com.cn
ID:76849
登陆:2次
文章数:4篇
最后登陆IP:61.190.70.20
最后登陆:2007/9/2 22:02:33
注册:2007/5/4 13:30:24
财富:101
发帖时间:2008/3/21 23:17:15
发贴者IP:58.242.211.46
标题:blackfire531:关于青云公司LCM320240zk驱动的问题[求助]
摘要:No.29997关于青云公司LCM320240zk驱动的问题[求助] 我使用的是MSP430的cpu,P4连接LCD数据口,P5连接控制口,烧录进去后屏幕却什么都没有显示,麻烦哪位大哥帮忙看看程序哪里有问题,谢谢了。 


//qylcd.h
//#include   <msp430x14x.h>  
//LCD引脚定义 P4->  数据口     P5->  控制口


#define LCD_DATA_IN        P4IN
#define LCD_DATA_OUT        P4OUT
#define LCD_DATA_DIR        P4DIR
//---------------------------------------------------------------
#define    LCD_RS            BIT7            //LCD_DI(RS) ->   P5.7
#define LCD_RS_DIR        P5DIR
#define LCD_RS_LO        P5OUT &= ~LCD_RS
#define LCD_RS_HI        P5OUT |= LCD_RS

#define    LCD_RW            BIT6            //LCD_RW ->   P5.6
#define LCD_RW_DIR        P5DIR
#define LCD_RW_LO        P5OUT &= ~LCD_RW
#define LCD_RW_HI        P5OUT |= LCD_RW

#define    LCD_EN            BIT5            //LCD_EN ->   P5.5
#define LCD_EN_DIR        P5DIR
#define LCD_EN_LO        P5OUT &= ~LCD_EN
#define LCD_EN_HI        P5OUT |= LCD_EN

#define    LCD_CS1            BIT4            //LCD_CS1 ->   P5.4
#define LCD_CS1_DIR        P5DIR
#define LCD_CS1_LO        P5OUT &= ~LCD_CS1
#define LCD_CS1_HI        P5OUT |= LCD_CS1

#define    LCD_BUSY       P5OUT & BIT3            //LCD_BUSY ->   P5.3

#define    LCD_RST            BIT1            //LCD_RST ->   P5.1
#define LCD_RST_DIR        P5DIR
#define LCD_RST_LO        P5OUT &= ~LCD_RST
#define LCD_RST_HI        P5OUT |= LCD_RST


#define SCREEN_WIDTH        (320)       // pixels
#define SCREEN_HIGHT        (240)       // pixels

/////////////////////////////////////////////////////////// 
//使用RA8802液晶控制芯片 
//mian.c 
///////////////////////////////////////////////////////////// 
#include "msp430x14x.h" 
#include "qylcd.h" 

// RA8802的寄存器 
#define LCR  (0x00) 
#define MIR  (0x08) 
#define CCR  (0x10) 
#define CSCR (0x18) 
#define AWRR (0x20) 
#define DWRR (0x28) 
#define AWBR (0x30) 
#define DWBR (0x38) 
#define AWLR (0x40) 
#define DWLR (0x48) 
#define AWTR (0x50) 
#define DWTR (0x58) 
#define CPXR (0x60) 
#define CPYR (0x70) 
#define BTR  (0x80) 
#define SCCR (0x90) 
#define INTR (0xA0) 
#define INTX (0xB0) 
#define INTY (0xB8) 
#define TPCR (0xC0) 
#define TPDR (0xC8) 
#define LCCR (0xD0) 
#define PDR  (0xE0) 
#define FCR  (0xF0) 
// 屏幕中,每行可显示的ASC字符数 
#define AP          (40) 
//---------------------------------------------------------------------- 
//外部函数 
extern void IniCpu(void); 
//---------------------------------------------------------------------- 
//函数声明 
void LCD_Init(void); //初始化屏幕
void LCD_CheckBusy(void); 
void LCD_WriteComm(unsigned char wdata); //写控制寄存器 
void LCD_WriteData(unsigned char wdata); //写资料寄存器
void LCD_SetXY(unsigned char X, unsigned char Y); //设置光标位置
static void ClearMemory(void); //清除内存和显示
int DrawDot(unsigned int x, unsigned int y, unsigned int color);//画点程序 
void Delay_ns(unsigned char nvalue); //延时
void Delay_ms(unsigned char nvalue); //延时
unsigned char LCD_RegRead(unsigned char REG_Addr);//读取控制寄存器内容 
//----------------------------------------------------------------------主函数 
int main( void ) 

  // Stop watchdog timer to prevent time out reset 
  //WDTCTL = WDTPW + WDTHOLD; 
  IniCpu(); 
  LCD_Init(); 
  int a,b; 
  for(a=100;a  <200;a++) 
    for(b=100;b  <200;b++) 
      DrawDot(a,b,1); 
  return 0; 


//----------------------------------------------------------------------延时函数 
void Delay_ms(unsigned char nvalue) { 
   unsigned long count,j; 
   int i; 
   count=2667; 
   for(i=nvalue;i>  0;i--) 
     for(j=count;j>  0;j--); 

void Delay_ns(unsigned char nvalue) { 
   unsigned int count,j; 
   int i; 
   count=3; 
   for(i=nvalue;i>  0;i--) 
     for(j=count;j>  0;j--); 

//初始化LCD--------------------------------------------------------------- 
void LCD_Init(void) { 
  // int i=0; 
   //LCD复位 
   LCD_RST_DIR |= LCD_RST;            //RST ->   复位输出 
   LCD_RST_HI; 
   Delay_ms(1); 
   LCD_RST_LO; 
   Delay_ms(120); 
   LCD_RST_HI; 
    
   LCD_CS1_DIR |= LCD_CS1;            //CS1->  输出方向 
   LCD_CS1_HI;   
   LCD_RS_DIR |= LCD_RS;    //RS,EN,R/W置低电平 
   LCD_RS_LO; 
   LCD_RW_DIR |= LCD_RW; 
   LCD_RW_LO; 
   LCD_EN_DIR |= LCD_EN; 
   LCD_EN_LO;                 
 //初始化屏幕   
   LCD_WriteComm(LCR); LCD_WriteComm(0xCE); // 电源设置(关键) 
    
   LCD_WriteComm(MIR); LCD_WriteComm(0x73);// 视窗设置时钟频率设置(关键) 
    
   LCD_WriteComm(CCR); LCD_WriteComm(0xEE); // 光标 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:47毫秒 最大:7276毫秒 查询6次