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

📄 12864_example.c

📁 我们编写了一个支持位操作、普通端口操作、并行操作、串行操作等多种模式的12864驱动
💻 C
字号:
/********************************************************
*  函数库说明:12864LCD显示示例程序                     *
*  版本:      v1.0                                     *
*  作者:      傻孩子                                   *
*  日期:      2006年2月15日                            *
*  修改:      傻孩子                                   *
*  修改日期:  2006年2月15日                            *
*                                                       *
*  说明:                                               *
*          1、提供基本的现实函数。                      *
*          2、支持小组编程规范0.9版的要求。             *
*          3、对外提供接口,支持位操作。                *
*          4、注意,这里的X/Y是屏幕竖方时候的坐标轴,   *
*             如果使用字库,要使用转制过后竖向扫描的    *
*             字库。                                    *
*          5、为了兼容串行扫描方式,所以使用宏定义接口  *
*             的方法。同时也支持非位操作的方式。        *
********************************************************/
# include "RD_ATMega16L.h"

/***********************
*    系 统 宏 定 义    *
***********************/
# pragma interrupt_handler Timer0OvfIsr:10
/*---------------------*
*    常 量 宏 定 义    *
*---------------------*/
#ifndef True
    # define True       0x01
#endif
#ifndef False
    # define False      0x00
#endif
#ifndef High
    # define High       0x01
#endif
#ifndef Low
    # define Low        0x00
#endif
#ifndef NULL
    # define NULL       0x00
#endif
/*---------------------*
*    动 作 宏 定 义    *
*---------------------*/

/*---------------------*
* SerialToCollateral.h *
* 配置宏定义           *
*---------------------*/
# define VSCK           _PD4
# define VRCK           _PD3
# define VSI            _PD5
/*--- 定义_Use_16Bit_VitualPORT 选择两个595模式 ---*/
# define _Use_16Bit_VitualPORT

# include "SerialToCollateral.h"


# define LCD12864_RS            PV0
# define LCD12864_RW            PV1
# define LCD12864_E             PV2
# define LCD12864_CSA           PV3
# define LCD12864_CSB           PV4
# define LCD12864_RST           PV5

# define SETBIT_RS         LCD12864_RS = High;
# define CLRBIT_RS         LCD12864_RS = Low;
# define SETBIT_RW         LCD12864_RW = High;
# define CLRBIT_RW         LCD12864_RW = Low;
# define SETBIT_E          LCD12864_E  = High;refreshVirtualPORT();
# define CLRBIT_E          LCD12864_E  = Low;refreshVirtualPORT();
# define SETBIT_CS1        LCD12864_CSA = High;
# define CLRBIT_CS1        LCD12864_CSA = Low;
# define SETBIT_CS2        LCD12864_CSB = High;
# define CLRBIT_CS2        LCD12864_CSB = Low;
# define SETBIT_RST        LCD12864_RST = High;refreshVirtualPORT();
# define CLRBIT_RST        LCD12864_RST = Low;refreshVirtualPORT();

# define LCD12864_DataTransfer(a)  VPORT &= 0x00ff;VPORT |= (a<<8); refreshVirtualPORT();         

# define ReadDataPORT
# define SetDataPORTDirection_READ
# define SetDataPORTDirection_WRITE


# define _LCD12864_WriteOnly
# define LCD12864_WaitTime 1
# include "RD_LCD12864.h"


/***********************
*    全局变量声明区    *
***********************/
unsigned int FlashGIFStringCounter = 0;
unsigned int FlashTimeCounter = 0;

