⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd3310.c

📁 GPS模块的相关资料
💻 C
字号:
#include "lcd3310.h"
#include "delay.h"
#include <avr/pgmspace.h>


const unsigned char font6x8[] PROGMEM=
{
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ,    // sp
      0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 ,    // !
      0x00, 0x00, 0x07, 0x00, 0x07, 0x00 ,    // "
      0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 ,    // #
      0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 ,    // $
      0x00, 0x62, 0x64, 0x08, 0x13, 0x23 ,    // %
      0x00, 0x36, 0x49, 0x55, 0x22, 0x50 ,    // &
      0x00, 0x00, 0x05, 0x03, 0x00, 0x00 ,    // '
      0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 ,    // (
      0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 ,    // )
      0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 ,    // *
      0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 ,    // +
      0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 ,    // ,
      0x00, 0x08, 0x08, 0x08, 0x08, 0x08 ,    // -
      0x00, 0x00, 0x60, 0x60, 0x00, 0x00 ,    // .
      0x00, 0x20, 0x10, 0x08, 0x04, 0x02 ,    // /
      0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E ,    // 0
      0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 ,    // 1
      0x00, 0x42, 0x61, 0x51, 0x49, 0x46 ,    // 2
      0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 ,    // 3
      0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 ,    // 4
      0x00, 0x27, 0x45, 0x45, 0x45, 0x39 ,    // 5
      0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 ,    // 6
      0x00, 0x01, 0x71, 0x09, 0x05, 0x03 ,    // 7
      0x00, 0x36, 0x49, 0x49, 0x49, 0x36 ,    // 8
      0x00, 0x06, 0x49, 0x49, 0x29, 0x1E ,    // 9
      0x00, 0x00, 0x36, 0x36, 0x00, 0x00 ,    // :
      0x00, 0x00, 0x56, 0x36, 0x00, 0x00 ,    // ;
      0x00, 0x08, 0x14, 0x22, 0x41, 0x00 ,    // <
      0x00, 0x14, 0x14, 0x14, 0x14, 0x14 ,    // =
      0x00, 0x00, 0x41, 0x22, 0x14, 0x08 ,    // >
      0x00, 0x02, 0x01, 0x51, 0x09, 0x06 ,    // ?
      0x00, 0x32, 0x49, 0x59, 0x51, 0x3E ,    // @
      0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C ,    // A
      0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 ,    // B
      0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 ,    // C
      0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C ,    // D
      0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 ,    // E
      0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 ,    // F
      0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A ,    // G
      0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F ,    // H
      0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 ,    // I
      0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 ,    // J
      0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 ,    // K
      0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 ,    // L
      0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F ,    // M
      0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F ,    // N
      0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E ,    // O
      0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 ,    // P
      0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E ,    // Q
      0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 ,    // R
      0x00, 0x46, 0x49, 0x49, 0x49, 0x31 ,    // S
      0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 ,    // T
      0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F ,    // U
      0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F ,    // V
      0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F ,    // W
      0x00, 0x63, 0x14, 0x08, 0x14, 0x63 ,    // X
      0x00, 0x07, 0x08, 0x70, 0x08, 0x07 ,    // Y
      0x00, 0x61, 0x51, 0x49, 0x45, 0x43 ,    // Z
      0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 ,    // [
      0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 ,    // 55
      0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 ,    // ]
      0x00, 0x04, 0x02, 0x01, 0x02, 0x04 ,    // ^
      0x00, 0x40, 0x40, 0x40, 0x40, 0x40 ,    // _
      0x00, 0x00, 0x01, 0x02, 0x04, 0x00 ,    // '
      0x00, 0x20, 0x54, 0x54, 0x54, 0x78 ,    // a
      0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 ,    // b
      0x00, 0x38, 0x44, 0x44, 0x44, 0x20 ,    // c
      0x00, 0x38, 0x44, 0x44, 0x48, 0x7F ,    // d
      0x00, 0x38, 0x54, 0x54, 0x54, 0x18 ,    // e
      0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 ,    // f
      0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C ,    // g
      0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 ,    // h
      0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 ,    // i
      0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 ,    // j
      0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 ,    // k
      0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 ,    // l
      0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 ,    // m
      0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 ,    // n
      0x00, 0x38, 0x44, 0x44, 0x44, 0x38 ,    // o
      0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 ,    // p
      0x00, 0x18, 0x24, 0x24, 0x18, 0xFC ,    // q
      0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 ,    // r
      0x00, 0x48, 0x54, 0x54, 0x54, 0x20 ,    // s
      0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 ,    // t
      0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C ,    // u
      0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C ,    // v
      0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C ,    // w
      0x00, 0x44, 0x28, 0x10, 0x28, 0x44 ,    // x
      0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C ,    // y
      0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 ,    // z
      0x14, 0x14, 0x14, 0x14, 0x14, 0x14     // horiz lines
};

