OpenEdv-开源电子网

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

HT1621控制的段式LCD驱动程序

[复制链接]

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-5-5
在线时间
7 小时
发表于 2013-6-20 15:15:16 | 显示全部楼层 |阅读模式
主控MCU是STM8S207,怎么写HT1621控制的64段 段式LCD程序。有没有类似的调试成功的程序上传一个。谢谢啦
黑白风云谁是主,旁人笑看输赢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-5-5
在线时间
7 小时
 楼主| 发表于 2015-1-22 21:33:19 | 显示全部楼层
好久没上了,上传HT1621控制的段式液晶驱动程序,MCU是STM8S207
[mw_shl_code=c,true]/*LED 字模结构*/ typedef struct { char mChar; u8 mModal; }LED_MODAL_DEFINE; typedef struct { u8 Addr; u8 Ddat; } LED_ICON_DEFINE; #define ht1621_BIAS 0x52 #define ht1621_SYSEN 0x02 #define ht1621_LCDOFF 0x04 #define ht1621_LCDON 0x06 #define ht1621_RC256 0X30 #define ht1621_SYSDIS 0X00 #define ht1621_WDTDIS 0X0A #define ht1621_BLON 0x12 #define ht1621_BLOFF 0x10 #undef LED_WIDTH #define LED_WIDTH 6 #define PIN_HT1621_CS ht_cs #define PIN_HT1621_WR ht_wr #define PIN_HT1621_DAT ht_data #define HT1621_SET_CS(value) GPIOEX_BitWrite(PIN_HT1621_CS,value) #define HT1621_SET_WR(value) GPIOEX_BitWrite(PIN_HT1621_WR,value) #define HT1621_SET_DAT(value) GPIOEX_BitWrite(PIN_HT1621_DAT,value) /*常用的LED字模定义,需要扩充的自己增加数组*/ const LED_MODAL_DEFINE LED_MODAL[]={ {' ',0x00} , {'0',0xf5} , {'1',0x05} , {'2',0xb6} , {'3',0x97} , {'4',0x47} , {'5',0xd3} , {'6',0xf3} , {'7',0x85} , {'8',0xf7} , {'9',0xd7} , {'A',0xe7} , {'b',0x73} , {'C',0xf0} , {'E',0xf2} , {'F',0xe2} , {'H',0x67} , {'L',0x70} , {'n',0xe5} , {'U',0x75} , {'O',0xf5} , {'-',0x02} , {'I',0x60} , {'q',0xc7} , {'d',0x37} , {'S',0Xd3} , {'y',0x57} , {'t',0x72} , {'r',0x22} , {'j',0x15} , {'P',0xe6} , }; const LED_ICON_DEFINE ICON_DEFINE[] = { {0,0x0}, {0,0x8}, {2,0x8}, {4,0x8}, {6,0x8}, {8,0x8}, {14,0x8}, {10,0x40}, {10,0x20}, {10,0x4}, {10,0x2}, {12,0x40}, {12,0x2}, {12,0x4}, {10,0x80}, {10,0x8}, {12,0x20}, {12,0x80}, {12,0x8}, }; static char led_content[LED_WIDTH*2+1]; //显示内容 考虑小数点的问题,内容长度为LED宽度×2 static u8 led_len; u8 led_disp_mem[16]; u8 led_prev_disp_mem[16]; static _eCM led_prev_icon[2]; static char _l_prev_blink[6]; extern char _l_blink_state[6]; /*取字符对应的字模 参数 :iValue 需要取模的字符 区分大小写 */ static u8 LED_GetModal(char iValue) { u8 i; for (i=0;i<sizeof(LED_MODAL)/sizeof(LED_MODAL[0]);i++) { if (iValue == LED_MODAL.mChar) { return LED_MODAL.mModal; } } return 0; } /*将内容写入显示设备 参数: bGlint 需要闪烁的部分是否显示 */ void LED_DisplayToDevice() { u8 i = 0; u8 pos = 0; u8 value = 0; u8 mode[LED_WIDTH]; u8 dispMemAddr[] = {0,2,4,6,8,14}; memset(mode,0,sizeof(mode)); for (i=0;i<led_len;) { //取字模 value=LED_GetModal(led_content[i++]); //小数点和前面的字符结合成一个字符 if (led_content=='.') { i++; } // if (_l_blink_state == 0) // value = LED_GetModal(' '); mode[pos++]=value; if (pos>LED_WIDTH-1) break; } // for (i=0; i<pos; i++) { if (_l_blink_state == 0) led_disp_mem[dispMemAddr] = 0; else led_disp_mem[dispMemAddr] = mode; } // } void WrCmd(u8 Cmd) { u8 data, i, CmdByte = 0x80; HT1621_SET_CS(0); for (i=0; i<4; i++) { if (CmdByte&0x80) HT1621_SET_DAT(1); else HT1621_SET_DAT(0); HT1621_SET_WR(0); DelayUS(4); HT1621_SET_WR(1); CmdByte <<= 1; } for (i=0; i<8; i++) { if (Cmd&0x80) HT1621_SET_DAT(1); else HT1621_SET_DAT(0); HT1621_SET_WR(0); DelayUS(4); HT1621_SET_WR(1); DelayUS(4); Cmd <<= 1; } HT1621_SET_CS(1); } void WrAddData(u8 Add, u8 Ddat) { u8 i, CmdByte = 0xA0; // led_disp_mem[Add] |= Ddat; // HT1621_SET_CS(0); for (i=0; i<3; i++) { if (CmdByte&0x80) HT1621_SET_DAT(1); else HT1621_SET_DAT(0); HT1621_SET_WR(0); DelayUS(4); HT1621_SET_WR(1); CmdByte <<= 1; } Add <<= 2; for (i=0; i<6; i++) { if (Add&0x80) HT1621_SET_DAT(1); else HT1621_SET_DAT(0); HT1621_SET_WR(0); DelayUS(4); HT1621_SET_WR(1); Add <<= 1; } for (i=0; i<8; i++) { if (Ddat&0x80) HT1621_SET_DAT(1); else HT1621_SET_DAT(0); HT1621_SET_WR(0); DelayUS(4); HT1621_SET_WR(1); Ddat <<= 1; } HT1621_SET_CS(1); } void HT1621Cls(void) { u8 i; for (i=0; i<16; i+=2) { WrAddData(i, 0x00); } memset(led_disp_mem, 0, sizeof (led_disp_mem)); } void HT1621AllOn(void) { u8 i; for (i=0; i<16; i+=2) { WrAddData(i, 0xff); } } void HT1621_Init() { _eCM cm[2] = {CM_bph,CM_gw}; GPIOEX_InitIOPin(PIN_HT1621_CS, GPIO_MODE_OUT_PP_LOW_FAST); GPIOEX_InitIOPin(PIN_HT1621_WR, GPIO_MODE_OUT_PP_LOW_FAST); GPIOEX_InitIOPin(PIN_HT1621_DAT, GPIO_MODE_OUT_PP_LOW_FAST); GPIOEX_InitIOPin(PIN_RUNLED, GPIO_MODE_OUT_PP_LOW_FAST); GPIOEX_BitWrite(PIN_RUNLED,0); WrCmd(ht1621_BIAS); WrCmd(ht1621_RC256); WrCmd(ht1621_SYSEN); WrCmd(ht1621_LCDON); HT1621Cls(); // HC164_Init(); // } void HT1621_ReInit() { GPIOEX_InitIOPin(PIN_HT1621_CS, GPIO_MODE_OUT_PP_LOW_FAST); GPIOEX_InitIOPin(PIN_HT1621_WR, GPIO_MODE_OUT_PP_LOW_FAST); GPIOEX_InitIOPin(PIN_HT1621_DAT, GPIO_MODE_OUT_PP_LOW_FAST); WrCmd(ht1621_BIAS); WrCmd(ht1621_RC256); WrCmd(ht1621_SYSEN); WrCmd(ht1621_LCDON); } void HT1621_BackLight(u8 nStat) { if (nStat) { WrCmd(ht1621_BLON); } else { WrCmd(ht1621_BLOFF); } }[/mw_shl_code]


