OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 23879|回复: 74

12864液晶驱动源码,独创中英文混合输出

  [复制链接]
头像被屏蔽

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2015-1-11 22:18:02 | 显示全部楼层 |阅读模式
控制器7920
代码没啥好说,我尽量多写了注释,播放动画也很流畅的
亮点就是支持中英文混合输出,其他没啥
最后喊下论坛口号: "支持开源论坛,支持原子哥!"
[mw_shl_code=c,true]#ifndef _LCD12864_H #define _LCD12864_H #include "my51.h" #define LCD_dataBus P0 //总线 sbit LCD_EN = P3^4; //使能控制 sbit LCD_RS = P3^5; //数据_命令选择端 sbit LCD_RW = P3^6; //读写控制 sbit LCD_PSB= P3^7; //串并选择,H并行,L串行 extern bool bShowPicFlag; //绘图时图像显示控制(仅控制GDRAM) /*************************基本功能函数*********************************************/ extern void LCD12864_init(); //初始化,必须置顶调用 extern void LCD12864_setPos(u8 row, u8 cols); //设置光标位置 extern void LCD12864_writeByte(u8 dat); //写一个字节 extern void LCD12864_writeCmd(u8 cmd); //写指令 extern u8 LCD12864_readByte(); //读一个字节ram extern u8 LCD12864_readIR(); //读暂存器 extern bool LCD12864_isBusy(); //判忙 /*************************调用基本字库显示文字**************************************/ //独创支持全角半角字符及中英混合的字符串,或字符串的子串,起始行号row(0-3)和列坐标cols(0-15),写满屏幕为止 //行号4-7行是滚动区 extern void LCD12864_writeData(u8 row, u8 cols,u8* pBuf,u8 dataSize);//写一堆数据 extern void LCD12864_earseSomeDDRam(u8 row,u8 cols,u8 dataSize); //擦除N字节DDRam /*************************用户自定义图标字体****************************************/ extern void LCD12864_writeCGRAM(u8 userRamNum,u8* pCGRAM_userCode); //写自定义图标字体 extern void LCD12864_showCGRAM(u8 row,u8 cols,u8 num) ; //显示自定义图标字体,row(0-3),cols(0-15) extern void LCD12864_clearCGRAM(u8 CGRAM_groupNum) ; //CGRAM清零(初始化也可清0) /*************************图像显示功能函数**********************************************/ extern void LCD12864_showGDRAM(bool bShowImage); //GDRAM绘图显示开关 extern void LCD12864_clearGDRAM(); //液晶整个可视区的GDRAM快速清0 //前4参数:起始点x(0-7)位址,y(0-63)坐标,要显示的宽度(1-128)和高度(1-64)[可显示从图像左上角开始的部分区域] //后4参数:图像代码地址,图像本身的宽度(1-128)和高度(1-64), 反白(true反白,false不反白) //画图填充GDRAM ,注:显示的区域或者图像本身宽度必须是8的倍数 extern u8 LCD12864_drawGDRAM(u8 x,u8 y,u8 width,u8 height,u8 *pImageCode,u8 imageWidth,u8 imageHight,bool bReverse); extern void LCD12864_drawDot(u8 x,u8 y,u8 flag); //打点,x(0-127),y(0-63),flag(0正常,1反白,2清0) extern bool LCD12864_drawXYLine(u8 x1, u8 y1,u8 x2, u8 y2,u8 flag); //画水平或垂直直线 extern void LCD12864_drawAnyLine(u8 x1, u8 y1,u8 x2, u8 y2,u8 flag) ; //画任意直线 extern void LCD12864_drawRectangle(u8 x,u8 y ,u8 width,u8 height,u8 flag);//画矩形 extern void LCD12864_drawFillRect(u8 x,u8 y, u8 width,u8 hight,u8 flag); //填充矩形,可对矩形区反白或清0 extern void LCD12864_drawVerticalSquare(u8 x,u8 y,u8 r,u8 flag) ; //画站立的正方形 extern void LCD12864_drawCircle(u8 x0,u8 y0,u8 r,u8 flag); //画圆 //打点法画图实在太慢了,就不写了,打点法反白矩形区还可以,建议矩形范围小一些,不然比较慢 //打点法效果最好,因为文字的矩形区比较小,速度很快 //不过绘图法反白文字效率高,flash空间充裕的建议用绘图法 /***************************全屏滚动*******************************************/ //需要滚动时,用LCD12864_writeScrollData()函数,参数和LCD12864_writeData()一样 extern void LCD12864_writeScrollData(u8 row,u8 cols,u8* pBuf,u8 dataSize);//写数据 (滚动模式) extern void LCD12864_setScrollPos(u8 row, u8 cols); //设置滚动模式的坐标 extern void LCD12864_showScrollCGRAM(u8 row,u8 cols,u8 CGRAM_groupNum);//用于CGRAM滚动显示前执行 extern void LCD12864_startScroll(u8 scrollNum,u16 delay_ms); //滚动开始 #endif [/mw_shl_code]




