欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機驅動ILI9320畫線,畫點,畫圓,畫矩形,打印字母,打印漢字,輸出圖像
[打印本頁]
作者:
51黑dd
時間:
2016-4-6 19:52
標題:
單片機驅動ILI9320畫線,畫點,畫圓,畫矩形,打印字母,打印漢字,輸出圖像
2.0寸彩屏驅動240*320分辨率,ILI9320控制器,含有基本驅動函數和基本圖形顯示函數例如:畫線,畫點,畫圓,畫矩形,打印字母,打印漢字,輸出圖像等
完整代碼下載:
52465290V1.0_TFT_ILI9320.rar
(88.1 KB, 下載次數: 60)
2016-4-6 19:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主要代碼預覽:
/**********************************************************
文件名稱:ILI9320_figure.c
功能說明:圖形函數庫,畫點、畫線、畫圓、填充、畫矩形
編寫:阿呆游樂園
ADaiPlay.21ic.org
QQ:1325180192
時間:2011/8/10
其他說明:版權所有,盜版請注明出處
**********************************************************/
#include <reg51.h>
#include "MyType.h"
#include "ILI9320_base.h"
#include "ILI9320_figure.h"
/**********************************************************
函數名稱:LCD_print_full()
入口參數:color為常用的需要顯示的顏色(已經提前定義),color為
NULL時,則可將不常用顏色放入dat中加以顯示
出口參數:無
時間:2011/8/10
功能說明:全屏顯示單色畫面
其他說明:無
**********************************************************/
void LCD_print_full(uint16 color)
{
unsigned int i,j;
ILI9320_SetPos(0,0,SCREEN_X_MAX,SCREEN_Y_MAX);
for(i=0;i<SCREEN_Y_MAX;i++)
{
for(j=0;j<SCREEN_X_MAX;j++)
{
LCD_WRITE_DATA(color);
}
}
}
/**********************************************************
函數名稱:LCD_print_part()
入口參數:起始、終止橫坐標(0-239),縱坐標(0-319),顯示顏色uint16
出口參數:無
時間:2011/8/10
功能說明:填充矩形區域
其他說明:0<=xs<xe<=SCREEN_X_MAX-1
0<=ys<ye<=SCREEN_Y_MAX-1
**********************************************************/
void LCD_print_part(uint16 xs,uint16 ys,uint16 xe,uint16 ye,uint16 color_dat)
{
uint16 i,j;
ILI9320_SetPos(xs,ys,xe,ye);
for(j=0;j<(ye-ys+1);j++)
{
for(i=0;i<(xe-xs+1);i++)
{
LCD_WRITE_DATA(color_dat);
}
}
}
/**********************************************************
函數名稱:LCD_print_rectangle()
入口參數:起始、終止橫坐標(0-239),縱坐標(0-319),顯示顏色uint16
出口參數:無
時間:2011/8/10
功能說明:畫矩形邊框
其他說明:0<=xs<xe<=SCREEN_X_MAX-1
0<=ys<ye<=SCREEN_Y_MAX-1
**********************************************************/
void LCD_print_rectangle(uint16 xs,uint16 ys,uint16 xe,uint16 ye,uint16 color_dat)
{
LCD_print_line(xs,ys,xs,ye,color_dat); //畫矩形左邊
LCD_print_line(xe,ys,xe,ye,color_dat); //畫矩形右邊
LCD_print_line(xs,ys,xe,ys,color_dat); //畫矩形上邊
LCD_print_line(xs,ye,xe,ye,color_dat); //畫矩形下邊
}
/**********************************************************
函數名稱:LCD_print_circle()
入口參數:圓心橫坐標(0-239),縱坐標(0-319),半徑(0-120),顯示顏色uint16
出口參數:無
時間:2011/8/10
功能說明:畫圓形邊框(僅支持屏幕內畫圓)
其他說明:0<=x<=SCREEN_X_MAX-1
0<=y<=SCREEN_Y_MAX-1
**********************************************************/
void LCD_print_circle(uint16 x,uint16 y,uint16 r,uint16 color_dat)
{
uint16 dx, dy = r;
if((x>=r) &&((SCREEN_X_MAX-x)>=r) && (y>=r) && ((SCREEN_Y_MAX-y)>=r)) //確定所畫圓在屏幕范圍內,沒有超出最外邊,(暫不支持與屏幕邊相交)
{
for(dx = 0; dx <= r; dx++)
{
while((r * r + 1 - dx * dx) < (dy * dy)) dy--;
LCD_print_dot(x + dx, y - dy, color_dat);
LCD_print_dot(x - dx, y - dy, color_dat);
LCD_print_dot(x - dx, y + dy, color_dat);
LCD_print_dot(x + dx, y + dy, color_dat);
LCD_print_dot(x + dy, y - dx, color_dat);
LCD_print_dot(x - dy, y - dx, color_dat);
LCD_print_dot(x - dy, y + dx, color_dat);
LCD_print_dot(x + dy, y + dx, color_dat);
}
}
}
/**********************************************************
函數名稱:LCD_print_line()
入口參數:起始、終止橫坐標(0-239),縱坐標(0-319),顯示顏色uint16
出口參數:無
時間:2011/8/10
功能說明:畫直線
其他說明:0<=xs<xe<=SCREEN_X_MAX-1
0<=ys<ye<=SCREEN_Y_MAX-1
**********************************************************/
void LCD_print_line(uint16 xs,uint16 ys,uint16 xe,uint16 ye,uint16 color_dat)
{
uint16 i,ds;
int dx,dy,inc_x, inc_y;
int xerr = 0, yerr = 0; //初始化變量
if(xs==xe) //如果是畫垂直線則只需對豎直坐標計數
{
ILI9320_SetPos(xs,ys,xe,ye);
for(i=0;i<(ye-ys+1);i++)
{
LCD_WRITE_DATA(color_dat);
}
}
else if(ys==ye) //如果是水平線則只需要對水平坐標計數
{
ILI9320_SetPos(xs,ys,xe,ye);
for(i=0;i<(xe-xs+1);i++)
{
LCD_WRITE_DATA(color_dat);
}
}
else //如果是斜線,則重新計算,使用畫點函數畫出直線
{
dx = xe - xs; //計算坐標增量
dy = ye - ys;
if(dx > 0) inc_x = 1; //設置單步方向
else
{
inc_x = -1; dx = -dx;
}
if(dy > 0) inc_y = 1; //設置單步方向
else
{
inc_y = -1; dy = -dy;
}
if(dx > dy) ds = dx; //選取基本增量坐標軸
else ds = dy;
for(i = 0; i <= ds+1; i++) //畫線輸出
{
LCD_print_dot(xs, ys,color_dat); //畫點
xerr += dx;
yerr += dy;
if(xerr > ds)
{
xerr -= ds;
xs += inc_x;
}
if(yerr > ds)
{
yerr -= ds;
ys += inc_y;
}
}
}
}
/**********************************************************
函數名稱:LCD_print_dot()
入口參數:起始橫坐標(0-239),縱坐標(0-319),顯示顏色uint16
出口參數:無
時間:2011/8/8
功能說明:畫點
其他說明:0<=x<=SCREEN_X_MAX-1
0<=y<=SCREEN_Y_MAX-1
**********************************************************/
void LCD_print_dot(uint16 x,uint16 y,uint16 color_dat)
{
ILI9320_SetPos(x,y,x,y);
LCD_WRITE_DATA(color_dat);
}
復制代碼
作者:
b798839407
時間:
2016-4-7 08:54
想下載看看咋樣
作者:
嘿嘿嘿平常心
時間:
2017-3-24 16:18
感謝樓主
作者:
wskjinfen
時間:
2019-1-31 22:02
能用串口輸出動態圖嗎
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1