搜索
bottom↓
回复: 14

请教高手:2.8寸屏,驱动是ili9320,16位接口,显示闪烁难忍(除了RGB)

[复制链接]

出0入0汤圆

发表于 2008-7-24 16:44:31 | 显示全部楼层 |阅读模式
当显示RGB组合的八种基本色时显示正常,但是当显示其他颜色是就闪烁不止,

学习AVR两个星期了,顺便在这里交一下作业,程序(以前没用过C,比较幼稚):


(原文件名:img130.jpg)


(原文件名:img129.jpg)

#include <avr/io.h>
#include <avr/delay.h>
#include <avr/pgmspace.h>
#include<avr/pgmspace.h>

#define uchar unsigned char
#define uint unsigned int

#define nop asm("NOP")

#define CS_L PORTB&=0xfd
#define CS_H PORTB|=0x02

#define RS_L PORTB&=0xfb
#define RS_H PORTB|=0x04

#define WR_L PORTB&=0xf7
#define WR_H PORTB|=0x08

#define RD_L PORTB&=0xef
#define RD_H PORTB|=0x10

#define RESET_L PORTC&=0xfe
#define RESET_H PORTC|=0x01

#define DATA_L PORTD
#define DATA_H PORTA

void MUC_Init();
void LCD_Init();
void LCD_WR_REG(uchar index,uint val);
void LCD_WR_Start();
void LCD_WR_Data(uint val);
void LCD_WR_End();
void LCD_test();
void LCD_test2();
void num_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor);
void chr_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor);
void LCD_DrawPicture(uint startX, uint startY, uint *pic);