const unsigned char font16X10[] PROGMEM=
{
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//sp
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,	//!
	0x00,0x00,0x00,0x00,0x00,0x73,0x73,0x73,
	0x73,0x00,0x00,0x00,
	0x00,0x00,0x3C,0x3C,0x00,0x00,0x3C,0x3C,	//"
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,
	0x00,0x30,0xFC,0xFC,0x30,0x30,0xFC,0xFC,	//#
	0x30,0x00,0x00,0x0C,0x3F,0x3F,0x0C,0x0C,
	0x3F,0x3F,0x0C,0x00,
	0x00,0x00,0x78,0x7C,0xCC,0x8E,0x0E,0x1C,	//$
	0x18,0x00,0x00,0x00,0x18,0x38,0x30,0x71,
	0x73,0x3E,0x1C,0x00,
	0x00,0x0E,0x0A,0x0E,0x80,0xE0,0x78,0x1E,	//%
	0x06,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,
	0x70,0x50,0x70,0x00,
	0x00,0x00,0xF0,0x08,0x08,0x88,0x70,0x00,	//&
	0x00,0x00,0x00,0x3C,0x42,0x43,0x4D,0x50,
	0x24,0x5C,0x04,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3C,	//'
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,
	0x00,0x00,0xC0,0xE0,0x38,0x0C,0x06,0x02,	//(
	0x00,0x00,0x00,0x00,0x03,0x0F,0x1C,0x30,
	0x60,0x40,0x00,0x00,
	0x00,0x00,0x02,0x06,0x0C,0x38,0xE0,0xC0,	//)
	0x00,0x00,0x00,0x00,0x40,0x60,0x30,0x1C,
	0x0F,0x03,0x00,0x00,
	0x00,0x30,0x60,0xC0,0xF0,0xF0,0xC0,0x60,	//*
	0x30,0x00,0x00,0x0C,0x06,0x03,0x0F,0x0F,
	0x03,0x06,0x0C,0x00,
	0x00,0x80,0x80,0x80,0xF0,0xF0,0x80,0x80,	//+
	0x80,0x00,0x00,0x01,0x01,0x01,0x0F,0x0F,
	0x01,0x01,0x01,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//,
	0x00,0x00,0x00,0x00,0x00,0x00,0x4F,0x4F,
	0x7F,0x3F,0x00,0x00,	
	0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,	//-
	0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x01,
	0x01,0x01,0x01,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//.
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,
	0x78,0x78,0x78,0x00,
	0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,	///
	0x06,0x00,0x00,0x60,0x78,0x1E,0x07,0x01,
	0x00,0x00,0x00,0x00,
	0x00,0xF8,0xFC,0x0E,0x06,0x06,0x0E,0xFC,	//0
	0xF8,0x00,0x00,0x1F,0x3F,0x70,0x60,0x60,
	0x70,0x3F,0x1F,0x00,
	0x00,0x00,0x08,0x0C,0xFE,0xFE,0xFE,0x00,	//1
	0x00,0x00,0x00,0x00,0x00,0x60,0x7F,0x7F,
	0x7F,0x60,0x00,0x00,
	0x00,0x18,0x1C,0x0E,0x06,0x06,0x8E,0xFC,	//2
	0xF8,0x00,0x00,0x60,0x78,0x7C,0x6E,0x67,
	0x63,0x61,0x60,0x00,
	0x00,0x18,0x1C,0x0E,0x06,0x86,0x8E,0xFC,	//3
	0x78,0x00,0x00,0x18,0x38,0x70,0x60,0x61,
	0x71,0x3F,0x1E,0x00,
	0x00,0xC0,0xE0,0x70,0x38,0x1C,0xFE,0xFE,	//4
	0x00,0x00,0x00,0x0F,0x0F,0x0C,0x0C,0x0C,
	0x7F,0x7F,0x0C,0x00,
	0x00,0xFE,0xFE,0x86,0x86,0x86,0x86,0x06,	//5
	0x00,0x00,0x00,0x60,0x61,0x61,0x61,0x61,
	0x73,0x3F,0x1E,0x00,
	0x00,0xFC,0xFE,0x06,0x06,0x06,0x06,0x0E,	//6
	0x0C,0x00,0x00,0x3F,0x7F,0x63,0x63,0x63,
	0x63,0x7F,0x3E,0x00,
	0x00,0x0E,0x0E,0x86,0xC6,0xE6,0x76,0x3E,	//7
	0x1E,0x00,0x00,0x00,0x7F,0x7F,0x01,0x00,
	0x00,0x00,0x00,0x00,
	0x00,0x7C,0xFE,0x86,0x86,0x86,0x86,0xFE,	//8
	0x7C,0x00,0x00,0x3E,0x7F,0x61,0x61,0x61,
	0x61,0x7F,0x3E,0x00,
	0x00,0xFC,0xFE,0x86,0x86,0x86,0x86,0xFE,	//9
	0xFC,0x00,0x00,0x30,0x71,0x61,0x61,0x61,
	0x61,0x7F,0x3F,0x00,
	0x00,0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x00,	//:
	0x00,0x00,0x00,0x00,0x00,0x3C,0x3C,0x3C,
	0x3C,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x3C,0x3C,0x3C,	//;
	0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x4F,
	0x5F,0x7F,0x3F,0x00,
	0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0E,	//<
	0x06,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,
	0x1C,0x38,0x30,0x00,
	0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,	//=
	0x60,0x00,0x00,0x06,0x06,0x06,0x06,0x06,
	0x06,0x06,0x06,0x00,	
	0x00,0x06,0x0E,0x1C,0x38,0x70,0xE0,0xC0,	//>
	0x80,0x00,0x00,0x30,0x38,0x1C,0x0E,0x07,
	0x03,0x01,0x00,0x00,
	0x00,0x18,0x1C,0x0E,0x06,0x06,0x8E,0xFC,	//?
	0xF8,0x00,0x00,0x00,0x00,0x00,0x6E,0x6F,
	0x03,0x01,0x00,0x00,
	0x00,0xE0,0x10,0x90,0x90,0x90,0x50,0x10,	//@
	0xE0,0x00,0x00,0x3F,0x40,0x47,0x44,0x47,
	0x44,0x48,0x2F,0x00,
	0x00,0xF0,0xF8,0x1C,0x0E,0x0E,0x1C,0xF8,	//A
	0xF0,0x00,0x00,0x7F,0x7F,0x06,0x06,0x06,
	0x06,0x7F,0x7F,0x00,
	0x00,0xFE,0xFE,0x86,0x86,0x86,0x86,0xFE,	//B
	0x7C,0x00,0x00,0x7F,0x7F,0x61,0x61,0x61,
	0x61,0x7F,0x3E,0x00,
	0x00,0xF8,0xFC,0x0C,0x0C,0x0C,0x0C,0x1C,	//C
	0x18,0x00,0x00,0x3F,0x7F,0x60,0x60,0x60,
	0x60,0x70,0x30,0x00,
	0x00,0xFC,0xFC,0x0C,0x0C,0x0C,0x1C,0xF8,	//D
	0xF0,0x00,0x00,0x7F,0x7F,0x60,0x60,0x60,
	0x70,0x3F,0x1F,0x00,
};