(, 下载次数: 5)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

102

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2014-12-21
在线时间
0 小时
发表于 2015-1-11 22:45:16 | 显示全部楼层
学习了,LCD12864_drawDot写得蛮简洁的。

实现混合输出,不好解决的是字符宽度不一致。

看了下您的代码,
为了实现“汉字在液晶上要偶对齐”,您采用的是“位址空移一个字节”。

此方法有一定局限,有的时候就是想在奇数位开始显示汉字,

比如想让“20xx年xx月xx日”中置,不得不用画图的方法写上年月日。

不知楼主可有好的解决办法?
回复 支持 1 反对 0

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2015-1-11 22:54:05 | 显示全部楼层
哇,不错啊,谢谢楼主分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
 楼主| 发表于 2015-1-11 23:49:35 | 显示全部楼层
回复【2楼】exv:
---------------------------------
奇数位显示汉字的话用自定义汉字
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
 楼主| 发表于 2015-1-11 23:51:26 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
竟然酷了, 谢谢原子哥啊
回复 支持 反对

使用道具 举报

170

主题

919

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2015-1-12 08:18:17 | 显示全部楼层
好东西!收藏了!
手艺人要内外兼修。
回复 支持 反对

使用道具 举报

120

主题

7884

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-1-12 08:24:54 | 显示全部楼层
回复【5楼】xouou_53320:
---------------------------------
好东西当然要支持,感谢分享!不知道用我这个直接混合输出怎么样http://www.openedv.com/posts/list/43524.htm
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
 楼主| 发表于 2015-1-12 11:15:18 | 显示全部楼层
回复【7楼】 八度空间 :
---------------------------------
度兄 你这个太专业了啊 哈哈
回复 支持 反对

使用道具 举报

120

主题

7884

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-1-12 12:35:04 | 显示全部楼层
回复【8楼】xouou_53320:
---------------------------------
我目前在TFT、OLED上面已经使用了,方便的很,直接按照格式输出,显示什么不用找相应的函数了,一个函数通杀,哈哈
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

2

主题

102

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2014-12-21
在线时间
0 小时
发表于 2015-1-12 21:07:42 | 显示全部楼层
回复【7楼】八度空间:
---------------------------------
学习了,您这个写得也蛮细致的,不过放在51单片机上估计够呛。
12864液晶大多数时候都是给51这样的单片机使唤。

 回复【5楼】xouou_53320: 
我说的“画图的方法”指的便是“用自定义汉字”
曾考虑过从12864液晶字库读出文字点阵,然后一个个把字用类似于LCD12864_drawDot这样的函数在任意指定位置显示出来。
不过这么做相关开销挺大。
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
 楼主| 发表于 2015-1-12 21:28:52 | 显示全部楼层
小图用drawDot
大图用绘图法

自定义汉字 与 绘图是有区别的
回复 支持 反对

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2015-1-12 23:20:23 | 显示全部楼层
回复【5楼】xouou_53320:
---------------------------------
必须的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

102

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2014-12-21
在线时间
0 小时
发表于 2015-1-13 19:25:32 | 显示全部楼层
回复【11楼】xouou_53320:
---------------------------------
9楼写错了,每个人写的函数名相似,所实现的 不尽相同。

DrawDot函数内容可以是只画一点(小图),也可指把图的内容一点一点描画出来(大图)。
看了您的代码,意为前者。

自定义汉字 与 绘图 确实是有些不同:
但都得取模,每个字无法避免要消耗256bit的单片机空间(压缩算法不计)。
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7041

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
 楼主| 发表于 2015-1-13 23:05:08 | 显示全部楼层
回复【13楼】exv:
---------------------------------
我的DrawDot可以画大图的, 全屏也可以
回复 支持 反对

使用道具 举报

0

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2014-12-23
在线时间
70 小时
发表于 2015-1-15 11:04:20 | 显示全部楼层
这个不错,正好拿来学习
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
391
金钱
391
注册时间
2013-8-20
在线时间
49 小时
发表于 2015-2-2 20:58:55 | 显示全部楼层
哇塞,高手的讨论,自己只是简单的会用12864,没想到,还有这么多的注意事项,这么多的用处呀。厉害,自己要多多的琢磨了
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2012-6-14
在线时间
6 小时
发表于 2015-2-9 22:08:44 | 显示全部楼层
学习学习学习
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-2-10
在线时间
5 小时
发表于 2015-2-11 09:03:24 | 显示全部楼层
写的不错赞一个
回复 支持 反对

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
391
金钱
391
注册时间
2013-8-20
在线时间
49 小时
发表于 2015-3-16 08:00:41 | 显示全部楼层
这个论坛还是比较的好,确实开源。嗨,还是这个论坛的管理正规一些。顶起!!
回复 支持 反对