uint color[]={0xf800,0x07e0,0x001f,0xffe0,0x0000,0xffff,0x07ff,0xf81f};
uchar chra[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
              0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x18,0x60,0x30,0x30,
              0x30,0x30,0x00,0x30,0x01,0xF0,0x0E,0x30,0x38,0x30,0x30,0x30,0x60,0x30,0x60,0x30,
              0x60,0x32,0x30,0xF2,0x1F,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"a",0*/
                          
uchar chrn[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
              0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x78,0xF0,0x1B,0x18,0x1C,0x0C,
              0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,
              0x18,0x0C,0x18,0x0C,0x7E,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"n",1*/                  
                          
                          
uchar chrd[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x78,0x00,0x18,
              0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x07,0xD8,0x0C,0x38,0x18,0x18,
              0x18,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x10,0x18,
              0x18,0x38,0x0C,0x5E,0x07,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"d",2*/                  
                          
                          
uchar chro[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
              0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x0E,0x38,0x08,0x0C,
              0x18,0x0C,0x30,0x06,0x30,0x06,0x30,0x06,0x30,0x06,0x30,0x06,0x30,0x06,0x18,0x0C,
              0x18,0x0C,0x0C,0x18,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"o",3*/



uchar chrB[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xE0,0x18,0x38,
              0x18,0x1C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x18,0x18,0x30,0x1F,0xE0,
              0x18,0x18,0x18,0x0C,0x18,0x04,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x06,
              0x18,0x0C,0x18,0x18,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"B",5*/

uchar chrP[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x18,0x18,
              0x18,0x0C,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x06,0x18,0x0C,0x18,0x18,
              0x1F,0xF0,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,
              0x18,0x00,0x18,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"P",6*/

uchar chrM[] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x38,0x1C,
              0x38,0x1C,0x38,0x1C,0x38,0x3C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x6C,0x2E,0x4C,
              0x26,0x4C,0x26,0x4C,0x26,0x4C,0x26,0x8C,0x23,0x8C,0x23,0x8C,0x23,0x8C,0x23,0x0C,
              0x23,0x0C,0x21,0x0C,0xF9,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"M",7*/

uchar num6[576] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,0x1F,0xFF,0x80,0x00,0x00,0x00,0x7F,0xFF,
0xE0,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0x00,0x03,0xFF,0xFF,0xF8,0x00,0x00,0x07,
0xFF,0xFF,0xFC,0x00,0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x00,0x0F,0xFE,0x07,0xFE,0x00,
0x00,0x1F,0xF0,0x03,0xFF,0x00,0x00,0x3F,0xE0,0x01,0xFF,0x00,0x00,0x3F,0xC0,0x00,
0xFF,0x80,0x00,0x7F,0x80,0x00,0x7F,0x80,0x00,0x7F,0x80,0x00,0x7F,0x80,0x00,0xFF,
0x00,0x00,0x7F,0xC0,0x00,0xFF,0x00,0x00,0x3F,0xC0,0x00,0xFE,0x00,0x00,0x3F,0xC0,
0x01,0xFE,0x00,0x00,0x3F,0xC0,0x01,0xFE,0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,
0x00,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,0x03,0xFC,
0x00,0x00,0x00,0x00,0x03,0xFC,0x03,0xFC,0x00,0x00,0x03,0xFC,0x0F,0xFF,0x80,0x00,
0x03,0xF8,0x3F,0xFF,0xE0,0x00,0x07,0xF8,0x7F,0xFF,0xF0,0x00,0x07,0xF8,0xFF,0xFF,
0xF8,0x00,0x07,0xF9,0xFF,0xFF,0xFC,0x00,0x07,0xFB,0xFF,0xFF,0xFE,0x00,0x07,0xFB,
0xFC,0x0F,0xFF,0x00,0x07,0xFF,0xE0,0x03,0xFF,0x00,0x07,0xFF,0xC0,0x01,0xFF,0x80,
0x07,0xFF,0x80,0x01,0xFF,0x80,0x07,0xFF,0x00,0x00,0xFF,0xC0,0x07,0xFF,0x00,0x00,
0x7F,0xC0,0x07,0xFE,0x00,0x00,0x7F,0xC0,0x07,0xFE,0x00,0x00,0x7F,0xC0,0x07,0xFE,
0x00,0x00,0x7F,0xE0,0x07,0xFC,0x00,0x00,0x3F,0xE0,0x07,0xFC,0x00,0x00,0x3F,0xE0,
0x07,0xFC,0x00,0x00,0x3F,0xE0,0x07,0xFC,0x00,0x00,0x3F,0xE0,0x07,0xFC,0x00,0x00,
0x3F,0xE0,0x03,0xFC,0x00,0x00,0x3F,0xE0,0x03,0xFC,0x00,0x00,0x3F,0xE0,0x03,0xFC,
0x00,0x00,0x3F,0xE0,0x03,0xFC,0x00,0x00,0x3F,0xE0,0x03,0xFC,0x00,0x00,0x3F,0xE0,
0x03,0xFE,0x00,0x00,0x3F,0xE0,0x01,0xFE,0x00,0x00,0x3F,0xE0,0x01,0xFE,0x00,0x00,
0x7F,0xC0,0x01,0xFE,0x00,0x00,0x7F,0xC0,0x01,0xFF,0x00,0x00,0x7F,0xC0,0x00,0xFF,
0x00,0x00,0xFF,0xC0,0x00,0xFF,0x80,0x00,0xFF,0x80,0x00,0x7F,0xC0,0x01,0xFF,0x80,
0x00,0x7F,0xE0,0x03,0xFF,0x00,0x00,0x3F,0xF0,0x07,0xFF,0x00,0x00,0x3F,0xFC,0x0F,
0xFE,0x00,0x00,0x1F,0xFF,0xFF,0xFE,0x00,0x00,0x0F,0xFF,0xFF,0xFC,0x00,0x00,0x07,
0xFF,0xFF,0xF8,0x00,0x00,0x03,0xFF,0xFF,0xF0,0x00,0x00,0x00,0xFF,0xFF,0xE0,0x00,
0x00,0x00,0x7F,0xFF,0x80,0x00,0x00,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"6",0*/
                          
uchar numr[576] PROGMEM ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFE,0x00,0x00,0x0F,0xFF,0xFF,0xFF,
0xC0,0x00,0x00,0xFF,0x00,0x1F,0xF8,0x00,0x00,0x7E,0x00,0x03,0xFC,0x00,0x00,0x7E,
0x00,0x01,0xFE,0x00,0x00,0x7E,0x00,0x00,0x7F,0x00,0x00,0x7E,0x00,0x00,0x7F,0x80,
0x00,0x7E,0x00,0x00,0x3F,0x80,0x00,0x7E,0x00,0x00,0x1F,0xC0,0x00,0x7E,0x00,0x00,
0x1F,0xC0,0x00,0x7E,0x00,0x00,0x1F,0xC0,0x00,0x7E,0x00,0x00,0x0F,0xE0,0x00,0x7E,
0x00,0x00,0x0F,0xE0,0x00,0x7E,0x00,0x00,0x0F,0xE0,0x00,0x7E,0x00,0x00,0x0F,0xE0,
0x00,0x7E,0x00,0x00,0x0F,0xE0,0x00,0x7E,0x00,0x00,0x0F,0xE0,0x00,0x7E,0x00,0x00,
0x0F,0xE0,0x00,0x7E,0x00,0x00,0x0F,0xE0,0x00,0x7E,0x00,0x00,0x0F,0xE0,0x00,0x7E,
0x00,0x00,0x0F,0xC0,0x00,0x7E,0x00,0x00,0x1F,0xC0,0x00,0x7E,0x00,0x00,0x1F,0xC0,
0x00,0x7E,0x00,0x00,0x1F,0x80,0x00,0x7E,0x00,0x00,0x3F,0x80,0x00,0x7E,0x00,0x00,
0x7F,0x00,0x00,0x7E,0x00,0x00,0xFE,0x00,0x00,0x7E,0x00,0x01,0xFC,0x00,0x00,0x7E,
0x00,0x03,0xF8,0x00,0x00,0x7E,0x00,0x1F,0xE0,0x00,0x00,0x7F,0xFF,0xFF,0xC0,0x00,
0x00,0x7F,0xFF,0xFC,0x00,0x00,0x00,0x7E,0x01,0xFC,0x00,0x00,0x00,0x7E,0x00,0xFC,
0x00,0x00,0x00,0x7E,0x00,0xFE,0x00,0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,0x7E,
0x00,0x7E,0x00,0x00,0x00,0x7E,0x00,0x7F,0x00,0x00,0x00,0x7E,0x00,0x3F,0x00,0x00,
0x00,0x7E,0x00,0x3F,0x80,0x00,0x00,0x7E,0x00,0x1F,0x80,0x00,0x00,0x7E,0x00,0x1F,
0xC0,0x00,0x00,0x7E,0x00,0x1F,0xC0,0x00,0x00,0x7E,0x00,0x0F,0xC0,0x00,0x00,0x7E,
0x00,0x0F,0xE0,0x00,0x00,0x7E,0x00,0x07,0xE0,0x00,0x00,0x7E,0x00,0x07,0xF0,0x00,
0x00,0x7E,0x00,0x03,0xF0,0x00,0x00,0x7E,0x00,0x03,0xF0,0x00,0x00,0x7E,0x00,0x03,
0xF8,0x00,0x00,0x7E,0x00,0x01,0xF8,0x00,0x00,0x7E,0x00,0x01,0xFC,0x00,0x00,0x7E,
0x00,0x00,0xFC,0x00,0x00,0x7E,0x00,0x00,0xFC,0x00,0x00,0x7E,0x00,0x00,0xFE,0x00,
0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00,0x7F,0x00,0x00,0x7E,0x00,0x00,
0x3F,0x00,0x00,0x7E,0x00,0x00,0x3F,0x80,0x00,0x7E,0x00,0x00,0x3F,0x80,0x00,0x7E,
0x00,0x00,0x1F,0xC0,0x00,0xFF,0x00,0x00,0x1F,0xE0,0x0F,0xFF,0xF0,0x00,0x0F,0xFE,
0x0F,0xFF,0xF0,0x00,0x0F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"R",0*/          
uchar yemin[] PROGMEM = { /* 0X00,0X10,0X88,0X00,0X66,0X00,0X01,0X1B, */
0XE7,0X71,0XC8,0X71,0XE8,0X71,0X08,0X7A,0X28,0X72,0X29,0X7A,0X29,0X7A,0X08,0X72,
0XE8,0X69,0X08,0X7A,0X29,0X72,0X09,0X72,0XE7,0X59,0X69,0X82,0X09,0X72,0X0A,0X7A,
0X2A,0X7A,0X29,0X7A,0X69,0X82,0XE8,0X71,0X28,0X72,0X49,0X7A,0X29,0X7A,0X09,0X72,
0XE7,0X71,0X08,0X72,0X29,0X7A,0X4A,0X7A,0X28,0X72,0XAA,0X82,0X49,0X82,0X49,0X7A,
0X89,0X82,0X48,0X7A,0X28,0X7A,0X69,0X7A,0X29,0X7A,0X08,0X72,0XE1,0X49,0XE0,0X29,
0X20,0X2A,0X4A,0X72,0X51,0X85,0XAD,0X74,0X87,0X63,0XAD,0X9D,0X28,0X6A,0X28,0X6A,
0XAB,0X8D,0XCD,0X9D,0X8D,0X8D,0X48,0X6A,0XEA,0X6C,0X2C,0X7D,0X2B,0X7D,0X89,0X6C,
0XA9,0X72,0X28,0X72,0X0D,0X9E,0X4F,0XA6,0XAD,0X85,0X6D,0X84,0X86,0X51,0XE8,0X71,
0XA6,0X61,0X86,0X49,0XA6,0X59,0XE9,0X69,0XC3,0X41,0XE8,0X69,0XC8,0X69,0XC7,0X61,
0XA7,0X51,0XC7,0X59,0XA8,0X59,0XE8,0X61,0XE3,0X29,0X42,0X19,0X22,0X21,0X63,0X39,
0XA6,0X51,0X65,0X32,0X24,0X2A,0XE3,0X21,0X82,0X39,0X41,0X21,0X67,0X49,0XC6,0X51,
0XC6,0X51,0X24,0X41,0X45,0X49,0X45,0X41,0X86,0X49,0X65,0X49,0XE5,0X39,0X65,0X41,
0X85,0X49,0X45,0X49,0XE0,0X31,0XA1,0X29,0XC1,0X29,0X85,0X31,0X61,0X2A,0XC0,0X32,
0XA0,0X3A,0XE0,0X2A,0X86,0X43,0X09,0X54,0X6C,0X64,0X6C,0X64,0X6A,0X64,0X8A,0X6C,
0XAC,0X6B,0X09,0X73,0XCA,0X5A,0XE3,0X18,0XE2,0X21,0XC3,0X32,0X46,0X4B,0X46,0X4B,
0X66,0X53,0X45,0X43,0XE2,0X32,0X43,0X22,0XD2,0X7C,0X56,0X95,0X56,0X95,0X56,0X95,
0X36,0X9D,0X57,0X9D,0X77,0X9D,0X56,0X95,0X36,0X95,0X04,0X22,0X16,0X95,0X36,0X95,
0X08,0X72,0X49,0X7A,0X29,0X7A,0X08,0X72,0X08,0X7A,0X29,0X7A,0X29,0X7A,0X29,0X7A,
0X08,0X72,0X49,0X7A,0X48,0X7A,0X08,0X72,0XE8,0X59,0XA9,0X8A,0X08,0X72,0X29,0X7A,
0X49,0X7A,0X69,0X82,0X6A,0X82,0X08,0X72,0X08,0X72,0X29,0X72,0X09,0X72,0X29,0X72,
0X4A,0X7A,0X6A,0X7A,0X29,0X7A,0X6A,0X82,0XE8,0X71,0X6A,0X82,0X6A,0X82,0X8A,0X82,
0XAA,0X82,0X69,0X7A,0X49,0X82,0X29,0X72,0X49,0X7A,0X49,0X7A,0X08,0X72,0X49,0X82,
0XA3,0X42,0X4A,0X72,0X4A,0X72,0X48,0X4B,0X29,0X72,0X8C,0X83,0X49,0X72,0X47,0X72,
0XAE,0X95,0XCD,0X8D,0X8C,0X8D,0X8A,0X73,0X49,0X6A,0XCD,0X74,0X2D,0X7D,0XA9,0X64,
0XA8,0X4B,0X07,0X6A,0X31,0XB6,0XC6,0X6A,0XA1,0X4A,0XE6,0X59,0X86,0X51,0X09,0X72,
0XE9,0X69,0X67,0X51,0XA8,0X59,0XC7,0X61,0XE8,0X69,0XE8,0X69,0XC8,0X61,0XA7,0X61,
0X87,0X41,0XC8,0X59,0XC8,0X61,0X07,0X62,0X29,0X62,0X41,0X11,0X25,0X39,0X66,0X51,
0XA6,0X51,0X65,0X3A,0X65,0X2A,0XE8,0X59,0X66,0X49,0XC8,0X61,0X87,0X59,0X62,0X4A,
0X03,0X31,0XE3,0X19,0X04,0X2A,0XA8,0X3A,0X8A,0X3A,0X2A,0X4A,0X86,0X49,0XE8,0X51,
0XA6,0X51,0X65,0X49,0X22,0X2A,0X41,0X32,0X63,0X2A,0XC5,0X3A,0X43,0X4B,0X00,0X3B,
0XE0,0X3A,0X85,0X43,0X09,0X54,0X8B,0X64,0XAD,0X6C,0X8B,0X64,0XEC,0X74,0X6A,0X64,
0X4A,0X5C,0XC8,0X3A,0X4C,0X5B,0XCA,0X6B,0X48,0X64,0X46,0X6C,0XE8,0X5B,0X86,0X53,
0XEA,0X63,0X88,0X63,0X49,0X53,0XA6,0X3A,0X35,0X8D,0X56,0X95,0X76,0X9D,0X76,0X9D,
0X97,0X9D,0X56,0X9D,0X56,0X9D,0X57,0X9D,0X57,0X9D,0X91,0X7C,0X14,0X85,0X36,0X95,
0X28,0X7A,0X28,0X7A,0X08,0X7A,0X28,0X7A,0X08,0X7A,0X48,0X7A,0X08,0X72,0X48,0X7A,
0X28,0X7A,0X4A,0X7A,0X49,0X7A,0X29,0X7A,0XE8,0X61,0XEA,0X8A,0X09,0X72,0X2A,0X72,
0X69,0X7A,0X69,0X82,0X0A,0X72,0X69,0X7A,0X28,0X7A,0X29,0X7A,0X49,0X7A,0X49,0X82,};                          
                          
int main ()
{
   uchar px,py;
//   _delay_loop_2 (0xffff);
//   _delay_loop_2 (0xffff);
   MUC_Init();
   LCD_Init();
   LCD_test();
//   LCD_test2();   
   chr_dis(96,200, chrn,0xf800,0xf81f);
   num_dis(0,200,num6,0xffff,0xf800);
   num_dis(48,200,numr,0x0000,0xffff);
   LCD_DrawPicture(0, 0,yemin);
   while (1);
   return 0;
}  

void MUC_Init()
{
   DDRD=0xff;
   PORTD=0xff;
   DDRC=0xff;
   PORTC=0xff;
   DDRB=0xff;
   PORTB=0xff;
   DDRA=0xff;
   PORTA=0xff;
}

void LCD_Init()
{
        RESET_L;
        _delay_loop_2 (10000);
        _delay_loop_2 (10000);
        RESET_H;
    //_delay_loop_2 (10000);

        //initializing funciton 1
        LCD_WR_REG(0xe5,0x8000);
        LCD_WR_REG(0x00,0x0001);
        LCD_WR_REG(0x2b,0x0010);
        LCD_WR_REG(0x01,0x0100);
        LCD_WR_REG(0x02,0x0700);
        LCD_WR_REG(0x03,0x1230);
        LCD_WR_REG(0x04,0x0000);
        LCD_WR_REG(0x08,0x0202);
        LCD_WR_REG(0x09,0x0000);
        LCD_WR_REG(0x0a,0x0000);
        LCD_WR_REG(0x0c,0x0000);
        LCD_WR_REG(0x0d,0x0000);
        LCD_WR_REG(0x0f,0x0000);
        LCD_WR_REG(0x50,0x0000);
        LCD_WR_REG(0x51,0x00ef);
        LCD_WR_REG(0x52,0x0000);
        LCD_WR_REG(0x53,0x013f);
        LCD_WR_REG(0x60,0x2700);
        LCD_WR_REG(0x61,0x0001);
        LCD_WR_REG(0x6a,0x0000);
        LCD_WR_REG(0x80,0x0000);
        LCD_WR_REG(0x81,0x0000);
        LCD_WR_REG(0x82,0x0000);
        LCD_WR_REG(0x83,0x0000);
        LCD_WR_REG(0x84,0x0000);
        LCD_WR_REG(0x85,0x0000);
        LCD_WR_REG(0x90,0x0010);
        LCD_WR_REG(0x92,0x0000);
        LCD_WR_REG(0x93,0x0003);
        LCD_WR_REG(0x95,0x0110);
        LCD_WR_REG(0x97,0x0000);
        LCD_WR_REG(0x98,0x0000);

        //power setting function
        LCD_WR_REG(0x10,0x0000);
        LCD_WR_REG(0x11,0x0000);
        LCD_WR_REG(0x12,0x0000);
        LCD_WR_REG(0x13,0x0000);
        //_delay_loop_2 (10000);
       
        LCD_WR_REG(0x10,0x17b0);
        LCD_WR_REG(0x11,0x0004);
        //_delay_loop_2 (10000);
       
        LCD_WR_REG(0x12,0x013e);
        //_delay_loop_2 (10000);
       
        LCD_WR_REG(0x13,0x1f00);
        LCD_WR_REG(0x29,0x000f);
        _delay_loop_2 (0xffff);         //非常重要,不能少
       
        LCD_WR_REG(0x20,0x0000);
        LCD_WR_REG(0x21,0x0000);

        //initializing function 2

        LCD_WR_REG(0x30,0x0204);
        LCD_WR_REG(0x31,0x0001);
        LCD_WR_REG(0x32,0x0000);
        LCD_WR_REG(0x35,0x0206);
        LCD_WR_REG(0x36,0x0600);
        LCD_WR_REG(0x37,0x0500);
        LCD_WR_REG(0x38,0x0505);
        LCD_WR_REG(0x39,0x0407);
        LCD_WR_REG(0x3c,0x0500);
        LCD_WR_REG(0x3d,0x0503);

        //display on
        LCD_WR_REG(0x07,0x0173);
}

void LCD_WR_REG(uchar index,uint val)
{
        CS_L;
        RS_L;
       
        DATA_L=index;
        DATA_H=0;
       
        WR_L;
        //nop;
        //nop;
        WR_H;
        RS_H;
        DATA_L=(uchar)val;
        DATA_H=(uchar)(val>>8);
       
        WR_L;
        //nop;
        //nop;
        WR_H;
        CS_H;
}

void LCD_WR_Start()
{
        CS_L;
        RS_L;
       
        DATA_L = 0x22;
        DATA_H = 0x00;
        WR_L;
        nop;
        nop;
        WR_H;
        RS_H;
}

void LCD_WR_Data(uint val)
{
        DATA_L = (uchar)val;
        DATA_H = (uchar)(val>>8);
        WR_L;
        //nop;
        //nop;
        WR_H;
}

void LCD_WR_End()
{
        CS_H;
}

void LCD_test()
{
        uint temp,num,cl;
        uchar n;
       
        LCD_WR_REG(0x20,0);        //0-239
        LCD_WR_REG(0x21,0);        //0-319
       
        LCD_WR_Start();
        for(n=0;n<8;n++)
         {
            temp=color[n];
                for(num=40*240;num>0;num--)
                  LCD_WR_Data(temp);
         }
        LCD_WR_End();
       
/*        cl=0x0000;
        LCD_WR_REG(0x20,0);        //0-239
        LCD_WR_REG(0x21,0);        //0-319
        LCD_WR_Start();
        for(num=0;num<1320;num++)
        {
            for(temp=0;temp<240;temp++)
                {
                LCD_WR_Data(cl);
                }
                cl=cl+60;
        }
        LCD_WR_End();*/
}

void LCD_test2()
{
        uint temp,num;
        uint n;
       
        LCD_WR_REG(0x20,0);        //0-239
        LCD_WR_REG(0x21,0);        //0-319
       
        LCD_WR_Start();
        for(n=0;n<40*240;n++)
        {
    LCD_WR_Data(0xf800);
        }
        LCD_WR_End();
       
   LCD_WR_REG(0x20,100);        //0-239
   LCD_WR_REG(0x21,100);        //0-319
   LCD_WR_REG(0x50,100);        //定义好16*16方形的起始和末尾地址
   LCD_WR_REG(0x51,115);
   LCD_WR_REG(0x52,100);
   LCD_WR_REG(0x53,131);
   LCD_WR_Start();
        for(n=0;n<32*16;n++)
        {
    LCD_WR_Data(0xf800);

        }
        LCD_WR_End();
}

void num_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor)          //96*48
{
    uint n,t,k;
        uchar x,z,y;
       
    LCD_WR_REG(0x20,startX);        //0-239
    LCD_WR_REG(0x21,startY);        //0-319
        LCD_WR_REG(0x50,startX);
        LCD_WR_REG(0x51,startX+47);
        LCD_WR_REG(0x52,startY);
        LCD_WR_REG(0x53,startY+95);
        LCD_WR_Start();
    for(n=96;n>0;n--)
        {
         t=n-1;
         t=t*6;
         for(k=t;k<t+6;k++)
         {
          y=0x80;
          for(z=0;z<8;z++)
          {
            x=pgm_read_byte(pic+k)&y;
            if (x==0)
                 LCD_WR_Data(bcolor);
              else
                 LCD_WR_Data(color);
            y=y/2;
          }
         }
        }
        LCD_WR_End();
}

void chr_dis(uint startX, uint startY, uchar *pic,uint color,uint bcolor)          //32*16
{
    uint n,t,k;
        uchar x,z,y;
       
    LCD_WR_REG(0x20,startX);        //0-239
    LCD_WR_REG(0x21,startY);        //0-319
        LCD_WR_REG(0x50,startX);
        LCD_WR_REG(0x51,startX+15);
        LCD_WR_REG(0x52,startY);
        LCD_WR_REG(0x53,startY+31);
        LCD_WR_Start();
    for(n=32;n>0;n--)
        {
         t=n-1;
         t=t*2;
         y=0x80;
         for(z=0;z<8;z++)
         {
           x=pgm_read_byte(pic+t)&y;
           if (x==0)
                LCD_WR_Data(bcolor);
             else
                LCD_WR_Data(color);
           y=y/2;
         }
     t=t+1;
         y=0x80;
         for(z=0;z<8;z++)
         {
         x=pgm_read_byte(pic+t)&y;
         if (x==0)  
                LCD_WR_Data(bcolor);
             else
                LCD_WR_Data(color);
         y=y/2;
         }
        }
     LCD_WR_End();
}





void LCD_DrawPicture(uint startX, uint startY, uint *pic)
{
        unsigned int i;
        LCD_WR_REG(0x20,startX);        //0-239
    LCD_WR_REG(0x21,startY);        //0-319
        LCD_WR_REG(0x50,startX);
        LCD_WR_REG(0x51,startX+135);
        LCD_WR_REG(0x52,startY);
        LCD_WR_REG(0x53,startY+101);
        LCD_WR_Start();
        for(i=0;i<136*10;i++)
        {
        LCD_WR_Data(pgm_read_word(pic++));
        }
    LCD_WR_End();
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2008-7-24 16:48:11 | 显示全部楼层
请问LZ的LCM模块型号是?能拍个后面阻容元件的图看看么?

出0入0汤圆

 楼主| 发表于 2008-7-24 16:54:43 | 显示全部楼层
是320*240的驱动芯片是ili9320

出0入0汤圆

 楼主| 发表于 2008-7-24 16:55:44 | 显示全部楼层
自己顶希望高手出现

出0入0汤圆

 楼主| 发表于 2008-7-24 16:59:00 | 显示全部楼层
我现在甚至不知道闪烁是不是正常现象,希望用过的说一下,谢了。

出0入0汤圆

发表于 2008-7-24 17:03:28 | 显示全部楼层
你说的是LCD DRIVER IC的型号,我想知道的是模块是那个厂家生产的,一般后面会带有模块型号,比如说一个IC为ICL9320,模块型号是TFT8KXXXXX...闪烁不正常吧,要这样怎么卖出去...

出0入0汤圆

 楼主| 发表于 2008-7-24 17:05:45 | 显示全部楼层
我在这个论坛学了很多东西得到了很多帮助,也希望能做点贡献,上传一个很好用的字模软件,使用“逐行+顺向”就可以用我上面写的英文数字显示函数了
点击此处下载 ourdev_357250.zip(文件大小:916K) (原文件名:20059213767.zip)

出0入0汤圆

 楼主| 发表于 2008-7-24 17:08:42 | 显示全部楼层
to【5楼】 zcdyyu
    不好意思我用胶封上了,焊接技术不好的原因:>
好像是新盈科技的,等我知道了告诉你

出0入0汤圆

发表于 2008-7-24 17:47:53 | 显示全部楼层
顶你
我卖的2.4的也是ili9320驱动的
呵呵
广告一下
有人要的话欢迎去看看

出0入0汤圆

发表于 2008-7-24 18:07:20 | 显示全部楼层
http://shop36028206.taobao.com

出0入0汤圆

发表于 2008-7-24 21:06:29 | 显示全部楼层
9320 的IC不会出现闪烁问题. 是你的初始化有问题. 要么就是你的屏坏掉了(IC部分损坏)
重新找供应商要个初始化代码,或者自己调一下.

出0入0汤圆

发表于 2008-7-24 21:18:23 | 显示全部楼层
没见过这个情况啊,就是单独显示颜色的时候,屏闪烁么?你是一直在刷屏么?

出0入0汤圆

发表于 2012-10-27 13:52:58 | 显示全部楼层
闪烁有很多种可能,如果TFT屏没有坏的话就是VCOM值初始化有问题。

出0入0汤圆

发表于 2012-10-27 17:25:39 | 显示全部楼层
按你的描述应该是VCOM的问题,调下VCOM应该能解决
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表