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

📄 ylf240128a.c

📁 自己编制的北京友力发公司的液晶显示模块驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/*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 + -