|
开源精神,饮水思源。在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中运行,你可以试着调用,但是需要加位图数据。
//******************************************************************************
奥运小图标 (原文件名:1.JPG)
xx (原文件名:2.JPG)
简单的窗口 (原文件名:3.JPG)
源文件ourdev_376896.rar(文件大小:156K) (原文件名:yanggang's lcd.rar)
仿真文件ourdev_376897.rar(文件大小:22K) (原文件名:yanggang's lcd proteus.rar) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|