chinland
发表于 2008-4-9 14:36:29
觉得还是有多点不赞同的意见会好一点吧。
说实在,我是刚刚接触这些的。楼主的文章很大部分很适合初学者,有部分实在不太容易明白。但是如果有更多不同的声音,那样也许会让我们都知道更多的事情,或者是更多的解决方法吧。
Gorgon_Meducer
发表于 2008-4-9 15:00:32
to 【211楼】 chinland
你说的很对哈。这是我早期的作品,很多东西还不成熟,我会重新写一个关于自己DIY GUI的。到时候,很多问题都会得到圆满的解决。
ft2669340
发表于 2008-4-10 16:21:58
顶了 学习
asd_lkj
发表于 2008-4-12 10:06:02
哈哈....看不懂...
liuchang3721
发表于 2008-4-26 11:41:13
哇~我找好久了~~~
太感谢你了~~
mtxmxt
发表于 2008-4-27 11:46:32
多谢Gorgon Meducer 的无私奉献!
好!
amwito007
发表于 2008-6-26 17:01:17
留个记号
yucheng_xiao
发表于 2008-6-27 17:04:33
好东西,记号先!
dogcome
发表于 2008-6-27 18:34:02
mark
bear1394
发表于 2008-6-28 11:52:11
mark
lonely88
发表于 2008-7-11 17:33:15
LCDMark
lonely88
发表于 2008-7-11 17:33:16
LCDMark
yangyongwen
发表于 2008-7-12 10:48:12
【189楼】 tomtom
积分:61
派别:
等级:------
来自:
不知道为什么,对【189楼】这样的人没有好感,虽然我不是什么高手,但我却很不喜欢这样的人。
hhxz
发表于 2008-7-16 12:33:19
好帖
bjj9217
发表于 2008-7-16 14:37:07
好贴!
victo
发表于 2008-7-19 09:06:36
这是好东西啊。
zyjzqxy
发表于 2008-8-3 01:34:45
mark
lybwell
发表于 2008-8-3 08:43:31
学习中
mydows
发表于 2008-8-4 16:02:28
好帖,怎么才看到!
zbhux
发表于 2008-8-8 08:40:44
不错,值的学习
xad74
发表于 2008-8-8 09:07:46
好!看了谢谢分享
jmldl
发表于 2008-8-9 13:23:16
超级感谢!
csw20066
发表于 2008-8-12 10:10:37
好,谢谢,收藏了!
dracula
发表于 2008-8-15 17:05:31
我表示对LZ的支持
做为一个类学习笔记,LZ这种共享的精神非常不易了。对于有些人来说,也许过于肤浅,但是还是有很多人能够从中挖掘到价值的。
jmldl
发表于 2008-8-15 22:05:09
非常感谢!!!
mingyuexin1981
发表于 2008-8-21 10:14:47
mark
ivws
发表于 2008-9-22 12:12:44
一口气看完...要慢慢消化才行.....
ivws
发表于 2008-9-26 12:18:38
请教楼主....最近按你给的伪代码写出了画线程序 .....
画出的效果不是很理想....从左到右画可以显示....从右到左...就不显示.... 比如画一条线..X1 = 1; Y1 = 1; X2 = 2; Y2 = 63;
效果很差....可否看一下你的源程序.
void PlotLine(uchar x1, uchar y1, uchar x2, uchar y2, uchar type)
{
schar dx = x2 - x1; //求距离差
schar dy = y2 - y1;
uchar ix = (dx >= 0)? dx: -dx; //求绝对值
uchar iy = (dy >= 0)? dy: -dy;
uchar x = 0; //数据清零
uchar y = 0;
uchar inc;
uchar count = iy; //取最大值
schar xn = 0; //增长方向
schar yn = 0;
if (dy > 0) yn = 1;
if (dy < 0) yn = -1;
if (dx > 0) xn = 1;
if (dx < 0) xn = -1;
if (ix > iy) count = ix;
inc = count;
do
{
x += ix;
y += iy;
if (x > inc)
{
x -= inc;
x1 += xn;
}
if (y > inc)
{
y -= inc;
y1 += yn;
}
// 画点
}
while (count--);
ivws
发表于 2008-9-27 17:27:09
没法子了....最近在网上查了很多理论....网上都是你转我...我转你.....没有找到有帮忙的.....请大伙帮帮忙...现在工作进展无法进行..
Gorgon
发表于 2008-9-30 00:55:56
# define ABS(__VALUE) ((__VALUE) < 0 ? (-(__VALUE)) : (__VALUE))
void DrawLine(INT16 x0,INT16 y0,INT16 x1,INT16 y1,UINT8 chModel)
{
INT16 dx = x1 - x0;
INT16 dy = y1 - y0;
INT16 ix = ABS(dx);
INT16 iy = ABS(dy);
<font color=red>INT16 inc = ix < iy ? iy : ix;
INT16 plotx = x0;
INT16 ploty = y0;
INT16 x = 0;
INT16 y = 0;
INT16 i = 0;
SetPixel(plotx,ploty,chModel);
for (i = 0; i < inc; i++)
{
BOOL PlotFlag = FALSE;
x += ix;
y += iy;
if (x >= inc)
{
PlotFlag = TRUE;
x -= inc;
if (dx < 0)
{
plotx--;
}
else if (dx > 0)
{
plotx++;
}
}
if (y >= inc)
{
PlotFlag = TRUE;
y -= inc;
if (dy < 0)
{
ploty--;
}
else if (dy > 0)
{
ploty++;
}
}
if (PlotFlag)
{
SetPixel(plotx,ploty,chModel);
}
} }<fontcolor=#699bcd>本贴被 Gorgon
Meducer 编辑过,最后修改时间:2008-09-30,00:56:31.
yangyongwen
发表于 2008-9-30 07:41:14
史上最强的古董贴
gaobao_1
发表于 2008-11-16 12:47:22
看了楼主的文章有收获,对学画图有帮助!
cyr_hongfeng
发表于 2009-1-3 00:22:09
看了你的帖子,我觉得自己连菜鸟都不算。。。。。。。。。都是本科生阿
cyberjok
发表于 2009-1-10 10:51:00
人家研究生好不好!
Gorgon_Meducer
发表于 2009-1-10 15:19:45
俺不是研究生……刚刚本科毕业……
ouyangyong817
发表于 2009-1-11 13:48:45
非常好!
vincent.r
发表于 2009-1-11 17:34:44
mark
lanlinhong
发表于 2009-1-11 17:51:43
m
heizi302
发表于 2009-1-12 16:41:57
期待重》》》》》》》》
bbi3014
发表于 2009-1-28 17:53:46
mark
yubo2007
发表于 2009-1-28 23:31:19
大家都是因为有着共同的爱好走到一块,技术(应该可以这说吧^_^),尤其是技术,如果是一边倒的,那就是比较危险的,有不同的意见或许能让我们今后走得更好!!!!
broadwood
发表于 2009-3-24 00:08:55
mark
linfeng286
发表于 2009-3-24 00:18:29
MARK
dszx
发表于 2009-3-24 08:22:27
太好了,正是需要!
kucooboy
发表于 2009-3-24 14:54:28
哈哈,傻孩子不傻~期待你的《DIY我们自己的跨平台GUI》出炉
Gorgon_Meducer
发表于 2009-3-24 16:40:47
to 【255楼】 kucooboy
源代码请参考Snail GUI……
ouyangyong817
发表于 2009-3-25 21:08:47
绝对牛人!
fy024
发表于 2009-4-7 23:01:45
不顶不行啊!!!!
zzy9903
发表于 2009-4-9 08:28:15
牛!这次是真的牛!!广告之后,马上回来...
ximitiejiang
发表于 2009-4-9 12:58:30
很好的step by step , 学习学习!
dcss
发表于 2009-4-9 14:30:55
不错不错,技术牛的人我见过很多,文章写的好的人也很多,不过,心态如此之好,而且有很谦虚的人,现在真的很难找了
wangff2531
发表于 2009-4-11 16:32:56
跨平台GUI
wajlh
发表于 2009-4-11 20:48:32
记号
sange
发表于 2009-4-14 18:34:21
衷心感谢
shouwangzhe
发表于 2009-4-17 22:29:05
嗯!
写的还是很不错的!
对别人指指点点,自己又没行动的人最好是敬而远之!
feiyang007
发表于 2009-4-18 01:37:32
很感谢,马上回来!!
gerbee
发表于 2009-4-18 02:33:36
-_-傻孩子还是做成pdf文档吧要不然这帖子会不断地被挖出来的
wisebaby
发表于 2009-4-19 22:16:51
哈哈,对.挖..
挖..
womenhome
发表于 2009-4-28 13:39:27
MARK 一下 再看
tanmiao6235974
发表于 2009-4-30 10:14:10
超牛!!!顶几下!!!!!
luyu_plus
发表于 2009-5-3 19:27:55
cool
longjunyi
发表于 2009-5-5 23:41:08
cool!mark
eduhf_123
发表于 2009-5-6 03:56:45
不记得自己是否MARK过了……
longquan
发表于 2009-5-6 08:28:29
先表示一下对Gorgon Meducer 傻孩子大侠的敬仰!!
mcuandme
发表于 2009-5-6 09:00:37
傻孩子 永远支持你
weimenlove
发表于 2009-5-19 16:28:39
Mark
Amaple
发表于 2009-5-28 20:14:55
Mark
刚用12864点亮了下,要学菜单的写法了
0620221
发表于 2009-6-12 10:28:29
狂顶!!!!!!!!!!!!!
c007106333
发表于 2009-6-21 22:10:18
mark
Swallow
发表于 2009-7-3 18:01:35
记号!
oldfang
发表于 2009-7-3 22:17:08
好东西啊
wanghengzhi
发表于 2009-7-4 01:43:05
支持,标记!
youlingfeng11
发表于 2009-7-4 11:59:21
狂顶楼主
如果大家都像楼主一样
够造一个良好的学习氛围
共享资源
分享自己的见解
就能使大家少走很多弯路,
不管自己的见解是对是错
都能给人启发。
对楼主和像楼主一样
具有奉献精神的人致敬。
对像“【189楼】 tomtom”这样的人
......
xaofen
发表于 2009-7-4 12:20:34
过路的
Stitch
发表于 2009-7-4 21:54:15
Mark
哈!最近正好要弄LCD………………
yuex1n
发表于 2009-7-4 23:59:30
Mark
sinbord
发表于 2009-7-8 23:53:26
好东西,谢谢分享
yangxingbo0311
发表于 2009-8-12 03:36:58
呵呵 谢谢~~~
tianyuwei
发表于 2009-8-19 17:20:56
mark
iisi
发表于 2009-8-21 22:18:54
mark
tb8246
发表于 2009-8-21 22:34:32
顶
avrallenhu
发表于 2009-8-27 14:37:37
ding!
zchenj
发表于 2009-8-30 17:27:22
记号下
avride1984
发表于 2009-9-11 23:36:20
不错!学习了!
chengpiaopiao
发表于 2009-9-12 00:22:58
mark!!!!!!!!!!!!!!!!!
xhero
发表于 2009-9-16 13:58:38
顶
382383706
发表于 2009-11-2 13:31:56
mark
huangshujie
发表于 2009-11-5 11:45:24
#include "config.h"
/*------宏定义------*/
#define uchar uint8
#define uint uint32
void delay(uint n)
{
while(n--);
}
void delay_nus(uint n)
{
uchar i=0;
while(n--)
for(i=0;i<8;i++);
}
void delay_nms(uint n)
{
uint16 i;
while(n--)
for(i=0;i<7990;i++);
}
#define CS 0x00000002
#define SID 0x00000008
#define CLK 0x00000020
#define RET 21
#define set_CS() IO0SET=CS
#define clr_CS() IO0CLR=CS //串行的片选端
#define set_SID() IO0SET=SID
#define clr_SID() IO0CLR=SID //串行数据口
#define set_CLK() IO0SET=CLK
#define clr_CLK() IO0CLR=CLK //串行同步时钟
//#define set_RET() IO0SET=1<<RET
//#define clr_RET() IO0CLR=1<<RET //复位引脚,低电平有效P0.0
uint8 const ASCII={
{0x3E,0x41,0x41,0x41,0x3E},//0
{0x00,0x42,0x7F,0x40,0x00},//1
{0x72,0x49,0x49,0x49,0x46},//2
{0x21,0x41,0x49,0x4D,0x32},//3
{0x18,0x14,0x12,0x7F,0x10},//4
{0x27,0x45,0x45,0x45,0x38},//5
{0x3C,0x4A,0x49,0x49,0x30},//6
{0x01,0x01,0x7D,0x03,0x00},//7
{0x36,0x49,0x49,0x49,0x36},//8
{0x06,0x49,0x49,0x29,0x16},//9
{0x7C,0x12,0x11,0x12,0x7C},//A10
{0x00,0x41,0x7F,0x41,0x00},//I11
{0x3F,0x40,0x40,0x40,0x3F},//U 12
{0x1C,0x20,0x40,0x20,0x1C},//v 13
{0x00,0x00,0x60,0x60,0x00},//. 14
{0x38,0x44,0x44,0x44,0x28},//c 15
{0x38,0x54,0x54,0x54,0x18},//e 16
{0x7C,0x04,0x78,0x04,0x78},//m 17
{0x3C,0x40,0x40,0x20,0x7C} //u 18
};
uint8 dis_data={//16*64=1024(128*64=(16*8)*64)
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X01,0XFF,0XC0,0X63,0X80,0X71,0XC0,0X06,0XC0,0X00,0XE0,0X0E,0X38,0X0E,0X0E,0X00,
0X01,0XFF,0XC0,0XE3,0X80,0X7F,0XF8,0X06,0XC0,0X38,0XF8,0X0E,0X38,0X0E,0X6E,0X00,
0X01,0XC1,0XC0,0XC3,0X80,0XF1,0XCC,0X06,0XC0,0X38,0XEC,0X3E,0XFF,0X0E,0X7E,0X00,
0X01,0XFF,0XC1,0XFF,0XF9,0XFB,0XE0,0X7F,0XFC,0X70,0XE6,0X3E,0XFF,0X0E,0X7F,0XC0,
0X01,0XC1,0XC3,0XFF,0XF9,0X86,0X00,0X7F,0XFC,0X6F,0XFE,0X2F,0X38,0X3F,0XFF,0XC0,
0X01,0XFF,0XC3,0XC7,0X83,0XFF,0XFC,0X76,0XDC,0XFF,0XE0,0X7F,0XFF,0XBF,0XEE,0X00,
0X00,0X00,0X07,0XCF,0XC3,0X80,0X1C,0X76,0XDC,0XF8,0XFE,0X7F,0XFF,0XBE,0XCE,0X00,
0X07,0XF7,0XED,0XCF,0XE3,0XFF,0XFC,0X7F,0XFC,0X33,0XFE,0X0E,0X0E,0X3E,0X0E,0X00,
0X07,0XF7,0XE1,0XDF,0XF0,0X70,0XE0,0X7F,0XFC,0X73,0XE0,0X1F,0XFF,0X8E,0X7F,0X80,
0X07,0X76,0XE1,0XDB,0XB8,0X7F,0XE0,0X76,0XDC,0XFC,0XFC,0X7E,0XFF,0X8E,0X7F,0X80,
0X07,0XF7,0XE1,0XFF,0XFC,0X70,0X00,0X76,0XDC,0XFC,0XFC,0X7E,0X0E,0X0E,0X0E,0X00,
0X07,0X76,0XE1,0XFF,0XFC,0X7F,0XF0,0X76,0XDC,0X00,0X70,0X0E,0XEE,0X0E,0X0E,0X00,
0X07,0XF7,0XE1,0XC3,0X80,0X70,0X70,0X7F,0XFC,0XFE,0XF9,0X0E,0X7E,0X0E,0X0E,0X00,
0X07,0XF7,0XE1,0XC3,0X80,0X7F,0XF0,0X7F,0XFC,0XF3,0XDF,0X0E,0X1E,0X0E,0XFF,0XC0,
0X07,0X76,0XE1,0XC3,0X80,0X70,0X70,0X70,0X1C,0X03,0X8E,0X0E,0X1C,0X0E,0XFF,0XC0,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X06,0X00,0X32,0X07,0X30,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X6F,0XC6,0X38,0X33,0X07,0X38,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X7F,0XD6,0X1C,0X3B,0X0E,0X1B,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X3C,0XD6,0X1F,0XFF,0X8F,0XDB,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X0D,0XD6,0X03,0XFF,0X9F,0XC7,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X6D,0XD6,0X78,0X38,0X3E,0XE7,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X7D,0XD6,0X7B,0XF8,0X3E,0XEE,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X3D,0XD6,0X1B,0XF8,0X0E,0X7E,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X0D,0XD6,0X19,0XDC,0X0E,0X7C,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X3D,0XD6,0X19,0XDC,0X0E,0X3C,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X33,0X16,0X19,0XDC,0X0E,0X3C,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X37,0XC6,0X1D,0XFF,0X8E,0X7E,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X76,0XEE,0X1F,0XFF,0X0E,0XE7,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X6E,0X7E,0X1B,0X87,0X0F,0XC3,0X80,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X6C,0X1C,0X00,0X03,0X0F,0X81,0XC0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X01,0X80,0X00,0X00,0X06,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X03,0X00,0X00,0X01,0X0C,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X86,0X00,0X00,0X01,0X18,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X8C,0X00,0X00,0X01,0XB0,0X00,0X00,0X00,0XBF,0X00,0X00,0X02,0XFC,0X00,
0X00,0X00,0X98,0X00,0X00,0X01,0XE0,0X00,0X00,0X00,0XA0,0X00,0X00,0X02,0X80,0X00,
0X00,0X00,0XB0,0X00,0X00,0X01,0XE0,0X00,0X00,0X00,0XA4,0X00,0X00,0X02,0X90,0X00,
0X00,0X00,0XE0,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,0XA6,0X00,0X00,0X02,0XB0,0X00,
0X00,0X00,0XC0,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0XBF,0X00,0X00,0X02,0XFC,0X00,
0X00,0X00,0X80,0X00,0X03,0XFF,0X00,0X00,0X00,0X00,0XA7,0X00,0X00,0X02,0XB4,0X00,
0X01,0XFF,0X80,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0XA5,0X00,0X00,0X02,0X94,0X00,
0X00,0X00,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X00,0XA1,0X00,0X00,0X02,0X84,0X00,
0X00,0X00,0XC0,0X00,0X00,0X01,0XC0,0X00,0X00,0X3F,0XBF,0X00,0X00,0XFE,0XFC,0X00,
0X00,0X00,0XE0,0X00,0X00,0X01,0X60,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0XB0,0X00,0X00,0X01,0X30,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X99,0X00,0X00,0X01,0X18,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X8F,0X00,0X00,0X00,0X0C,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X07,0X00,0X00,0X00,0X06,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X0F,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X04,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};
//写数据到12864
void WriteData(uint8 ch,uint8 d_c)//d_c=1是命令,0为数据
{//RE=0
uint8 i;
int32 dc;
//long dc;
dc=(d_c?0xf80000:0xfa0000);
set_CS();
dc|=(((ch&0xf0)<<8)|((ch&0x0f)<<4));
for(i=0;i<24;i++)
{
clr_CLK();
delay(2); //将PB^5位置1
if((dc<<i)&0x800000)
set_SID();
else
clr_SID();
delay(2);
set_CLK();
delay(2);
}
clr_CS();
}
void LCD_CLEAR(void)//写命令到12864清屏
{
WriteData(0x01,1);// 清屏
delay_nms(15);
}
//全屏显示图片,把一维的数组写进去
//clr为1时,清屏,为0时直接加到原图上
void LCD_Picture_Display(uint8 *tab,uint8 clr)
{
unsignedi, j, k, lcd_x, lcd_y,jj=0;
if(clr) LCD_CLEAR();//清屏
lcd_x = 0x80;//第一页页地址
for(i=0 ; i<2; i++)//分两页来写
{
for(j=0, lcd_y=0x80; j<32; j++, lcd_y++)
{
WriteData(0x36,1);//8位扩充指令集,绘图开
WriteData(lcd_y,1);//地址设置
WriteData(lcd_x,1);
WriteData(0x30,1);
for(k=16; k>0; k--)
{
WriteData(tab,0);
}
}
lcd_x = 0x88;//第二页页地址
}
}
//设置数组中的一个点,f为0则清点,为1则描点,
void set_pic_point(uint8 y,uint8 x,uint8 f)
{
uint16 p;
p=16*y+(x>>3);
x&=0x07;//x%=8;
x=1<<(7-x);
if(f)dis_data|=x;
elsedis_data&=(~x);
}
//画一条水平或垂直直线
void dis_line(uint8 ystar,uint8 yend,uint8 xstar,uint8 xend)
{
uint8 Xle=xend-xstar,Yle=yend-ystar,i;
if(Xle)//画X轴平行直线
{
for(i=0;i<Xle;i++)
set_pic_point(ystar,xstar+i,1);
}
else
{
for(i=0;i<Yle;i++)
set_pic_point(ystar+i,xstar,1);
}
}
//显示一个字符
void dis_char(uint8 y,uint8 x,uint8 ch)
{
uint i,j;
for(i=0;i<5;i++)
for(j=0;j<7;j++)
set_pic_point(y+j,x+i,(ASCII>>j)&1);
}
//显示数字两位
void dis_NUM(uint8 y,uint8 x,uint8 ch)
{uint8 i,j,tm;
if(ch>9)
{
ch%=100;
tm=ch/10;
ch%=10;
x-=5;
for(i=0;i<5;i++)
for(j=0;j<7;j++)
set_pic_point(y+j,x+i,(ASCII>>j)&1);
x+=5;
}
for(i=0;i<5;i++)
for(j=0;j<7;j++)
set_pic_point(y+j,x+i,(ASCII>>j)&1);
}
void set_lxy(uint8 nx,uint8 ny)//画X和Y轴
{
uint8 y=12,x=62;
uint8 i;
// ny/=5;
dis_char(52,123,13);//V
dis_char(0,16,17);//m
dis_char(0,22,10);//A
dis_line(0,62,y,y);
dis_line(x,x,y,128);
dis_NUM(57,4,0);
set_pic_point(1,y-1,1);
set_pic_point(1,y+1,1);
set_pic_point(2,y-2,1);
set_pic_point(2,y+2,1);
set_pic_point(x-2,125,1);
set_pic_point(x-1,126,1);
set_pic_point(x+1,126,1);
set_pic_point(x+2,125,1);
i=1;
while(x>20)
{
x-=10;
set_pic_point(x,y-1,1);
set_pic_point(x,y-2,1);
i++;
}
dis_NUM(x-3,y-7,nx);
i=1;x=61;
while(y<102)
{
y+=20;
set_pic_point(x,y,1);
i++;
set_pic_point(x-1,y,1);
}
i--;
dis_NUM(x-8,y-2,i*ny/5);
}
//写0到图片数组,清屏
void clear_pic(void)
{
uint i=1023;
while(i)dis_data=0;
}
/*****************************************
液晶初始化程序
输入数据:无
*****************************************/
voidlcd12864_init(void)
{
//PINSEL0&=~((0x03<<CS)|(0x03<<SID)|(0x03<<CLK)|(0x03<<RET));
IO0DIR=IO0DIR|(CS)|(SID)|(CLK);
clr_CS() ;
clr_SID();
clr_CLK();
//clr_RET();
delay_nms(10);
//set_RET();
delay_nms(5);
WriteData(0x32,1);
delay_nus(150);
WriteData(0x32,1);
delay_nus(150);
WriteData(0x0c,1);
delay_nus(150);
WriteData(0x60,1);
delay_nus(150);
WriteData(0x04,1);
LCD_CLEAR();//清屏
}
int main (void)
{// add user source code
lcd12864_init();
while(1)
{
set_pic_point(1,2,0);
dis_line(1,1,2,2);
set_pic_point(1,3,1);
dis_NUM(3,1,88);
}
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
huangshujie
发表于 2009-11-5 11:48:59
请教版主一下,这程序里面是什么问题??
Gorgon_Meducer
发表于 2009-11-6 22:40:56
我又不是处理器……我怎么知道有什么问题……
yue565
发表于 2009-11-20 00:41:34
mark谢谢傻孩子
Dream_catcher
发表于 2009-11-30 02:11:45
虽然是古董,但绝对是经典!
对初学者来说是上等的的学习资料!
liujunjie
发表于 2009-11-30 08:42:32
哈哈,经典.............
mawenwei
发表于 2009-11-30 09:32:00
很好的LCD显示解析 马克到此一游
809314596
发表于 2009-12-31 18:27:18
mark!!!!!!!
myworkmail
发表于 2009-12-31 23:35:01
哈哈,对.挖
gxy508
发表于 2010-1-1 12:14:47
mark
huohuansong
发表于 2010-1-1 14:09:10
好东西
hisun
发表于 2010-1-1 16:13:58
咱连初学者都还算不上,也要记号一下。
lizhoubob
发表于 2010-1-1 16:56:25
mark