使用道具 举报

72

主题

2719

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-4-9 17:22:44 | 显示全部楼层
刚写完一个7920程序,回头学习学习,改进一下程序,mark
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2013-6-29
在线时间
27 小时
发表于 2015-4-13 13:05:11 | 显示全部楼层
对初学者来说,很容易看懂
回复 支持 反对

使用道具 举报

0

主题

81

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2014-9-18
在线时间
21 小时
发表于 2020-5-21 19:26:19 | 显示全部楼层
大神级的作品,膜拜!
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2017-8-15
在线时间
9 小时
发表于 2020-5-21 22:20:27 | 显示全部楼层
2222223363
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2019-6-3
在线时间
26 小时
发表于 2020-6-10 09:32:52 | 显示全部楼层
下载呢?看不到
回复 支持 反对

使用道具 举报

0

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2019-5-4
在线时间
42 小时
发表于 2020-6-29 18:32:56 | 显示全部楼层
资料呢
回复 支持 反对

使用道具 举报

0

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2019-5-4
在线时间
42 小时
发表于 2020-7-2 08:45:04 | 显示全部楼层
求资料学习,LCD12864
回复 支持 反对

使用道具 举报

0

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
157
金钱
157
注册时间
2019-5-4
在线时间
42 小时
发表于 2020-7-2 08:45:25 | 显示全部楼层
12864液晶驱动源码,好资料
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2020-6-28
在线时间
6 小时
发表于 2020-7-2 15:50:39 | 显示全部楼层
学到了。。。。
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2019-6-29
在线时间
46 小时
发表于 2020-7-6 20:03:17 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-5-4
在线时间
24 小时
发表于 2020-7-31 09:50:08 | 显示全部楼层
mark....
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-8-6
在线时间
1 小时
发表于 2020-8-6 10:51:31 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-7-20
在线时间
7 小时
发表于 2020-8-12 13:56:29 | 显示全部楼层
来学习一下
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
276
金钱
276
注册时间
2020-6-4
在线时间
30 小时
发表于 2020-8-14 08:08:30 | 显示全部楼层
感谢分享,学习一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-10-7
在线时间
7 小时
发表于 2020-8-17 15:14:13 | 显示全部楼层
学习学习学习学习学习
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-9-1
在线时间
0 小时
发表于 2020-9-1 11:41:32 | 显示全部楼层
顶顶顶顶顶,学习了
回复 支持 反对

使用道具 举报

2

主题

65

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2106
金钱
2106
注册时间
2016-5-21
在线时间
238 小时
发表于 2020-9-8 19:09:36 | 显示全部楼层
看看看看
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2013-1-22
在线时间
3 小时
发表于 2020-9-28 20:03:21 | 显示全部楼层
我也来学习一下
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-9-24
在线时间
9 小时
发表于 2020-9-30 17:41:30 | 显示全部楼层
支持666666
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3909
金钱
3909
注册时间
2020-3-19
在线时间
286 小时
发表于 2020-10-23 21:38:34 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3909
金钱
3909
注册时间
2020-3-19
在线时间
286 小时
发表于 2020-10-23 21:40:08 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

高级会员

Rank: 4

积分
696
金钱
696
注册时间
2019-6-16
在线时间
114 小时
发表于 2020-10-27 09:16:43 | 显示全部楼层
学习一下,多谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-10-29
在线时间
0 小时
发表于 2020-10-29 09:53:14 | 显示全部楼层
顶顶顶顶,学习了
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2018-4-18
在线时间
85 小时
发表于 2020-11-11 15:13:16 | 显示全部楼层
谢谢分享。
回复 支持 反对

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2015-10-8
在线时间
64 小时
发表于 2020-11-11 15:26:33 | 显示全部楼层
哇,不错啊,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-7-18
在线时间
3 小时
发表于 2020-11-21 15:59:12 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-11-22
在线时间
0 小时
发表于 2020-11-22 20:21:02 | 显示全部楼层
学习了,感谢分享!
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-1-1
在线时间
10 小时
发表于 2020-11-24 19:02:45 | 显示全部楼层
哇,不错啊,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2013-1-7
在线时间
60 小时
发表于 2020-12-1 18:41:00 | 显示全部楼层
看看,是个什么东东
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3909
金钱
3909
注册时间
2020-3-19
在线时间
286 小时
发表于 2020-12-2 10:56:43 | 显示全部楼层
学习了....
回复 支持 反对

使用道具 举报

79

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1714
金钱
1714
注册时间
2015-9-21
在线时间
529 小时
发表于 2020-12-13 20:36:12 | 显示全部楼层
这个烂贴,赶紧删掉吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-9 11:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表