黑白风云谁是主,旁人笑看输赢
回复 支持 1 反对 0

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2013-6-20 17:01:40 | 显示全部楼层
你到HT官网去找下资料,一般我们都是直接出芯片给客户。然后客户都是看pdf去操作的。
或者你可以采取用STM8L052来操作呀。价格也不错,带LCD驱动的。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-5-5
在线时间
7 小时
 楼主| 发表于 2013-6-20 19:39:16 | 显示全部楼层
回复【2楼】ST-FAE-SALE:
---------------------------------
找了资料了,自己也写了个驱动程序,液晶愣是木有反应,唯一有反应的背光也很坑人,碰到连接的电阻才亮,不碰不亮......
公司用的是STM8S207,我也是刚接触的。
黑白风云谁是主,旁人笑看输赢
回复 支持 反对

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2013-6-21 09:07:28 | 显示全部楼层
单片机都是一样,根据他的时序走。就没问题。你可以测试下,单片机输出的脉冲是否符合你要的。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

9

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2014-8-19
在线时间
13 小时
发表于 2014-8-19 13:47:09 | 显示全部楼层
请问你做完了么??我有这个驱动。。不过哟弍问题 。。。你的可以给我参考下么?
希望与更多的电子爱好者交朋友
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-10-9
在线时间
10 小时
发表于 2014-12-3 16:43:09 | 显示全部楼层
IO有没设置成输出的啊
回复 支持 反对

