//lcd.h
#include <reg52.h> #include <INTRINS.H>
sbit SDIN = P3^2; //P3^2 sbit SCLK = P3^4; sbit D_C = P3^5; sbit SCE = P3^7;
code unsigned char Font[70] = { 0x3E, 0x51, 0x49, 0x45, 0x3E , // 0 0x00, 0x42, 0x7F, 0x40, 0x00 , // 1 0x42, 0x61, 0x51, 0x49, 0x46 , // 2 0x21, 0x41, 0x45, 0x4B, 0x31 , // 3 0x18, 0x14, 0x12, 0x7F, 0x10 , // 4 0x27, 0x45, 0x45, 0x45, 0x39 , // 5 0x3C, 0x4A, 0x49, 0x49, 0x30 , // 6 0x01, 0x71, 0x09, 0x05, 0x03 , // 7 0x36, 0x49, 0x49, 0x49, 0x36 , // 8 0x06, 0x49, 0x49, 0x29, 0x1E , // 9 0x00, 0x00, 0x36, 0x36, 0x00 , // : 0x7f, 0x3e, 0x1c, 0x08, 0x00 , // > 0x3e, 0x3e, 0x00, 0x3e, 0x3e , // || 0x00, 0x00, 0x00, 0x00, 0x00 , //" " };
code unsigned char Level[8] = {0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,};
extern void delay(unsigned int i);
void LCD3310_write_cmd(unsigned char cmd) { D_C = 0; SCLK = 0; SCE = 0; delay(3); SDIN = cmd & 0x80; SCLK = 1; SDIN = cmd & 0x40; SCLK = 0; SCLK = 1; SDIN = cmd & 0x20; SCLK = 0; SCLK = 1; SDIN = cmd & 0x10; SCLK = 0; SCLK = 1; SDIN = cmd & 0x08; SCLK = 0; SCLK = 1; SDIN = cmd & 0x04; SCLK = 0; SCLK = 1; SDIN = cmd & 0x02; SCLK = 0; SCLK = 1; SDIN = cmd & 0x01; SCLK = 0; SCLK = 1; D_C = 1; SDIN = 1; SCE = 1; }
void LCD3310_write_dat(unsigned char dat) { // D_C = 1; SCLK = 0; SCE = 0; delay(3); SDIN = dat & 0x80; SCLK = 1; SDIN = dat & 0x40; SCLK = 0; SCLK = 1; SDIN = dat & 0x20; SCLK = 0; SCLK = 1; SDIN = dat & 0x10; SCLK = 0; SCLK = 1; SDIN = dat & 0x08; SCLK = 0; SCLK = 1; SDIN = dat & 0x04; SCLK = 0; SCLK = 1; SDIN = dat & 0x02; SCLK = 0; SCLK = 1; SDIN = dat & 0x01; SCLK = 0; SCLK = 1; D_C = 1; SDIN = 1; SCE = 1; }
void LCD3310_init(void) { LCD3310_write_cmd(0x21); LCD3310_write_cmd(0xd7); LCD3310_write_cmd(0x06); LCD3310_write_cmd(0x20); LCD3310_write_cmd(0x0c); }
void LCD3310_set_XY(unsigned char x,unsigned char y) { if (x >= 84) return; if (y >= 6) return; LCD3310_write_cmd(0x80 | x); LCD3310_write_cmd(0x40 | y); }
void LCD3310_print(unsigned char n) { n = (n << 2) + n; LCD3310_write_dat(Font[n]); LCD3310_write_dat(Font[++n]); LCD3310_write_dat(Font[++n]); LCD3310_write_dat(Font[++n]); LCD3310_write_dat(Font[++n]); }
|