请教高手:2.8寸屏,驱动是ili9320,16位接口,显示闪烁难忍(除了RGB)
当显示RGB组合的八种基本色时显示正常,但是当显示其他颜色是就闪烁不止,学习AVR两个星期了,顺便在这里交一下作业,程序(以前没用过C,比较幼稚):
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_357232.jpg
(原文件名:img130.jpg)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_357233.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 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 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;
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();
} 请问LZ的LCM模块型号是?能拍个后面阻容元件的图看看么? 是320*240的驱动芯片是ili9320 自己顶希望高手出现 我现在甚至不知道闪烁是不是正常现象,希望用过的说一下,谢了。 你说的是LCD DRIVER IC的型号,我想知道的是模块是那个厂家生产的,一般后面会带有模块型号,比如说一个IC为ICL9320,模块型号是TFT8KXXXXX...闪烁不正常吧,要这样怎么卖出去... 我在这个论坛学了很多东西得到了很多帮助,也希望能做点贡献,上传一个很好用的字模软件,使用“逐行+顺向”就可以用我上面写的英文数字显示函数了
点击此处下载 ourdev_357250.zip(文件大小:916K) (原文件名:20059213767.zip) to【5楼】 zcdyyu
不好意思我用胶封上了,焊接技术不好的原因:>
好像是新盈科技的,等我知道了告诉你 顶你
我卖的2.4的也是ili9320驱动的
呵呵
广告一下
有人要的话欢迎去看看 http://shop36028206.taobao.com 9320 的IC不会出现闪烁问题. 是你的初始化有问题. 要么就是你的屏坏掉了(IC部分损坏)
重新找供应商要个初始化代码,或者自己调一下. 没见过这个情况啊,就是单独显示颜色的时候,屏闪烁么?你是一直在刷屏么? 闪烁有很多种可能,如果TFT屏没有坏的话就是VCOM值初始化有问题。 按你的描述应该是VCOM的问题,调下VCOM应该能解决
页:
[1]