rcu6093dz显示驱动程序
- 格式:docx
- 大小:16.96 KB
- 文档页数:7
//RCU6093WB驱动junsheng427@// 20110913//RST =》PORTB3 复位输入//SCLK=》PORTB4 串行时钟输入//CS =》PORTB5 片选输入/低电平有效//DC =》PORTB6 命令/数据输入(H:数据,L命令)//DIN =》PORTB7 串行数据输入flash char ascii57[][6]={//逐列式,顺向。
const{0x0F,0x01,0x01,0x01,0x00,0x00},/*"角标L",0*/{0x00,0x00,0x70,0x50,0x70,0x00},/*"角标`",1*/{0x1F,0x14,0x14,0x14,0x10,0x00},/*"角标F",2*/{0x10,0x10,0x1F,0x10,0x10,0x00},/*"角标T",3*/{0x08,0x1E,0x09,0x09,0x02,0x00},/*"角标t",4*/{0x00,0x00,0x17,0x00,0x00,0x00},/*"角标i",5*/{0x1E,0x01,0x01,0x01,0x1E,0x00},/*"角标U",6*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",7*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",8*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",9*/{0x0F,0x01,0x01,0x01,0x00,0x00},/*"角标L",10*/{0x00,0x00,0x70,0x50,0x70,0x00},/*"角标`",11*/{0x1F,0x14,0x14,0x14,0x10,0x00},/*"角标F",12*/{0x10,0x10,0x1F,0x10,0x10,0x00},/*"角标T",13*/{0x08,0x1E,0x09,0x09,0x02,0x00},/*"角标t",14*/{0x00,0x00,0x17,0x00,0x00,0x00},/*"角标i",15*/{0x1E,0x01,0x01,0x01,0x1E,0x00},/*"角标U",16*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",17*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",18*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",19*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",20*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",21*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",22*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",23*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",24*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",25*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",26*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",27*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",28*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",29*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",30*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",31*/{0x00,0x00,0x00,0x00,0x00,0x00},/*" ",32*/ {0x00,0x00,0x79,0x00,0x00,0x00},/*"!",33*/ {0x00,0x70,0x00,0x70,0x00,0x00},/*""",34*/ {0x14,0x7F,0x14,0x7F,0x14,0x00},/*"#",35*/ {0x12,0x2A,0x7F,0x2A,0x2C,0x00},/*"$",36*/ {0x62,0x64,0x08,0x13,0x23,0x00},/*"%",37*/ {0x36,0x49,0x55,0x22,0x05,0x00},/*"&",38*/ {0x00,0x50,0x60,0x00,0x00,0x00},/*"'",39*/ {0x00,0x1C,0x22,0x41,0x00,0x00},/*"(",40*/ {0x00,0x41,0x22,0x1C,0x00,0x00},/*")",41*/ {0x14,0x08,0x3E,0x08,0x14,0x00},/*"*",42*/ {0x08,0x08,0x3E,0x08,0x08,0x00},/*"+",43*/ {0x00,0x05,0x06,0x00,0x00,0x00},/*",",44*/ {0x08,0x08,0x08,0x08,0x08,0x00},/*"-",45*/ {0x00,0x06,0x06,0x00,0x00,0x00},/*".",46*/ {0x02,0x04,0x08,0x10,0x20,0x00},/*"/",47*/{0x3E,0x45,0x49,0x51,0x3E,0x00}, // 0 //48 {0x00,0x21,0x7F,0x01,0x00,0x00}, // 1 //49 {0x21,0x43,0x45,0x49,0x31,0x00}, // 2 //50 {0x42,0x41,0x51,0x69,0x46,0x00}, // 3 //51 {0x0C,0x14,0x24,0x7F,0x04,0x00}, // 4 //52 {0x72,0x51,0x51,0x51,0x4E,0x00}, // 5 //53 {0x1E,0x29,0x49,0x49,0x06,0x00}, // 6 //54 {0x40,0x47,0x48,0x50,0x60,0x00}, // 7 //55 {0x36,0x49,0x49,0x49,0x36,0x00}, // 8 //56 {0x30,0x49,0x49,0x4A,0x3C,0x00}, // 9 //57{0x00,0x36,0x36,0x00,0x00,0x00},/*":",58*/ {0x00,0x35,0x36,0x00,0x00,0x00},/*";",59*/ {0x08,0x14,0x22,0x41,0x00,0x00},/*"<",60*/ {0x14,0x14,0x14,0x14,0x14,0x00},/*"=",61*/ {0x00,0x41,0x22,0x14,0x08,0x00},/*">",62*/ {0x20,0x40,0x45,0x48,0x30,0x00},/*"?",63*/ {0x26,0x49,0x4F,0x41,0x3E,0x00},/*"@",64*/{0x3F,0x44,0x44,0x44,0x3F,0x00}, // A //65 {0x7F,0x49,0x49,0x49,0x3E,0x00}, // B //66 {0x3E,0x41,0x41,0x41,0x22,0x00}, // C //67 {0x7F,0x41,0x41,0x41,0x3E,0x00}, // D //68 {0x7F,0x49,0x49,0x49,0x49,0x00}, // E //69 {0x7F,0x48,0x48,0x48,0x48,0x00}, // F //70 {0x3E,0x41,0x49,0x49,0x2F,0x00}, // G //71{0x00,0x41,0x7F,0x41,0x00,0x00}, // I //73 {0x02,0x01,0x41,0x7E,0x40,0x00}, // J //74 {0x7F,0x08,0x14,0x22,0x41,0x00}, // K //75 {0x7F,0x01,0x01,0x01,0x01,0x00}, // L //76 {0x7F,0x20,0x18,0x20,0x7F,0x00}, // M //77 {0x7F,0x10,0x08,0x04,0x7F,0x00}, // N //78 {0x3E,0x41,0x41,0x41,0x3E,0x00}, // O //79 {0x7F,0x48,0x48,0x48,0x30,0x00}, // P //80 {0x3E,0x41,0x45,0x42,0x3D,0x00}, // Q //81 {0x7F,0x48,0x4C,0x4A,0x31,0x00}, // R //82 {0x31,0x49,0x49,0x49,0x46,0x00}, // S //83 {0x40,0x40,0x7F,0x40,0x40,0x00}, // T //84{0x7E,0x01,0x01,0x01,0x7E,0x00},/*"U",85*/ {0x7C,0x02,0x01,0x02,0x7C,0x00}, // V //86 {0x7E,0x01,0x0E,0x01,0x7E,0x00}, // W //87 {0x63,0x14,0x08,0x14,0x63,0x00}, // X //88 {0x70,0x08,0x07,0x08,0x70,0x00}, // Y //89 {0x43,0x45,0x49,0x51,0x61,0x00}, // Z //90{0x00,0x7F,0x41,0x41,0x00,0x00},/*"[",91*/ {0x20,0x10,0x08,0x04,0x02,0x00},/*"\",92*/ {0x00,0x41,0x41,0x7F,0x00,0x00},/*"]",93*/ {0x10,0x20,0x40,0x20,0x10,0x00},/*"^",94*/ {0x01,0x01,0x01,0x01,0x01,0x00},/*"_",95*/ {0x00,0x40,0x20,0x10,0x00,0x00},/*"`",96*/ {0x02,0x15,0x15,0x15,0x0F,0x00},/*"a",97*/ {0x7F,0x09,0x11,0x11,0x0E,0x00},/*"b",98*/ {0x0E,0x11,0x11,0x11,0x02,0x00},/*"c",99*/ {0x0E,0x11,0x11,0x09,0x7F,0x00},/*"d",100*/ {0x0E,0x15,0x15,0x15,0x0C,0x00},/*"e",101*/ {0x08,0x3F,0x48,0x40,0x20,0x00},/*"f",102*/ {0x18,0x25,0x25,0x25,0x3E,0x00},/*"g",103*/ {0x7F,0x08,0x10,0x10,0x0F,0x00},/*"h",104*/ {0x00,0x11,0x5F,0x01,0x00,0x00},/*"i",105*/ {0x02,0x01,0x11,0x5E,0x00,0x00},/*"j",106*/ {0x7F,0x04,0x0A,0x11,0x00,0x00},/*"k",107*/ {0x00,0x41,0x7F,0x01,0x00,0x00},/*"l",108*/ {0x1F,0x10,0x1C,0x10,0x0F,0x00},/*"m",109*/ {0x1F,0x08,0x10,0x10,0x0F,0x00},/*"n",110*/ {0x0E,0x11,0x11,0x11,0x0E,0x00},/*"o",111*/ {0x1F,0x14,0x14,0x14,0x08,0x00},/*"p",112*/{0x1F,0x08,0x10,0x10,0x08,0x00},/*"r",114*/{0x09,0x15,0x15,0x15,0x02,0x00},/*"s",115*/{0x10,0x3E,0x11,0x01,0x02,0x00},/*"t",116*/{0x1E,0x01,0x01,0x02,0x1F,0x00},/*"u",117*/{0x1C,0x02,0x01,0x02,0x1C,0x00},/*"v",118*/{0x1E,0x01,0x06,0x01,0x1E,0x00},/*"w",119*/{0x11,0x0A,0x04,0x0A,0x11,0x00},/*"x",120*/{0x18,0x05,0x05,0x05,0x1E,0x00},/*"y",121*/{0x11,0x13,0x15,0x19,0x11,0x00},/*"z",122*/};flash char ascii7x10[][8]={//8x14{0x1F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x1F},{0xFE,0xFF,0x01,0x01,0x01,0x01,0xFF,0xFE},//0",0 {0x00,0x10,0x10,0x3F,0x3F,0x00,0x00,0x00},{0x00,0x01,0x01,0xFF,0xFF,0x01,0x01,0x00},//1",1 {0x18,0x38,0x20,0x20,0x20,0x21,0x3F,0x1E},{0x0F,0x1F,0x31,0x61,0xC1,0x81,0x01,0x01},//2",2 {0x18,0x38,0x20,0x20,0x20,0x20,0x3F,0x1E},{0x06,0x07,0x81,0x81,0x81,0x81,0x7F,0x3E},//3",3 {0x00,0x01,0x03,0x0E,0x18,0x3F,0x3F,0x00},{0x70,0xF0,0x90,0x10,0x11,0xFF,0xFF,0x11},//4",4 {0x3F,0x3F,0x20,0x20,0x20,0x20,0x20,0x20},{0x86,0x87,0x81,0x81,0x81,0x81,0xFF,0x7E},//5",5 {0x0F,0x1F,0x30,0x20,0x20,0x20,0x20,0x00},{0xFE,0xFF,0x41,0x81,0x81,0x81,0xFF,0x7E},//6",6 {0x30,0x30,0x20,0x20,0x21,0x27,0x3E,0x38},{0x00,0x07,0x1F,0x78,0xE0,0x80,0x00,0x00},//7",7 {0x1E,0x3F,0x20,0x20,0x20,0x20,0x3F,0x1E},{0x3E,0x7F,0x81,0x81,0x81,0x81,0x7F,0x3E},//8",8 {0x1F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x1F},{0x80,0xC1,0x41,0x41,0x41,0x83,0xFE,0xFC},//9",9 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00},//.",10 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},// ",11 };//端口定义#define LCD_RST_H() PORTB |= 1<<3#define LCD_RST_L() PORTB &= ~(1<<3)#define LCD_SCL_H() PORTB |= 1<<4#define LCD_SCL_L() PORTB &= ~(1<<4)#define LCD_CS_H() PORTB |= 1<<5#define LCD_CS_L() PORTB &= ~(1<<5)#define LCD_A0_H() PORTB |= 1<<6#define LCD_A0_L() PORTB &= ~(1<<6)#define LCD_SD_H() PORTB |= 1<<7#define LCD_SD_L() PORTB &= ~(1<<7)void LCD_write_LCD(uchar dat,uchar cmd) //写指令"cmd=0",写数据"cmd=1" {uchar i=0;LCD_CS_L();if(cmd)LCD_A0_H();elseLCD_A0_L();for (i=0;i<8;i++){LCD_SCL_L();if (dat&0X80)LCD_SD_H();elseLCD_SD_L();dat<<=1;//delay_us(200);LCD_SCL_H();}LCD_CS_H();}void LCD_RCU6093_Clear(void) //清屏幕{uint i=0;LCD_write_LCD(0x40,0);LCD_write_LCD(0x80,0);for ( i = 0 ; i < 918 ; i++ ){LCD_write_LCD(0x00,1);}}void LCD_RCU6093_int(void) //初始化液晶{PORTB |=0xff; //端口初始化DDRB |=0xff;LCD_RST_L();LCD_CS_H();LCD_A0_H();LCD_SCL_H();LCD_SD_H();//delay_ms(10);//10LCD_RST_H();LCD_write_LCD(0x21,0); //写Extend 指令(H=1)LCD_write_LCD(0xb0,0); //对比度调节LCD_write_LCD(0xb0,0)LCD_write_LCD(0x14,0); //LCD Duty设置LCD_write_LCD(0x20,0); //写Basic 指令(H=0) LCD_write_LCD(0x22,0) LCD_write_LCD(0x0c,0); //画面显示模式0x08全白0x09全黑0x0c正常模式0x0d反转显示模式LCD_RCU6093_Clear();}void write_char(uchar x,uchar y,uchar zf) //写5x7字符{uchar i;LCD_write_LCD(0x80+(x*6),0); //X轴地址LCD_write_LCD(0x40+y,0); //Y轴地址for(i=0;i<6;i++)LCD_write_LCD(ascii57[zf][i],1); //写入显示字符}void write_str(uchar x,uchar y,uchar *s,uchar mirror) //写5x7字符串{uchar i;LCD_write_LCD(0x80+(x*6),0); //X轴地址LCD_write_LCD(0x40+y,0); //Y轴地址while(*s){for(i=0;i<6;i++)if(mirror==0)LCD_write_LCD(ascii57[*s][i],1); //逐次写入显示字符,直到最后一个字符"/0"elseLCD_write_LCD(~ascii57[*s][i],1); //逐次写入显示字符,直到最后一个字符"/0" s++;}}void write_ascii7x10(uchar x,uchar y,uchar hz) //写大号数字一行11个字符{uchar i;LCD_write_LCD(0x80+x*9,0); //X轴地址LCD_write_LCD(0x40+y,0); //Y轴地址for(i=0;i<8;i++)LCD_write_LCD(ascii7x10[2*hz][i],1);LCD_write_LCD(0x80+x*9,0); //X轴地址LCD_write_LCD(0x40+y+1,0); //Y轴地址for(i=0;i<8;i++)LCD_write_LCD(ascii7x10[2*hz+1][i],1);}void space_write(uchar x,uchar y,uchar a) //写空格{uchar i,j;LCD_write_LCD(0x80+(x*6),0); //X轴地址LCD_write_LCD(0x40+y,0); //Y轴地址for(j=0;j<a;j++)for(i=0;i<6;i++)LCD_write_LCD(ascii57[0x20][i],1); //写入显示字符}。