安徽财经大学信息工程学院本科课程论文(设计)
0x00,0xf0,0x60,0x60,0x60,0x60,0x62,0x66,0x66,0xfe,0x00,0x00,// 'L' 0x00,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,// 'M' 0x00,0xc6,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0x00,0x00,// 'N' 0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x00,0x00,// 'O' 0x00,0xfc,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0xf0,0x00,0x00,// 'P' 0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xce,0xde,0x7c,0x0c,0x1e,0x00,// 'Q' 0x00,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0xe6,0x00,0x00,// 'R' 0x00,0x78,0xcc,0xcc,0xc0,0x70,0x18,0xcc,0xcc,0x78,0x00,0x00,// 'S' 0x00,0xfc,0xb4,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,// 'T' 0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,// 'U' 0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,// 'V' 0x00,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x6c,0x00,0x00,// 'W' 0x00,0xcc,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0x00,0x00,// 'X' 0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x30,0x30,0x78,0x00,0x00,// 'Y' 0x00,0xfe,0xce,0x98,0x18,0x30,0x60,0x62,0xc6,0xfe,0x00,0x00,// 'Z' 0x00,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3c,0x00,0x00,// '[' 0x00,0x00,0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,0x00,0x00,// '\\' 0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3c,0x00,0x00,// ']' 0x10,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// '^' 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,// '_' 0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// '`' 0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0x76,0x00,0x00,// 'a' 0x00,0xe0,0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0xdc,0x00,0x00,// 'b' 0x00,0x00,0x00,0x00,0x78,0xcc,0xc0,0xc0,0xcc,0x78,0x00,0x00,// 'c' 0x00,0x1c,0x0c,0x0c,0x7c,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,// 'd' 0x00,0x00,0x00,0x00,0x78,0xcc,0xfc,0xc0,0xcc,0x78,0x00,0x00,// 'e' 0x00,0x38,0x6c,0x60,0x60,0xf8,0x60,0x60,0x60,0xf0,0x00,0x00,// 'f' 0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0x7c,0x0c,0xcc,0x78,// 'g' 0x00,0xe0,0x60,0x60,0x6c,0x76,0x66,0x66,0x66,0xe6,0x00,0x00,// 'h' 0x00,0x18,0x18,0x00,0x78,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,// 'i' 0x00,0x0c,0x0c,0x00,0x3c,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0x78,// 'j' 0x00,0xe0,0x60,0x60,0x66,0x6c,0x78,0x6c,0x66,0xe6,0x00,0x00,// 'k' 0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,// 'l' 0x00,0x00,0x00,0x00,0xfc,0xd6,0xd6,0xd6,0xd6,0xc6,0x00,0x00,// 'm' 0x00,0x00,0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,// 'n' 0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,// 'o' 0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x7c,0x60,0xf0,// 'p' 0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x1e,// 'q' 0x00,0x00,0x00,0x00,0xec,0x6e,0x76,0x60,0x60,0xf0,0x00,0x00,// 'r' 0x00,0x00,0x00,0x00,0x78,0xcc,0x60,0x18,0xcc,0x78,0x00,0x00,// 's' 0x00,0x00,0x20,0x60,0xfc,0x60,0x60,0x60,0x6c,0x38,0x00,0x00,// 't' 0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,// 'u' 0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,// 'v' 0x00,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xd6,0x6c,0x6c,0x00,0x00,// 'w'
12
安徽财经大学信息工程学院本科课程论文(设计)
0x00,0x00,0x00,0x00,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0x00,0x00,// 'x' 0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x3c,0x0c,0x18,0xf0,// 'y' 0x00,0x00,0x00,0x00,0xfc,0x8c,0x18,0x60,0xc4,0xfc,0x00,0x00,// 'z' 0x00,0x1c,0x30,0x30,0x60,0xc0,0x60,0x30,0x30,0x1c,0x00,0x00,// '{' 0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x00,0x00,// '|' 0x00,0xe0,0x30,0x30,0x18,0x0c,0x18,0x30,0x30,0xe0,0x00,0x00,// '}' 0x00,0x73,0xda,0xce,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// '~' };
uchar gCurRow, gCurCol; uchar tCurRow, tCurCol; uchar ShowModeSW; uint txthome,grhome; //LCD控制相关函数
uchar Status_BIT_01(); // 状态位STA1,STA0判断(读写指令和读写数据) uchar Status_BIT_3(); // 状态位ST3判断(数据自动写状态) uchar GetRow(); uchar GetCol();
uchar LCD_Write_Command_P2(uchar cmd,uchar para1,uchar para2); // 写双参数的指令
uchar LCD_Write_Command_P1(uchar cmd,uchar Para1); // 写单参数的指令 uchar LCD_Write_Command(uchar cmd); // 写无参数的指令 uchar LCD_Write_Data(uchar dat); // 写数据 uchar LCD_Read_Data(); // 读数据 void cls();
char LCD_Initialise;
void Set_LCD_POS(uchar row, uchar col);// 设置当前地址 void charout(uchar *str); //ASCII(8*8) 显示函数
uchar Display_Str_at_xy(uchar x,uchar y,char *fmt) reentrant;// ASCII(8*16) 及 汉字(16*16) 显示函数
void OutToLCD(uchar Dat,uchar x,uchar y);//显示辅助函数
void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, uchar Mode) reentrant;
void Pixel(unsigned char PointX,unsigned char PointY, uchar Mode);
typedef struct typFNT_GB16 // 汉字字模显示数据结构 {
char Index[2]; char Msk[24]; };
13
安徽财经大学信息工程学院本科课程论文(设计)
//本例汉字点阵库
const struct typFNT_GB16 GB_16[] ={ /*-- 文字: 年 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\年\ 0x22,0x00,0xFF,0xE0,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,
/*-- 文字: 月 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\月\ 0x1F,0x80,0x10,0x80,0x10,0x80,0x20,0x80,0x43,0x80,0x00,0x00,
/*-- 文字: 日 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\日\ 0x20,0x40,0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x00,
/*-- 文字: 时 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\时\ 0x92,0x80,0x90,0x80,0xF0,0x80,0x90,0x80,0x03,0x80,0x00,0x00,
/*-- 文字: 分 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\分\ 0x08,0x80,0x08,0x80,0x10,0x80,0x20,0x80,0xC7,0x00,0x00,0x00,
/*-- 文字: 秒 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\秒\ 0x69,0x40,0xA0,0x40,0xA0,0x80,0x23,0x00,0x3C,0x00,0x00,0x00,
/*-- 文字: 星 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\星\ 0x3F,0xC0,0x44,0x00,0xBF,0xC0,0x04,0x00,0xFF,0xE0,0x00,0x00,
14
安徽财经大学信息工程学院本科课程论文(设计)
/*-- 文字: 期 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\期\ 0x49,0xE0,0xFD,0x20,0x29,0x20,0x45,0x20,0x82,0x60,0x00,0x00,
/*-- 文字: 一 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\一\ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 二 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\二\ 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xE0,0x00,0x00,0x00,0x00,
/*-- 文字: 三 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\三\ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xFF,0xE0,0x00,0x00,
/*-- 文字: 四 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\四\ 0x51,0x20,0x61,0xE0,0x40,0x20,0x7F,0xE0,0x40,0x20,0x00,0x00,
/*-- 文字: 五 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\五\ 0x08,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0xFF,0xE0,0x00,0x00,
/*-- 文字: 六 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\六\ 0x11,0x00,0x20,0x80,0x20,0x80,0x40,0x40,0x80,0x40,0x00,0x00,
/*-- 文字: 日 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/
15
安徽财经大学信息工程学院本科课程论文(设计)
/*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\日\ 0x20,0x40,0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x00,
/*-- 文字: 当 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\当\ 0x00,0x40,0x7F,0xC0,0x00,0x40,0x00,0x40,0xFF,0xC0,0x00,0x00,
/*-- 文字: 前 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\前\ 0x79,0x40,0x49,0x40,0x79,0x40,0x48,0x40,0x59,0xC0,0x00,0x00,
/*-- 文字: 温 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\温\ 0x5F,0xC0,0x95,0x40,0x95,0x40,0x95,0x40,0xBF,0xE0,0x00,0x00,
/*-- 文字: 度 --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\度\ 0x40,0x00,0x5F,0x80,0x45,0x00,0x87,0x00,0xB8,0xE0,0x00,0x00,
/*-- 文字: : --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\:\ 0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: ℃ --*/
/*-- 宋体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 宽度不是8的倍数,现调整为:宽度x高度=16x12 --*/
\℃\ 0x10,0x00,0x10,0x40,0x08,0x40,0x07,0x80,0x00,0x00,0x00,0x00, };
uchar Status_BIT_01(void) // 状态位STA1,STA0判断(读写指令和读写数据) {
uchar i;
16