KS0108B/HD61202控制器的128*64液晶的图形程序(希望能阿莫能把本人的程序放进应用实
开源精神,饮水思源。在ouravr看了很多液晶的程序,总觉得用起来很麻烦,因为不能提供printf("WWW.ourAVR.com")类似的函数,还有就是没有基本的绘图函数可以用。比如画圆,画线等。所以结合最近的项目,写了在这个KS0108B/HD61202控制器的128*64液晶的图形程序,希望大家喜欢!//******************************************************************************
// 本程序介绍
// ---北京交通大学电气学院 杨罡 2008.8
//
// 编译环境ICC6.31,
// 使用ATMEGA32单片机 & KS0108B/HD61202控制器的128*64液晶
//
// 1、 本程序实现了基本的GUI绘图函数
// void lcd_fill( uint8_t pattern);全屏幕填充函数
// void lcd_erase(void); 擦除全屏幕的函数
// void lcd_update_all(void); 把缓冲区显示到液晶上的刷新函数
// void lcd_dot( uint8_t x,uint8_t y,uint8_t mode); 任意坐标画点的函数
// void lcd_line( uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t mode );
// 任意(x1,y1)(x2,y2)两点之间的画直线函数,这个函数化很短的斜线时会出问题,一般的长斜线无问题
// void lcd_rect(uint8_t x, uint8_t y, uint8_t width, uint8_t height,uint8_t mode);
// 画以(x,y)为左上角,高height,长width 的矩形的函数
// void lcd_box( uint8_t x,uint8_t y, uint8_t width,uint8_t height,uint8_t mode);
// 画以(x,y)为左上角,高height,长width 的矩形并且用mode方式填充的函数
// void lcd_circle( uint8_t xCenter,uint8_t yCenter, uint8_t radius,uint8_t mode);
// 画(xCenter,yCenter)为圆心,半径为radius的函数,圆心可以在屏幕外面,所以可以画弧:)
// 2、本程序实现多种字体
// 可以根据需求去font.h文件选择你需要的字体,提供了5点6点7点9点10点15点18点
// 的英文字体供用户选择,中文字库太大没有实现,不过一般英文就公用了吧
// void lcd_text(uint8_t left, uint8_t top, uint8_t font, char *str);
// 显示在坐标为(left,top)处显示字体为 font 的即时字符串 str
// void lcd_text_p(uint8_t left, uint8_t top, uint8_t font,const char *str);
// 显示在坐标为(left,top)处显示字体为 font 的存放在flash中的字符串 str
// font 参见font.h中的定义,需要先选择后使用
// 3、移植性
// 液晶很多,这个只是其中一种的程序,但是本程序是可以移植的,你只需根据具体
// 的液晶控制器去重写 LCD_DRIVER.H 和LCD_DRIVER.C 就可以了
// 4、使用
// 由于使用显示缓存区的缘故所以RAM容量在1K一下的AVR器件将无法使用本程序
// 建议使用ATMEGA32或者ATMEGA64等大容量的片子,或者你课以将缓存区去掉,直接使用
// 液晶的显示缓存读写,那么就可以用于任何AVR了:)
// !!!!!!!!值得注意的是:当你下载到片子运行时,请把LCD_DRIVER.C文件中的这一行注释掉
// #define debug_protues
// 否则将产生显示混乱。!!!!!!!!!!!!!!!!!!!!!!!
// 5、关于demo
// demo程序放在了main函数中,一共三个画面,可以改动其中的函数来熟悉以上介绍
// 函数。调入位图的函数没有在demo中运行,你可以试着调用,但是需要加位图数据。
//******************************************************************************
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_376893.JPG
奥运小图标 (原文件名:1.JPG)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_376894.JPG
xx (原文件名:2.JPG)
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_376895.JPG
简单的窗口 (原文件名:3.JPG)
源文件ourdev_376896.rar(文件大小:156K) (原文件名:yanggang's lcd.rar)
仿真文件ourdev_376897.rar(文件大小:22K) (原文件名:yanggang's lcd proteus.rar) 留个记号,顺便帮顶 不错,顶一个:-) 非常感谢。COOL !
新版本的网站启动后,我们会收集一些比较有价值的帖子推荐给大家。 好同志啊!有51的没有? up 帮顶,液晶这样用就方便了 mark 很不错 mark MARK 呵呵,其实有些液晶程序也有这些函数的,只不过楼主的程序看上去功能更加完善。还能换字体,不错!!!!!花了不少时间吧! 收下了哈,感激你一下,辛勤的劳动呀! 记号一个!! 标记一下 很好,谢谢楼主分享 研究下谢谢楼主 好东西,谢谢LZ! 学习了 收下了 收下,有时间看看 额(⊙o⊙)…
又是算法。 不错不错 好!收藏了! mark 00 强力顶!!之前找不到这东西,毕业设计准备自己写。看来不用了,可以省点时间写别的了 good 赞一个 好东西顶一下
收藏 谢谢楼主!收录下来,学习学习再学习 谢谢楼主 mark 看起来程序结构是清晰的 mark 非常感谢楼主,我的一直做不出来
也不知道问谁去,看了这个希望能有所帮助 先收下! 这个不错~谢谢 MARK 一定要顶 这个不错~谢谢 裸奔中 刚好手里有个这样的液晶屏 mark mark mark!!!! 无私!!!!!!!!!!!!!!!!!!!!!!!!致敬!! mark! RAM容量在1K一下的AVR器件将无法使用本程序
// 建议使用ATMEGA32或者ATMEGA64等大容量的片子,或者你课以将缓存区去掉,直接使用
// 液晶的显示缓存读写,那么就可以用于任何AVR了:)
我看了。。你的程序以前是想读液晶数据的。结果注解了。。这个里面没有结构体的形式,的GUI.... 收藏了 谢谢楼主了 mark mark , 不错{:tongue:}{:tongue:} 顶楼主,正准备用ks0108的19264做示波器。 学习啦! 进来学习一下,谢谢!
页:
[1]