?? 12864_example._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 + -