2676|2

8

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

GYTF018M1BOM显示屏跟mea16程序相关问题 [复制链接]

有大神帮下忙吗,下面这些程序是根据51自己改成meg16的程序,弄了2天多了,一点头绪都没有

lcd.c文件
/**********************************************************
*                                                                                             *
*                                   彩屏驱动程序                                                          *
*                                                                                                                  *
**********************************************************/

#include
#include "lcd.h"


uint colors[]=
{
  0xf800,0x07e0,0x001f,0xffe0,0x0000,0x07ff,0xf81f,0xffff
};

/**********************************************************

延时子函数

**********************************************************/
void delay_ms(uint ms)
{
  unsigned char k;

  while (ms--)
  {
    for (k = 0; k < 228; k++)
      ;
  }
}

/**********************************************************

写8位数据子函数

**********************************************************/
void WriteDAT(uchar value)    // color data
{
        LCD_CS_L;
        LCD_RS_H;
//        LCD_WR  = 0;
        PORTB=value;
    LCD_WR_L;
        LCD_WR_H;
           LCD_CS_H;
}


/**********************************************************

写8位命令子函数

**********************************************************/
void WriteCOM(uchar value)    // color data
{
        LCD_CS_L;
        LCD_RS_L;
//        LCD_WR  =  0;
        PORTB=value;
        LCD_WR_L;
        LCD_WR_H;
           LCD_CS_H;
}


/**********************************************************

设置显示窗口子函数

**********************************************************/
void LCD_SetRamAddr(uint xStart, uint xEnd, uint yStart, uint yEnd)
{
        WriteCOM(0x2a);                   //行
        WriteDAT(xStart>>8);   //XS15-XS8
        WriteDAT(xStart);           //XS7-XS0    (X start address)
        WriteDAT(xEnd>>8);           //XE15-XE8
        WriteDAT(xEnd);                   //XE7-XE0    (X end address)

        WriteCOM(0x2b);                   //列        row address set (RASET)
        WriteDAT(yStart>>8);   //YS15-YS8
        WriteDAT(yStart);           //YS7-YS0    (Y start address)
        WriteDAT(yEnd>>8);           //YE15-YE8
        WriteDAT(yEnd);                   //YE7-YE0    (Y end address)

    WriteCOM(0x2c);                   //display on        显示打开命令
   
}


/**********************************************************/
void LCD_init(void)
{         //请看数据手册的命令部分 了解其个命令的功能
        LCD_RST_H;
        delay_ms(100);
        LCD_RST_L;
        delay_ms(100);
        LCD_RST_H;
        delay_ms(100);
       
        WriteCOM(0x01);            //software reset软件复位
        delay_ms(100);
        WriteCOM(0x11);            //sleep out/power on(SLPOUT) 退出睡眠
        delay_ms(50);
        WriteCOM(0x20);                //display inversion off 关闭取反
        delay_ms(50);
        WriteCOM(0x38);            //ID mode off (IDMOFF)
        delay_ms(50);
        WriteCOM(0x13);            //Normal display mode on (Partial mode off)
       
        WriteCOM(0x3a);            //color mode Interface pixel format  (COLMOD)
        WriteDAT(0x05);                //16-bit/pixel , 1-times data transfer
       
        WriteCOM(0xc0);                //power control 1      (PWCTR1)
        WriteDAT(0x03);                //default value  LCM=0 set the GVDD voltage=4.65
       
        WriteCOM(0xc5);          
        WriteDAT(0xc8);           //VCOMH voltage set 4.300V
       
        WriteCOM(0xc6);
        WriteDAT(0x1f);           //VCOMAC voltage set 5.550V ;
        delay_ms(10);
       
        WriteCOM(0xfe);
        WriteDAT(0x00);
        WriteDAT(0x04);
       
        WriteCOM(0x26);           //gamma sel
        WriteDAT(0x04);
       
       
        WriteCOM(0x2a);           //column address set (CASET)
        WriteDAT(0x00);           //XS15-XS8
        WriteDAT(0x00);           //XS7-XS0    (X start address)
        WriteDAT(0x00);           //XE15-XE8
        WriteDAT(0x7f);           //XE7-XE0    (X end address)
       
        WriteCOM(0x2b);           //row address set (RASET)
        WriteDAT(0x00);           //YS15-YS8
        WriteDAT(0x00);           //YS7-YS0    (Y start address)
        WriteDAT(0x00);           //YE15-YE8
        WriteDAT(0x9f);           //YE7-YE0    (Y end address)
       
        WriteCOM(0x36);           //memory data access control  (MADCTR)
        WriteDAT(0xc0);
       
        WriteCOM(0x29);          // display on


}
/**********************************************************

清屏子函数

**********************************************************/
void  LCD_clear(uchar n)
{
   uint num;
   
   LCD_SetRamAddr(0,127, 0,159);  //设置显示的坐标

   for(num=20480;num>0;num--)          //160*128=20480
   {
           WriteDAT(colors[n]>>8);   //高8位
         WriteDAT(colors[n]);           //低8位
   }
}

