TFTLCD彩屏液晶驱动二画点画线画圆.doc

上传人:美****子 文档编号:58030847 上传时间:2022-11-06 格式:DOC 页数:12 大小:20.50KB
返回 下载 相关 举报
TFTLCD彩屏液晶驱动二画点画线画圆.doc_第1页
第1页 / 共12页
TFTLCD彩屏液晶驱动二画点画线画圆.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《TFTLCD彩屏液晶驱动二画点画线画圆.doc》由会员分享,可在线阅读,更多相关《TFTLCD彩屏液晶驱动二画点画线画圆.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、/ lcd.h 寄存器定义,参照上个程序#include lcd.hvoid (*printf)(char *, .) = 0x33f9291C;static unsigned short *fb = 0x32000000;/-数据手册413页-/5:6:5格式,去除低位可以减少误差#define RGB565(r, g, b) (r 3) 2) 3)void clr_fb(void);void fill_fb(int start_x, int end_x, int start_y, int end_y, unsigned short val);void draw_point(int x, i

2、nt y, int clor);void draw_line(int x1,int y1,int x2,int y2,int color);void draw_circle(int x, int y, int r, int color);void _start(void)/LCD初始化,参照上个程序init_lcd();/start lcd LCDCON1 |= ENVID(1); LCDCON5 |= PWREN(1);/清屏幕clr_fb(); /-画奥运5色环-draw_circle(35, 35, 35, RGB565(0, 0, 255);draw_circle(115, 35, 3

3、5, RGB565(0, 255, 255);draw_circle(195, 35, 35, RGB565(255, 0, 0);draw_circle(70, 70, 35, RGB565(255, 255, 0);draw_circle(150, 70, 35, RGB565(0, 255, 0);/-画奥运下面的正四方形- draw_line(90, 150, 140, 150, RGB565(255, 0, 255);draw_line(90, 150, 90, 200, RGB565(255, 0, 255);draw_line(90, 200, 140, 200, RGB565(

4、255, 0, 255);draw_line(140, 150, 140, 200, RGB565(255, 0, 255);/-画奥运下面的斜45度四方形-draw_line(115, 140, 80, 175, RGB565(255, 0, 255);draw_line(80, 175, 115, 210, RGB565(255, 0, 255);draw_line(115, 210, 150, 175, RGB565(255, 0, 255);draw_line(150, 175, 115, 140, RGB565(255, 0, 255);/-画纵坐标-draw_line(250, 2

5、50, 479, 250, RGB565(255, 255, 0);draw_line(479, 250, 465, 240, RGB565(255, 255, 0);draw_line(479, 250, 465, 260, RGB565(255, 255, 0);/-画横坐标-draw_line(250, 1, 250, 250, RGB565(255, 255, 0);draw_line(250, 1, 240, 15, RGB565(255, 255, 0);draw_line(250, 1, 260, 15, RGB565(255, 255, 0);/-画条形-fill_fb(280

6、, 320, 100, 250, RGB565(255, 0, 0);fill_fb(320, 340, 120, 250, RGB565(0, 200, 0);fill_fb(380, 420, 50, 250, RGB565(255, 0, 255);fill_fb(420, 440, 150, 250, RGB565(0, 255, 255);printf(hello lcdn); /-画点函数。参数:坐标,颜色-void draw_point(int x, int y, int clor)fby*480 + x = clor;/-画圆函数。参数:圆心,半径,颜色-/ 画1/8圆 然后其

7、他7/8对称画/ -X/ |(0,0) 0/ | 7 1/ | 6 2/ | 5 3/ (Y)V 4/ L = x2 + y2 - r2void draw_circle(int x, int y, int r, int color)int a, b, num;a = 0;b = r;while(2 * b * b = r * r) / 1/8圆即可draw_point(x + a, y - b,color); / 01draw_point(x - a, y - b,color); / 07draw_point(x - a, y + b,color); / 45draw_point(x + a,

8、 y + b,color); / 43draw_point(x + b, y + a,color); / 23draw_point(x + b, y - a,color); / 21draw_point(x - b, y - a,color); / 67draw_point(x - b, y + a,color); / 65a+;num = (a * a + b * b) - r*r;if(num 0)b-;a-;/-画线。参数:起始坐标,终点坐标,颜色-void draw_line(int x1,int y1,int x2,int y2,int color)int dx,dy,e;dx=x2

9、-x1; dy=y2-y1;if(dx=0)if(dy = 0) / dy=0if(dx=dy) / 1/8 octante=dy-dx/2;while(x10)y1+=1;e-=dx; x1+=1;e+=dy;else / 2/8 octante=dx-dy/2;while(y10)x1+=1;e-=dy; y1+=1;e+=dx;else / dy=dy) / 8/8 octante=dy-dx/2;while(x10)y1-=1;e-=dx; x1+=1;e+=dy;else / 7/8 octante=dx-dy/2;while(y1=y2)draw_point(x1,y1,color

10、);if(e0)x1+=1;e-=dy; y1-=1;e+=dx; else /dx= 0) / dy=0if(dx=dy) / 4/8 octante=dy-dx/2;while(x1=x2)draw_point(x1,y1,color);if(e0)y1+=1;e-=dx; x1-=1;e+=dy;else / 3/8 octante=dx-dy/2;while(y10)x1-=1;e-=dy; y1+=1;e+=dx;else / dy=dy) / 5/8 octante=dy-dx/2;while(x1=x2)draw_point(x1,y1,color);if(e0)y1-=1;e-

11、=dx; x1-=1;e+=dy;else / 6/8 octante=dx-dy/2;while(y1=y2)draw_point(x1,y1,color);if(e0)x1-=1;e-=dy; y1-=1;e+=dx; / 区域填色函数/ 参数:开始列数,结束列数,开始行数,结束行数,颜色void fill_fb(int start_x, int end_x, int start_y, int end_y, unsigned short val)int i, j;for(i = start_y; i end_y; i+)for(j = start_x; j end_x; j+)fbi*480 + j = val;void clr_fb(void)int i, j;for(i = 0; i 272; i+)for(j = 0; j 480; j+)fbi*480 + j = 0;第 12 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 文案大全

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