首页 ATMEGA16 12864LCD驱动程序(KS0108芯片)

ATMEGA16 12864LCD驱动程序(KS0108芯片)

举报
开通vip

ATMEGA16 12864LCD驱动程序(KS0108芯片)ATMEGA16 12864LCD驱动程序(KS0108芯片) #include #include #include //我自己写的库函数 void main(void) { PORTB=0; PORTC=0; DDRB=255; DDRC=255; delay_ms(100); RESET=1; //复位 delay_ms(100); ks0108cls(); //清屏 ks0108putchar(’A’); ks0108gotoxy(70,2); ks0108putchar(...

ATMEGA16 12864LCD驱动程序(KS0108芯片)
ATMEGA16 12864LCD驱动程序(KS0108芯片) #include #include #include //我自己写的库 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 void main(void) { PORTB=0; PORTC=0; DDRB=255; DDRC=255; delay_ms(100); RESET=1; //复位 delay_ms(100); ks0108cls(); //清屏 ks0108putchar(’A’); ks0108gotoxy(70,2); ks0108putchar(’#’); while(1) { } } //文件 的内容如下 //www.avrdiy.com #define RESET PORTB.2 #define RS PORTB.3 #define RW PORTB.4 #define E PORTB.5 #define CS1 PORTB.6 #define CS2 PORTB.7 #define DATA PORTC #include //由于ks0108没有读坐标指令,所以就用2个全局变量来记录坐标 unsigned char ks0108x,ks0108y; flash unsigned char data[]={ 0x00, 0x00, 0x00, 0x00, 0x00, // sp 0x00, 0x00, 0x2f, 0x00, 0x00, // ! 0x00, 0x07, 0x00, 0x07, 0x00, // " 0x14, 0x7f, 0x14, 0x7f, 0x14, // # 0x24, 0x2a, 0x7f, 0x2a, 0x12, // $ 0x62, 0x64, 0x08, 0x13, 0x23, // % 0x36, 0x49, 0x55, 0x22, 0x50, // & 0x00, 0x05, 0x03, 0x00, 0x00, // ’ 0x00, 0x1c, 0x22, 0x41, 0x00, // ( 0x00, 0x41, 0x22, 0x1c, 0x00, // ) 0x14, 0x08, 0x3E, 0x08, 0x14, // * 0x08, 0x08, 0x3E, 0x08, 0x08, // + 0x00, 0x00, 0xA0, 0x60, 0x00, // , 0x08, 0x08, 0x08, 0x08, 0x08, // - 0x00, 0x60, 0x60, 0x00, 0x00, // . 0x20, 0x10, 0x08, 0x04, 0x02, // / 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, 0x36, 0x36, 0x00, 0x00, // : 0x00, 0x56, 0x36, 0x00, 0x00, // ; 0x08, 0x14, 0x22, 0x41, 0x00, // < 0x14, 0x14, 0x14, 0x14, 0x14, // = 0x00, 0x41, 0x22, 0x14, 0x08, // > 0x02, 0x01, 0x51, 0x09, 0x06, // ? 0x32, 0x49, 0x59, 0x51, 0x3E, // @ 0x7C, 0x12, 0x11, 0x12, 0x7C, // A 0x7F, 0x49, 0x49, 0x49, 0x36, // B 0x3E, 0x41, 0x41, 0x41, 0x22, // C 0x7F, 0x41, 0x41, 0x22, 0x1C, // D 0x7F, 0x49, 0x49, 0x49, 0x41, // E 0x7F, 0x09, 0x09, 0x09, 0x01, // F 0x3E, 0x41, 0x49, 0x49, 0x7A, // G 0x7F, 0x08, 0x08, 0x08, 0x7F, // H 0x00, 0x41, 0x7F, 0x41, 0x00, // I 0x20, 0x40, 0x41, 0x3F, 0x01, // J 0x7F, 0x08, 0x14, 0x22, 0x41, // K 0x7F, 0x40, 0x40, 0x40, 0x40, // L 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M 0x7F, 0x04, 0x08, 0x10, 0x7F, // N 0x3E, 0x41, 0x41, 0x41, 0x3E, // O 0x7F, 0x09, 0x09, 0x09, 0x06, // P 0x3E, 0x41, 0x51, 0x21, 0x5E, // Q 0x7F, 0x09, 0x19, 0x29, 0x46, // R 0x46, 0x49, 0x49, 0x49, 0x31, // S 0x01, 0x01, 0x7F, 0x01, 0x01, // T 0x3F, 0x40, 0x40, 0x40, 0x3F, // U 0x1F, 0x20, 0x40, 0x20, 0x1F, // V 0x3F, 0x40, 0x38, 0x40, 0x3F, // W 0x63, 0x14, 0x08, 0x14, 0x63, // X 0x07, 0x08, 0x70, 0x08, 0x07, // Y 0x61, 0x51, 0x49, 0x45, 0x43, // Z 0x00, 0x7F, 0x41, 0x41, 0x00, // [ 0x55, 0x2A, 0x55, 0x2A, 0x55, // 55 0x00, 0x41, 0x41, 0x7F, 0x00, // ] 0x04, 0x02, 0x01, 0x02, 0x04, // ^ 0x40, 0x40, 0x40, 0x40, 0x40, // _ 0x00, 0x01, 0x02, 0x04, 0x00, // ’ 0x20, 0x54, 0x54, 0x54, 0x78, // a 0x7F, 0x48, 0x44, 0x44, 0x38, // b 0x38, 0x44, 0x44, 0x44, 0x20, // c 0x38, 0x44, 0x44, 0x48, 0x7F, // d 0x38, 0x54, 0x54, 0x54, 0x18, // e 0x08, 0x7E, 0x09, 0x01, 0x02, // f 0x18, 0xA4, 0xA4, 0xA4, 0x7C, // g 0x7F, 0x08, 0x04, 0x04, 0x78, // h 0x00, 0x44, 0x7D, 0x40, 0x00, // i 0x40, 0x80, 0x84, 0x7D, 0x00, // j 0x7F, 0x10, 0x28, 0x44, 0x00, // k 0x00, 0x41, 0x7F, 0x40, 0x00, // l 0x7C, 0x04, 0x18, 0x04, 0x78, // m 0x7C, 0x08, 0x04, 0x04, 0x78, // n 0x38, 0x44, 0x44, 0x44, 0x38, // o 0xFC, 0x24, 0x24, 0x24, 0x18, // p 0x18, 0x24, 0x24, 0x18, 0xFC, // q 0x7C, 0x08, 0x04, 0x04, 0x08, // r 0x48, 0x54, 0x54, 0x54, 0x20, // s 0x04, 0x3F, 0x44, 0x40, 0x20, // t 0x3C, 0x40, 0x40, 0x20, 0x7C, // u 0x1C, 0x20, 0x40, 0x20, 0x1C, // v 0x3C, 0x40, 0x30, 0x40, 0x3C, // w 0x44, 0x28, 0x10, 0x28, 0x44, // x 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, // y 0x44, 0x64, 0x54, 0x4C, 0x44, // z 0x00, 0x08, 0x36, 0x41, 0x00, // { 0x00, 0x00, 0x7F, 0x00, 0x00, // | 0x00, 0x41, 0x36, 0x08, 0x00, // } 0x08, 0x10, 0x08, 0x04, 0x08 // ~ }; void ks0108rs0 (unsigned char rs) //写一个指令 { E=1; RS=0; RW=0; DATA=rs; E=0; delay_ms(1); //KS0108真是慢,写指令/数据都要适当延时 } void ks0108putbyte (unsigned char datas) //写一个字节 { if(ks0108x>127) //显示到最后列时就退出本函数,并停止写显示数据 return; if(ks0108x<64) //判断列地址,确定在左屏还是在右屏写数据 { CS1=1; CS2=0; } else { CS1=0; CS2=1; } E=1; RS=1; RW=0; //写一个显示数据 DATA=datas; E=0; ks0108x++; //每写一个数据,列地址就要加1 delay_ms(1); } void ks0108putchar (unsigned char ASCII) //写一个字符(就是写6个数据) { unsigned char i; unsigned int No; No=ASCII-32; //字模数据是由空格’ ’开始,空格的ASCII的值就是32 No=No*5; //每个字符的字模是5个字节 ks0108putbyte(0); //每个字符之间空一列 for(i=0;i<5;i++) //一个字符的字模是5个字节,就是5*8点阵 { ks0108putbyte(data[No]); No++; } } void ks0108gotoxy (unsigned char x,unsigned char y) //写列/行地址 { if(x>127) x=0; //如果列地址超出范围就回到0列 if(y> 7) y=0; //如果行地址超出范围就回到0行 CS1=1; //左右屏都使能,写下相同的行地址 CS2=1; ks0108rs0(y+184); //写页(行)地址,共有8页,第0页地址是184 if(x<64) //写列地址,共有64列,第0列地址是64 { CS1=1; CS2=0; ks0108rs0(x+64); } else { CS1=0; CS2=1; ks0108rs0(x); }; ks0108x=x; //记住列/行地址 ks0108y=y; } void ks0108cls (void) //清屏,光标回到左半屏左上角 { unsigned char i0,i1; CS1=1; //左/右屏都使能 CS2=1; ks0108rs0(63); //打开显示 ks0108rs0(64); //列地址回到0 for(i0=0;i0<8;i0++) //页地址由7变到0 { ks0108rs0(191-i0); for(i1=0;i1<64;i1++)//对某一行全写入0 { E=1; RS=1; RW=0; DATA=0; E=0; delay_ms(1); } } CS2=0; ks0108x=0; ks0108y=0; }
本文档为【ATMEGA16 12864LCD驱动程序(KS0108芯片)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_792768
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-30
浏览量:24