lcd.h文件
/**********************************************************

file:  Lcd.h
**********************************************************/

/**********************************************************

file:  Lcd.h
**********************************************************/


#define uchar unsigned char
#define uint unsigned int

#define  TYPE_LCD_DATA                1
#define  TYPE_LCD_COMMAND        0
#define  LCD_SIZE_X                128
#define  LCD_SIZE_Y                160
#define  DATA   PORTB

#define LCD_RST_H    PORTD|=(1 << PD6)     
#define LCD_RST_L    PORTD&=~(1 << PD6)
//RST 引脚定义
//#define LCD_RD_H            PORTD|=(1 << PD7)
//#define LCD_RD_L     PORTD&=~(1 << PD7)
//RD  引脚定义
#define LCD_WR_H     PORTC|=(1 << PC3)
#define LCD_WR_L     PORTC&=~(1 << PC3)
//WR  引脚定义
#define LCD_RS_H     PORTD|=(1 << PD5)
#define LCD_RS_L     PORTD&=~(1 << PD5)
//RS  引脚定义
#define LCD_CS_H     PORTD|=(1 << PD4)
#define LCD_CS_L     PORTD&=~(1 << PD4)
//CS  引脚定义  



extern  uint colors[];
extern  void  delay_ms(uint ms);
extern  void  LCD_SetRamAddr(uint xStart, uint xEnd, uint yStart, uint yEnd);
extern  void  LCD_init(void);
extern  void  LCD_clear(uchar n);
extern  void  LCD_ShowChar(uchar x,uchar y,uint For_color,uint Bk_color,char ch);
extern  void  LCD_ShowString(uchar x,uchar y,uint For_color,uint Bk_color,char *p);
extern  void ChineseChar(uint x,uint y,int size,uint For_color, uint Bk_color , char c);
void WriteDAT(uchar value) ;

main函数

#include
#include "lcd.h"


/**********************************************************

  主函数

**********************************************************/
void main(void)
{  
   DDRB = 0xff;
   DDRC = 0xff;
   DDRD = 0xff;
  
   LCD_init();
   LCD_clear(6);
   
   while(1)        ;
}

/*********************************************************/


最新回复

你好,请问你解决这个问题了没有啊?我也改成了stm32的程序但是下载后没有反应,如果你解决了请把程序发给我下,谢谢!  详情 回复 发表于 2014-7-15 17:07
点赞 关注
 

回复
举报

1149

帖子

3

TA的资源

五彩晶圆(初级)

沙发
 
自己写吧,应该没人无聊到干这个~
 
个人签名construction complete!
 
 

回复

6

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
你好,请问你解决这个问题了没有啊?我也改成了stm32的程序但是下载后没有反应,如果你解决了请把程序发给我下,谢谢!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表