flash char LOGO[1024] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xC0,0xC0,0xE0,0xE0,0x60,
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
0xF8,0xF8,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
0x40,0xE0,0xF0,0xB0,0xA0,0xA0,0xE0,0x40,0x00,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xC0,0x00,0x00,0x00,0xF0,0xF0,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0xE0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x90,
0xB8,0xF0,0xE0,0xB8,0x98,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0xF0,0x10,0xF8,0xFC,0x8C,0xC8,0xFF,0x8F,
0x86,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x11,0x5B,0xFF,
0xFF,0xFF,0xFE,0xA6,0x04,0x04,0xFC,0xF8,0x08,0x00,0x00,0x00,0x00,0x04,0x0E,0x6E,
0x7E,0xFF,0xFF,0x1D,0x2F,0x27,0x37,0x1A,0x0C,0xFF,0xFF,0x02,0x02,0x00,0x00,0x00,
0x00,0x00,0x08,0x9C,0xDC,0xFE,0x7F,0x3B,0x2C,0x66,0xEE,0xDF,0xFB,0xB1,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0xF8,0xFC,0x7F,0x1F,0x4F,0xC7,
0x83,0x83,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x1E,0x07,0x81,0x81,0xD9,
0xFD,0xFC,0xFC,0xEE,0x43,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,
0x07,0x07,0x02,0x02,0x06,0x06,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0F,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x01,0x03,0x07,0x01,0x01,0x03,0x01,0x01,0x01,0x03,0x03,0x07,
0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0x03,0x01,0x00,0x00,0x00,0x00,
0x01,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,
0x08,0x0C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x78,0x88,
0x8E,0x0F,0x01,0x81,0x8E,0x8E,0xFA,0x72,0x02,0xE2,0xE2,0x02,0x02,0xFE,0xFC,0x00,
0x00,0x00,0x00,0xFE,0xFF,0x81,0x81,0x91,0x81,0xC1,0x7F,0x7F,0x41,0x41,0x41,0x91,
0x81,0x81,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFE,0x03,0x01,
0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x70,0x10,0x10,
0x10,0xFE,0xFF,0x01,0x01,0x3F,0x3E,0x10,0x10,0x70,0xE0,0x00,0x00,0xC0,0xF0,0x3C,
0x0E,0x03,0x01,0x11,0x1C,0x1E,0xE2,0x02,0x02,0x22,0x22,0x02,0x02,0x02,0xFE,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,0x1C,0x3E,0x23,
0xE1,0xE0,0x00,0x00,0xF8,0xF9,0x0F,0x06,0x00,0xFF,0xFF,0x00,0x08,0x0F,0x0F,0xF8,
0x00,0x00,0x00,0xCC,0xC4,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x0D,0x01,0x02,0x03,
0x00,0x00,0xC4,0xC8,0x00,0x00,0xC0,0xE0,0x30,0x18,0x0C,0x06,0x03,0x00,0x00,0x30,
0x78,0xC0,0x80,0x00,0x00,0x00,0x10,0x20,0x00,0x00,0x18,0x3E,0x63,0x40,0xC0,0xE0,
0x38,0x3F,0x3F,0x00,0x00,0xFC,0xFC,0x40,0x80,0x80,0xC3,0x7E,0x30,0xD8,0xFD,0x27,
0x20,0x20,0x20,0xE0,0x72,0x3F,0x0C,0x00,0x00,0x22,0x22,0x00,0x00,0x00,0x3F,0xFF,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,
0x05,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x04,0x05,0x07,0x06,0x06,0x06,0x07,0x05,
0x04,0x04,0x04,0x05,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,
0x06,0x06,0x07,0x05,0x04,0x04,0x04,0x07,0x06,0x06,0x06,0x06,0x05,0x04,0x04,0x04,
0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x07,
0x06,0x06,0x06,0x06,0x06,0x07,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x07,0x06,
0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,
0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x78,0x48,0xC8,0x98,0xB8,0x38,0x00,0x08,
0xF8,0xF8,0xC8,0xC8,0xF8,0xF8,0x08,0x08,0xF8,0xF8,0x08,0x08,0xF8,0xF8,0x08,0x00,
0x30,0x78,0x48,0xC8,0x98,0xB8,0x38,0x00,0x18,0x18,0x08,0xF8,0xF8,0x08,0x18,0x18,
0x00,0x00,0x00,0x00,0x00,0x08,0xF8,0xF8,0x88,0x88,0xF8,0x70,0x00,0x00,0xF0,0xF8,
0x08,0x08,0x08,0xF8,0xF0,0x00,0x08,0xF8,0xF8,0x48,0x48,0xF8,0xB0,0x00,0x00,0xF0,
0xF8,0x08,0x08,0x08,0xF8,0xF0,0x00,0x18,0x18,0x08,0xF8,0xF8,0x08,0x18,0x18,0x08,
0xF8,0xF8,0x48,0xE8,0xF8,0x18,0x00,0x00,0x00,0xC8,0xF8,0xF8,0xC0,0x00,0x00,0x08,
0xF8,0xF8,0xF0,0xF0,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x04,0x04,0x07,0x03,0x00,0x00,
0x01,0x07,0x07,0x07,0x07,0x01,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,0x00,
0x07,0x07,0x06,0x04,0x04,0x07,0x03,0x00,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x07,0x00,0x04,0x07,0x07,0x04,0x00,0x03,0x07,
0x04,0x04,0x04,0x07,0x03,0x00,0x04,0x07,0x07,0x04,0x04,0x07,0x03,0x00,0x00,0x03,
0x07,0x04,0x04,0x04,0x07,0x03,0x00,0x00,0x00,0x04,0x07,0x07,0x04,0x00,0x00,0x04,
0x07,0x07,0x04,0x04,0x06,0x06,0x00,0x04,0x07,0x07,0x05,0x05,0x07,0x07,0x04,0x04,
0x07,0x07,0x04,0x04,0x07,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
                        };


/***********************
*    系统函数声明区    *
***********************/
void SystemInit(void);
void PortInit(void);
void Timer0Init(void);

/********************************************************
*  函数说明:端口初始化                                 *
********************************************************/
void PortInit(void)
{
    DDRD = 0xff;
	PORTD = 0xff;
	
	DDRA = 0xff;
	PORTA = 0xff;
	
	DDRC = 0xff;
	PORTC = 0xff;
	
	PORTDefine();
}

/********************************************************
*  函数说明:定时器0初始化函数                          *
********************************************************/
void Timer0Init(void)
{
    TCCR0 = 0x00;                                        //stop       
    TCNT0 = 0x83;                                        //set count  
    TCCR0 = 0x03;                                        //start timer
}

/********************************************************
*  函数说明:定时器0中断处理函数                        *
********************************************************/
void Timer0OvfIsr(void)
{
     TCNT0 = 0x83;
	 
     FlashGIFStringCounter ++;
	 FlashTimeCounter ++; 
	 
}

/********************************************************
*  函数说明:系统初始化函数                             *
********************************************************/
void SystemInit(void)
{
    CLI();
	
	PortInit();
	Timer0Init();
	
	LCD12864Init();
	
	TIMSK = 0x01
	
	SEI();
}



void main(void)
{
    char a = 0,b=0,n=0;
    SystemInit();

	LCD12864DispPicture(LOGO,128,64,0,0);
	
                        
	while(1)
	{
	    n++;
		if (n == 64)
		{
		    n = 0;
		}
		LCD12864_ChooseBoth;
		setX(7);
		setY(n);
		sendDataToLCD(0xff);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
		sendDataToLCD(0x00);
       
	}
}

⌨️ 快捷键说明

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