使用道具 举报

10

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2015-1-17
在线时间
16 小时
发表于 2015-1-19 15:14:35 | 显示全部楼层
请问你解决了么?我同样的驱动,AVR能点亮,STVD能点亮,就IAR不能点亮。完全不明白哪里出问题了。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-4-2
在线时间
0 小时
发表于 2015-4-2 09:23:27 | 显示全部楼层
回复【8楼】静水流深:
---------------------------------
好贴
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-11-5
在线时间
0 小时
发表于 2015-5-12 12:01:15 | 显示全部楼层
回复【7楼】叶萌球:
---------------------------------
请问找到问题了吗?
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-2-26
在线时间
26 小时
发表于 2015-5-26 08:48:24 | 显示全部楼层
回复【8楼】静水流深:
---------------------------------
好贴 要惜看不懂怎么取字模的
回复 支持 反对

使用道具 举报

10

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2015-1-17
在线时间
16 小时
发表于 2015-6-23 09:03:53 | 显示全部楼层
回复【10楼】upc_arm:
---------------------------------
怀疑是编译器问题。
后来我去搞其他的项目了,因此这个就放下了。
不过在弄其他项目时,我最终选择了IAR,因为同样的程序STVD就是不能运行……。
回复 支持 反对

使用道具 举报

3

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2014-3-20
在线时间
34 小时
发表于 2015-8-3 15:36:10 | 显示全部楼层
楼主,您好,请问原理图的VCC是多少V?请问您有用过3.3V给HT1621供电么?
回复 支持 反对

使用道具 举报

6

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2012-5-5
在线时间
7 小时
 楼主| 发表于 2015-8-4 12:43:59 | 显示全部楼层
回复【13楼】rosewoman:
---------------------------------
原理图中的VCC是5V,3.3V的没有用过
黑白风云谁是主,旁人笑看输赢
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2014-5-11
在线时间
37 小时
发表于 2015-9-1 21:07:36 | 显示全部楼层
参考中…………
回复 支持 反对

使用道具 举报

10

主题

232

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2269
金钱
2269
注册时间
2012-8-24
在线时间
246 小时
发表于 2015-12-28 09:57:37 | 显示全部楼层
看不懂怎么取字模的
单片机技术交流请加127034610
回复 支持 反对

使用道具 举报

2

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2015-9-14
在线时间
29 小时
发表于 2017-10-21 11:17:00 | 显示全部楼层
看不懂是如何将要显示的数字或字符发送到指定位置的?
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-4-27
在线时间
6 小时
发表于 2019-2-18 16:43:13 | 显示全部楼层
标记下,学习中
回复 支持 反对

使用道具 举报

0

主题

295

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2019-3-26
在线时间
9 小时
发表于 2019-4-10 08:58:49 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 14:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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