void LCD_init(void)
{
	LCD_CON_PORT &= ~LCD_RST;          // 产生一个让LCD复位的低电平脉冲
	delay_1us();
	LCD_CON_PORT |= LCD_RST;

	LCD_CON_PORT &= ~LCD_CE ;
	delay_1us();
	LCD_CON_PORT |= LCD_CE;
	delay_1us();

	LCD_write_byte(0x21, 0);	// 使用扩展命令设置LCD模式
	LCD_write_byte(0xc8, 0);	// 设置偏置电压
	LCD_write_byte(0x06, 0);	// 温度校正
	LCD_write_byte(0x13, 0);	// 1:48
	LCD_write_byte(0x20, 0);	// 使用基本命令
	LCD_clear();	        // 清屏
	LCD_write_byte(0x0c, 0);	// 设定显示模式,正常显示

	LCD_CON_PORT &= ~LCD_CE ;          // 关闭LCD
}

void LCD_clear(void)
{
	unsigned int i;

	LCD_write_byte(0x0c, 0);
	LCD_write_byte(0x80, 0);

	for (i=0; i<504; i++)
	LCD_write_byte(0, 1);
}

void LCD_set_XY(unsigned char X, unsigned char Y)
{
	LCD_write_byte(0x40 | Y, 0);		// column
	LCD_write_byte(0x80 | X, 0);          	// row
}


void LCD_write_char(unsigned char c)
{
	unsigned char line;

	c -= 32;

	for (line=0; line<6; line++)
		LCD_write_byte(pgm_read_byte(font6x8+c*6+line), 1);
}

void LCD_write_my_char(const unsigned char *c)
{
	unsigned char i;
	for(i=0;i<6;i++)
		LCD_write_byte(pgm_read_byte(c+i), 1);
}
  
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
{
	LCD_set_XY(X,Y);
	while (*s)
	{
		LCD_write_char(*s);
		s++;
	}
}
  
void LCD_write_byte(unsigned char data, unsigned char command)
{
	LCD_CON_PORT &= ~LCD_CE ;			// 使能LCD

	if (command == 0)
		LCD_CON_PORT &= ~LCD_DC ;		// 传送命令
	else
		LCD_CON_PORT |= LCD_DC ;		// 传送数据

	SPDR = data;						// 传送数据到SPI寄存器

	while ((SPSR & 0x80) == 0);         // 等待数据传送完毕

	LCD_CON_PORT |= LCD_CE ;			// 关闭LCD
}

void LCD_write_pgm_bmp(unsigned char X,unsigned char Y,unsigned char nx,unsigned char ny,const unsigned char *ch)
{
	unsigned char i,j;

	for(i=0;i<ny;i++)
	{
		LCD_set_XY(X,Y+i);
		for(j=0;j<nx;j++)
		{
			LCD_write_byte(pgm_read_byte(ch+nx*i+j),1);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -