资源简介
对DSP上LCD12864画图程序进行编写
![](http://www.nz998.com/pic/53526.jpg)
代码片段和文件信息
/********************************** LCD12864曲线显示*******************************************/
/*********作者:王胜文。QQ:95201972 email:nunk@163.com 希望与大家交流2007。08。03**********/
#include
#include
#include
//#include
#define Graphic_Clear 0x01 //檫除点
#define Graphic_Not 0x02 //反相点
#define Graphic_Draw 0x03 //画点
uchar j=0i=0;
uchar r=32;
/***********************在LCD上任意坐标画点********************************/
void DrawPoint(uchar Xuchar Yuchar Type)
{ //X,Y化点的坐标Type画点的类型:反相点,檫除点,画点
uchar DX = (Y >> 3); //计算出属于哪个字节
uchar BX = Y - (DX << 3); //计算出属于字节哪一位
uchar TempData = 0;
if (X > 63)
{
chip_select=2;
X -= 64;
}
else
{
chip_select=1;
}
SetPage(DX); //设行地址
SetColumn(X); //设列地址
TempData = ReadData(); //读出所画点所在字节的内容
switch (Type) //对该字节进行相应操作
{
case Graphic_Clear:
TempData &= ~(1< break;
case Graphic_Not:
TempData ^= (1 << BX);
break;
case Graphic_Draw:
TempData |= (1 << BX);
break;
default: break;
}
SetPage(DX); //设置行地址
SetColumn(X); //设置列地址
WriteData(TempData); //把修改后的字节送回LCD,达到画点目的
}
/********插值法画任意两点之间直线的函数,函数中只用加减法,程序运行效率很高**********/
DrawLine(uchar x1uchar y1uchar x2uchar y2)
{ //x1y1起点坐标;x2y2终点坐标;
uchar xy;
uchar d_xd_y;
uchar err=0;
uchar temp=0;
if(y2 d_y=y2-y1;
if (d_y==0)
{
if (x1>x2) {x=x1;x1=x2;x2=x;}
for ( x=x1;x<=x2;x++ ) DrawPoint(xy1Graphic_Draw);
}
else
{
if(x2>=x1){temp=1;d_x=x2-x1;}else d_x=x1-x2;
x=x1;y=y1;DrawPoint(xyGraphic_Draw);
if(temp&&(d_y<=d_x))
while(x!=x2)
{if(err<0){x=x+1;err=err+(y2-y);}
else {x=x+1;y=y+1;err=err+(y2-y)-(x2-x);}
DrawPoint(xyGraphic_Draw);
}
else if(temp&&(d_y>d_x))
while(y!=y2)
{d_x=x2-x;d_y=y2-y;
if(err<0){x=x+1;y=y+1;err=err+d_y-d_x;}
else {y=y+1;err=err-d_x;}
DrawPoint(xyGraphic_Draw);
}
else if(!temp&&(d_y<=d_x))
while(x!=x2)
{d_x=x-x2;d_y=y2-y;
if(err<0){x=x-1;err=err+d_y;}
else {x=x-1;y=y+1;err=err+d_y-d_x;}
DrawPoint(xyGraphic_Draw);
}
else if(!temp &&(d_y>d_x))
while(y!=y2)
{d_x=x-x2;d_y=y2-y;
if(err<0){x=x-1;y=y+1;err=err+d_y-d_x;}
else {y=y+1;err=err-d_x;}
DrawPoint(xyGraphic_Draw);
}
}
}
/******
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2004 2007-08-15 17:27 5-drawing-line\drawing_line.Uv2
文件 5200 2007-08-17 16:59 5-drawing-line\drawing_line.c
文件 1051 2007-08-08 09:47 5-drawing-line\get_keys.h
文件 3728 2007-08-16 14:10 5-drawing-line\drive_functions.h
文件 1189 2007-08-17 17:02 5-drawing-line\drawing_line.Opt
文件 0 2007-08-15 13:47 5-drawing-line\drawing_line_Uv2.Bak
文件 3923 2007-08-17 17:02 5-drawing-line\drawing_line.plg
....... 1362 2007-08-17 01:42 5-drawing-line\drawing_line_Opt.Bak
文件 10379 2007-08-17 17:01 5-drawing-line\drawing_line.LST
文件 19893 2007-08-17 17:01 5-drawing-line\drawing_line
文件 1102 2007-08-17 17:02 5-drawing-line\draw.PWI
文件 102555 2007-08-17 16:48 5-drawing-line\draw.DSN
文件 22294 2007-08-17 17:01 5-drawing-line\drawing_line.M51
文件 8366 2007-08-17 17:01 5-drawing-line\drawing_line.hex
文件 22058 2007-08-17 17:01 5-drawing-line\drawing_line.OBJ
文件 103053 2007-08-15 14:26 5-drawing-line\Last Loaded draw.DBK
目录 0 2007-08-15 19:34 5-drawing-line
....... 2004 2007-08-15 17:27 在LCD12864上显示波形\5-drawing-line\drawing_line_Uv2.Bak
文件 5200 2007-08-17 16:59 在LCD12864上显示波形\5-drawing-line\drawing_line.c
文件 1051 2007-08-08 09:47 在LCD12864上显示波形\5-drawing-line\get_keys.h
文件 3728 2007-08-16 14:10 在LCD12864上显示波形\5-drawing-line\drive_functions.h
....... 1189 2007-08-17 17:02 在LCD12864上显示波形\5-drawing-line\drawing_line_Opt.Bak
文件 1133 2009-08-10 11:27 在LCD12864上显示波形\5-drawing-line\drawing_line.plg
文件 1102 2007-08-17 17:02 在LCD12864上显示波形\5-drawing-line\draw.PWI
文件 102555 2007-08-17 16:48 在LCD12864上显示波形\5-drawing-line\draw.DSN
文件 22168 2009-08-10 11:21 在LCD12864上显示波形\5-drawing-line\drawing_line.M51
文件 8366 2009-08-10 11:21 在LCD12864上显示波形\5-drawing-line\drawing_line.hex
文件 103053 2007-08-15 14:26 在LCD12864上显示波形\5-drawing-line\Last Loaded draw.DBK
文件 10370 2009-08-10 11:21 在LCD12864上显示波形\5-drawing-line\drawing_line.LST
文件 22034 2009-08-10 11:21 在LCD12864上显示波形\5-drawing-line\drawing_line.OBJ
............此处省略9个文件信息
相关资源
- lcd12864的VHDL程序
- LCD12864滚动显示
- STM32 电子密码锁设计,LCD12864显示
- STM32 LCD12864并口驱动实验
- Lcd12864大时钟万年历 农历生肖温度
- LCD12864驱动程序 带字库版本ST7920内含
- LCD12864驱动程序 并口通信,带字库版
- STC89C52+LCD12864+18B20+1302万年历
- 带字库LCD12864ST7920的Proteus仿真
- LCD12864不带字库code
- 通过DS18B20检测环境温度,并在LCD128
- STM32+lcd12864串行方式显示贪吃蛇代码
- STM32 LCD12864 -Z小旋.zip
- LCD12864 在Spartan-3E实现教程和代码
- STM32测试ST7920 LCD12864串并简单程序
- LCD12864工作原理及应用
- LCD12864B使用
- LCD12864打砖块游戏Verilog HDL语言实现,
- STM32 驱动 带字库LCD12864
- LCD12864液晶中文手册
- LCD12864不带字库芯片使用手册
- 2017年电子设计大赛_滚球控制系统源代
- 16管脚LCD12864液晶显示汉字详解
- Arduino的LCD12864例程包含库文件
- lcd12864中文使用手册
- 2017 电赛 滚球控制系统源代码(PIX
- 51单片机音乐播放器的设计,在LCD12
- STM32 LCD12864带日历时钟功能的电子密
- 基于STM32单片机的门禁控制系统-软件
- stm32f103串行驱动LCD12864
评论
共有 条评论