📄 ylf240128a._c
字号:
/*ATMega16 LCD YLF240128A with T6963c controller*/
/*internal 8Mhz osc*/
/*PIN DEFINE
1 -- FG 0v
2 -- VSS/GND 0v
3 -- VDD 5v
4 -- V0 -
5 -- /WR H/L -- PA3
6 -- /RD H/L -- PA2
7 -- CE L -- PA1
8 -- C/D H/L -- PC0
9 -- RESET L -- PD5
10 -- D0 - -- PB0
11 -- D1 -- PB1
12 -- D2 -- PB2
13 -- D3 -- PB3
14 -- D4 -- PB4
15 -- D5 -- PB5
16 -- D6 -- PB6
17 -- D7 -- PB7
18 -- FS H/L(取L)
19 -- NC
20 -- LED+
21 -- LEN-
*/
#include <iom16v.h>
#include <macros.h>
#include <math.h>
#include <string.h>
#include <eeprom.h>
//晶振8MHz
#define xtal 8
#define uchar unsigned char
#define uint unsigned int
//#define ramend 0x45f
//LCD IO Macro Define
#define WR_SET PORTA|=BIT(3)
#define WR_CLR PORTA&=~BIT(3)
#define RD_SET PORTA|=BIT(2)
#define RD_CLR PORTA&=~BIT(2)
#define CE_SET PORTA|=BIT(1)
#define CE_CLR PORTA&=~BIT(1)
#define CD_SET PORTC|=BIT(0)
#define CD_CLR PORTC&=~BIT(0)
#define FS_SET PORTD|=BIT(7)
#define FS_CLR PORTD&=~BIT(7)
#define IN_DIR PORTA|=BIT(0)
#define OUT_DIR PORTA&=~BIT(0)
#define RST_SET PORTD|=BIT(5)
#define RST_CLR PORTD&=~BIT(5)
#define LCDLINE 16
#define LCDCOLUMN 30
#define TXHOME 0x40
#define TXAREA 0x41
#define GRHOME 0x42
#define GRAREA 0x43
#define CUPSET 0x21
#define OFFSET 0x22
#define ADPSET 0x24
#define AWRON 0xB0
#define AREON 0xB1
#define AWROFF 0xB2
//***************************************************************
//LCD 8*8
//***************************************************************
#define BLANK 0
#define BLACK 1
#define ONLINE 2
#define MIDLINE 3
#define UNDERLINE 4
#define LEFTLINE 5
#define RIGHTLINE 6
//***************************************************************
//LCD 16*16
//***************************************************************
#define BLANK 0
#define XIAN 1
#define SHU1 2
#define RU 3
#define ARROW 4
#define HOOK 5
#define FORK 6
#define ONE 7
#define TWO 8
#define THREE 9
#define FOUR 10
#define FIVE 11
#define JIAN 12
#define KONG 13
#define HUA 14
#define MIAN 15
#define CAN 16
#define SHU 17
#define SE1 18
#define ZHI 19
#define XIN1 20
#define HAO 21
#define CE 22
#define SHI 23
#define HUA1 24
#define YANG 25
#define BIAN 26
#define ZHI1 27
#define QUAN 28
//***********************************************************
//Global Variable Define
//***********************************************************
#pragma data: code
const uchar GrCode[8*10]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//blank
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//black
0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//online
0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,//middleline
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,//underline
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//leftline
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01//rightline
};
const uchar ChCode[][32]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK upper left*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK upper right*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK lower left*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*BLANK lower right*/
//;-- 限 -- ** 宋体, 12 **
0x00,0x00,0xFB,0xF8,0x92,0x08,0x93,0xF8,0xA2,0x08,0xA2,0x08,0x93,0xF8,0x8A,0x80,
0x8A,0x48,0xAA,0x50,0x92,0x20,0x82,0x20,0x82,0x10,0x82,0x8E,0x83,0x04,0x82,0x00,
//;-- 输 -- ** 宋体, 12 **
0x20,0x40,0x20,0x40,0xFC,0xA0,0x21,0x18,0x43,0xF6,0x54,0x00,0xFC,0x04,0x53,0xD4,
0x12,0x54,0x1F,0xD4,0xF2,0x54,0x13,0xD4,0x12,0x54,0x12,0x54,0x13,0x44,0x12,0x8C,
//;-- 入 -- ** 宋体, 12 **
0x0C,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x03,0x00,0x02,0x80,0x02,0x80,0x04,0x40,
0x04,0x20,0x08,0x20,0x08,0x10,0x10,0x08,0x20,0x0E,0x40,0x04,0x80,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x06,0x00,0x0A,0x00,/*ARROW upper left*/
0x14,0x00,0x28,0x00,0x5F,0xFE,0x80,0x02,/*ARROW upper right*/
0x5F,0xFE,0x28,0x00,0x14,0x00,0x0A,0x00,/*ARROW lower left*/
0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*ARROW lower right*/
0xFF,0xFF,0x80,0x01,0x80,0x01,0x80,0x03,/*HOOK upper left*/
0x80,0x05,0x80,0x09,0x80,0x11,0xA0,0x21,/*HOOK upper right*/
0x90,0x41,0x88,0x81,0x85,0x01,0x82,0x01,/*HOOK lower left*/
0x80,0x01,0x80,0x01,0x80,0x01,0xFF,0xFF,/*HOOK lower right*/
0xFF,0xFF,0x80,0x01,0x80,0x01,0x90,0x09,/*FORK upper left*/
0x88,0x11,0x84,0x21,0x82,0x41,0x81,0x81,/*FORK upper right*/
0x81,0x81,0x82,0x41,0x84,0x21,0x88,0x11,/*FORK lower left*/
0x90,0x09,0x80,0x01,0x80,0x01,0xFF,0xFF, /*FORK lower right*/
//;-- 一 -- ** 宋体, 12 **
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//;-- 二 -- ** 宋体, 12 **
0x00,0x00,0x00,0x10,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
//;-- 三 -- ** 宋体, 12 **
0x00,0x00,0x00,0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,
//;-- 四 -- ** 宋体, 12 **
0x00,0x00,0x7F,0xFC,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,
0x48,0x84,0x48,0x7C,0x50,0x04,0x60,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,
//;-- 五 -- ** 宋体, 12 **
0x00,0x00,0x7F,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x20,0x3F,0xF0,
0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x24,0xFF,0xFE,0x00,0x00,0x00,0x00,
//;-- 监 -- ** 宋体, 12 **
0x04,0x80,0x24,0xC0,0x24,0x80,0x24,0xFE,0x25,0x40,0x26,0x20,0x24,0x30,0x04,0x10,
0x00,0x00,0x3F,0xF8,0x24,0x88,0x24,0x88,0x24,0x88,0x24,0x88,0xFF,0xFE,0x00,0x00,
//;-- 控 -- ** 宋体, 12 **
0x10,0x00,0x10,0x20,0x10,0x10,0xFD,0xFE,0x11,0x04,0x10,0x50,0x14,0x8C,0x19,0x04,
0x30,0x00,0xD1,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x53,0xFE,0x20,0x00,
//;-- 画 -- ** 宋体, 12 **
0x00,0x00,0xFF,0xFE,0x00,0x00,0x0F,0xE0,0x49,0x24,0x49,0x24,0x4F,0xE4,0x49,0x24,
0x49,0x24,0x49,0x24,0x4F,0xE4,0x48,0x24,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,
//;-- 面 -- ** 宋体, 12 **
0x00,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x3F,0xFC,0x24,0x44,0x24,0x44,0x27,0xC4,
0x24,0x44,0x24,0x44,0x27,0xC4,0x24,0x44,0x24,0x44,0x3F,0xFC,0x20,0x04,0x00,0x00,
//;-- 参 -- ** 宋体, 12 **
0x04,0x00,0x0C,0x20,0x11,0xF0,0x3F,0x10,0x02,0x00,0xFF,0xFC,0x04,0x40,0x09,0x20,
0x32,0x18,0xCC,0x6E,0x31,0x84,0x06,0x18,0x18,0x60,0x03,0x80,0x7C,0x00,0x00,0x00,
//;-- 数 -- ** 宋体, 12 **
0x08,0x20,0x49,0x30,0x2A,0x20,0x1C,0x20,0xFF,0x7E,0x1C,0x44,0x2B,0x44,0x48,0xC4,
0x08,0x28,0xFF,0x28,0x12,0x10,0x34,0x10,0x0C,0x28,0x32,0x4E,0xC0,0x84,0x00,0x00,
//;-- 设 -- ** 宋体, 12 **
0x40,0x00,0x21,0xF0,0x31,0x10,0x21,0x10,0x01,0x10,0x01,0x10,0xE2,0x0E,0x25,0xF8,
0x21,0x08,0x21,0x08,0x20,0x90,0x20,0x90,0x28,0x60,0x30,0x90,0x23,0x0E,0x0C,0x04,
//;-- 置 -- ** 宋体, 12 **
0x3F,0xF8,0x24,0x48,0x24,0x48,0x3F,0xF8,0x01,0x00,0x7F,0xFC,0x02,0x00,0x1F,0xF0,
0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0xFF,0xFE,
//;-- 信 -- ** 宋体, 12 **
0x08,0x80,0x0C,0x60,0x18,0x40,0x17,0xFE,0x30,0x00,0x33,0xF8,0x50,0x00,0x93,0xF8,
0x10,0x00,0x13,0xF8,0x12,0x08,0x12,0x08,0x12,0x08,0x13,0xF8,0x12,0x08,0x00,0x00,
//;-- 号 -- ** 宋体, 12 **
0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x08,0x00,
0x08,0x00,0x1F,0xF0,0x08,0x10,0x00,0x10,0x00,0x10,0x01,0x10,0x00,0xA0,0x00,0x40,
//;-- 测 -- ** 宋体, 12 **
0x40,0x02,0x27,0xC2,0x24,0x42,0x84,0x52,0x45,0x52,0x55,0x52,0x15,0x52,0x25,0x52,
0x25,0x52,0x25,0x52,0xC5,0x52,0x41,0x02,0x42,0x82,0x42,0x42,0x44,0x4A,0x48,0x04,
//;-- 试 -- ** 宋体, 12 **
0x00,0x20,0x40,0x28,0x20,0x24,0x30,0x24,0x27,0xFE,0x00,0x20,0xE0,0x20,0x27,0xE0,
0x21,0x20,0x21,0x10,0x21,0x10,0x21,0x0A,0x29,0xCA,0x36,0x06,0x20,0x02,0x00,0x00,
//;-- 花 -- ** 宋体, 12 **
0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,0x08,0x00,0x0C,0x80,0x08,0x90,0x18,0x98,
0x28,0xA0,0x48,0xC0,0x09,0x80,0x0A,0x84,0x08,0x84,0x08,0x86,0x08,0x7C,0x08,0x00,
//;-- 样 -- ** 宋体, 12 **
0x11,0x08,0x10,0x88,0x10,0x90,0xFD,0xFE,0x10,0x20,0x30,0x20,0x39,0xFC,0x54,0x20,
0x50,0x20,0x90,0x20,0x13,0xFE,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,
//;-- 编 -- ** 宋体, 12 **
0x10,0x80,0x18,0x40,0x23,0xFC,0x22,0x04,0x4A,0x04,0xFB,0xFC,0x12,0x00,0x23,0xFC,
0x7B,0x54,0x03,0x54,0x05,0xFC,0x35,0x54,0xC5,0x54,0x09,0x54,0x11,0x0C,0x00,0x00,
//;-- 制 -- ** 宋体, 12 **
0x24,0x04,0x34,0x04,0x24,0x24,0x3F,0xA4,0x44,0x24,0x04,0x24,0x7F,0xA4,0x04,0x24,
0x3F,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x24,0x84,0x27,0x84,0x05,0x14,0x04,0x08,
//;-- 权 -- ** 宋体, 12 **
0x10,0x00,0x10,0x00,0x11,0xFC,0xFE,0x84,0x10,0x88,0x30,0x88,0x38,0x88,0x34,0x48,
0x54,0x50,0x50,0x50,0x90,0x20,0x10,0x20,0x10,0x50,0x11,0x8E,0x16,0x04,0x10,0x00
};
#pragma data: eeprom
#pragma data: data
/******************************************************************
******************************************************************
Function Area
*******************************************************************
*/
void delay_us(uint n)
{
uint i=0;
for(i=0;i<n;i++)
NOP();
}
void delay_1ms(void)
{
uint i;
for(i=1;i<(uint)(xtal*143-2);i++);
}
void delay(uint n)
{
uint i=0;
for(i=0;i<n;i++)
delay_1ms();
}
void McuInit(void)
{
MCUCR=0x00;
DDRA =0xFF;
PORTA=0xFF;
DDRB =0xFF;
PORTB=0xFF;
DDRC =0xFF;
PORTC=0xFF;
DDRD =0xFF;
PORTD=0xFF;
}
uchar ReadSta(void)
{
uchar data;
// NOP();NOP();NOP();
WR_SET;
CD_SET;
NOP();NOP();NOP();
RD_CLR;
NOP();NOP();NOP();
IN_DIR;
DDRB=0x00;
NOP();NOP();NOP();
data=PINB;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -