• 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21
  • 打印

    广东11选五开奖结果: [应用方案] 新唐N76E616段码液晶驱动功能小试(附代码)

    [复制链接]
    2202|24
    跳转到指定楼层
    楼主
    本帖最后由 tuoxieshu 于 2018-11-5 19:07 编辑

    一直都对驱动段码液晶很头痛,原理这里就不赘述了。简单来说需要偏压交流信号来驱动。比点亮数码管麻烦多了。
    以前试过用IO口模拟交流信号驱动过,效果不是很理想。后来又用HT1621芯片驱动,可以是可以,不过还是嫌麻烦。买了不少段码液晶屏全部在那吃灰。
    最近玩新唐,发现新唐N76E616自带段码驱动功能,于是翻出吃灰的液晶屏小试牛刀,效果很好。电路简单,控制逻辑也很清晰。

    板子是自己画的,很小的板子?;遄拥共荒?,难的从大覆铜板上切一小块下来。。。需要买个割板刀了。
    我不太爱用热转印,都用纯化学转印,成功率比热转印高多了??梢钥吹阶⌒Ч淮?,文字细节都保留下来了。


    可以直接插在最小系统板上。



    PCB



    使用的段码液晶图纸。



    关键代码
    1. /**
    2. * Wire connection
    3. * MCU Pin: COM3  COM2  COM1  COM0  SEG0 SEG5 SEG4 SEG3 SEG2 SEG1
    4. * MCU Pin: P10   P11   P12   P13   P40  P45  P44  P43  P42  P41
    5. * LCD Pin: 1     2     3     4     5    6    7    8    9    10
    6. * --------------------------------------------------------------
    7. * COM1                       COM1  4G   1A   4D   2A   4A   3A
    8. * COM2                 COM2        1F   1B   2F   2B   3F   3B
    9. * COM3           COM3              1G   1C   2G   2C   3G   3C
    10. * COM4     COM4                    1E   1D   2E   2D   3E   3D
    11. */
    12. void ShowDigitFor888E(UINT8 digitPlace, UINT8 num, UINT8 tempUnit) {

    13.     UINT8 segABCD = 0;
    14.     UINT8 segEFG = 0;

    15.     // 参数检查
    16.     if ((digitPlace < 1 || digitPlace > 3) ||
    17.         (num > 9)) {
    18.         return;
    19.     }

    20.     // MCU's SEG0-5 Enable
    21.     // SEG0-SEG7 由 LCDSEG0 寄存器管理
    22.     LCDSEG0 = SET_BIT0 | SET_BIT1 | SET_BIT2 | SET_BIT3 | SET_BIT4 | SET_BIT5;

    23.     // 根据实际的引脚连接,以及LCD??榈亩温氡?,确定改变哪些SEG的数据
    24.     // 每个SEG是一个8位数据,1/4Duty时,高4位不使用,低4位的数据就是段码表的COM1-4的数据
    25.     switch (digitPlace)
    26.     {
    27.         case 1:
    28.             segABCD = 5;
    29.             segEFG = 0;
    30.             break;
    31.         case 2:
    32.             segABCD = 3;
    33.             segEFG = 4;
    34.             break;
    35.         case 3:
    36.             segABCD = 1;
    37.             segEFG = 2;
    38.             break;
    39.         default:
    40.             break;
    41.     }

    42.     // 确定了SEG以后,开始设置数字各段数据(其实可以全部计算出来结果放在一个code数组里即可)
    43.     // 设置ABCD段数据(COM0-A,COM1-B,COM2-C,COM3-D)
    44.     LCDPTR  = segABCD;
    45.     switch (num)
    46.     {
    47.         case 0:
    48.             LCDDAT  = COM0 | COM1 | COM2 | COM3;
    49.             break;
    50.         case 1:
    51.             LCDDAT  = COM1 | COM2;
    52.             break;
    53.         case 2:
    54.             LCDDAT  = COM0 | COM1 | COM3;
    55.             break;
    56.         case 3:
    57.             LCDDAT  = COM0 | COM1 | COM2 | COM3;
    58.             break;
    59.         case 4:
    60.             LCDDAT  = COM1 | COM2;
    61.             break;
    62.         case 5:
    63.             LCDDAT  = COM0 | COM2 | COM3;
    64.             break;
    65.         case 6:
    66.             LCDDAT  = COM0 | COM2 | COM3;
    67.             break;
    68.         case 7:
    69.             LCDDAT  = COM0 | COM1 | COM2;
    70.             break;
    71.         case 8:
    72.             LCDDAT  = COM0 | COM1 | COM2 | COM3;
    73.             break;
    74.         case 9:
    75.             LCDDAT  = COM0 | COM1 | COM2 | COM3;
    76.             break;

    77.         default:
    78.             break;
    79.     }
    80.     // 设置EFG段数据(COM1-F,COM2-G,COM3-E)
    81.     LCDPTR  = segEFG;
    82.     switch (num)
    83.     {
    84.         case 0:
    85.             LCDDAT  = COM1 | COM3;
    86.             break;
    87.         case 1:
    88.             LCDDAT  = 0x00;
    89.             break;
    90.         case 2:
    91.             LCDDAT  = COM2 | COM3;
    92.             break;
    93.         case 3:
    94.             LCDDAT  = COM2;
    95.             break;
    96.         case 4:
    97.             LCDDAT  = COM1 | COM2;
    98.             break;
    99.         case 5:
    100.             LCDDAT  = COM1 | COM2;
    101.             break;
    102.         case 6:
    103.             LCDDAT  = COM1 | COM2 | COM3;
    104.             break;
    105.         case 7:
    106.             LCDDAT  = 0x00;
    107.             break;
    108.         case 8:
    109.             LCDDAT  = COM1 | COM2 | COM3;
    110.             break;
    111.         case 9:
    112.             LCDDAT  = COM1 | COM2;
    113.             break;

    114.         default:
    115.             break;
    116.     }

    117.     // 设置摄氏度符号段数据(COM0-SEG0,2,4)
    118.     // 注意这里要用或计算,不然会覆盖之前设置好的数字部分的段码数据
    119.     switch (tempUnit)
    120.     {
    121.         case 0xC:
    122.             LCDPTR  = 2; // 4A段 set
    123.             LCDDAT |= COM0;
    124.             LCDPTR  = 4; // 4D段 set
    125.             LCDDAT |= COM0;
    126.             LCDPTR  = 0; // 4G段 clear
    127.             LCDDAT &= ~COM0;
    128.             break;
    129.         case 0xF:
    130.             LCDPTR  = 2; // 4A段 set
    131.             LCDDAT |= COM0;
    132.             LCDPTR  = 4; // 4D段 clear
    133.             LCDDAT &= ~COM0;
    134.             LCDPTR  = 0; // 4G段 set
    135.             LCDDAT |= COM0;
    136.             break;
    137.         default:
    138.             LCDPTR  = 2; // 4A段 clear
    139.             LCDDAT &= ~COM0;
    140.             LCDPTR  = 4; // 4D段 clear
    141.             LCDDAT &= ~COM0;
    142.             LCDPTR  = 0; // 4G段 clear
    143.             LCDDAT &= ~COM0;
    144.             break;
    145.     }
    146. }
    复制代码



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    沙发
    | 2018-11-5 10:38 | 只看该作者
    厉害,分享了   干货~
    板凳
     楼主 | 2018-11-5 12:32 | 只看该作者
    langziwuliao 发表于 2018-11-5 10:38
    厉害,分享了   干货~

    哈哈哈
    地板
    | 2018-11-5 22:02 | 只看该作者
    干货啊,666
    5
    | 2018-11-5 22:48 | 只看该作者
    新唐有好几个系列带LCD驱动
    6
     楼主 | 2018-11-6 00:41 | 只看该作者

    这片子确实挺好用的
    7
     楼主 | 2018-11-6 00:42 | 只看该作者
    捉虫天师 发表于 2018-11-5 22:48
    新唐有好几个系列带LCD驱动

    嗯,M0系列里也有几款,8051系列的不知道别的有没有?
    8
    | 2018-11-6 17:20 | 只看该作者
    这个芯片比较好用,可惜官网没看到例子。
    9
     楼主 | 2018-11-6 19:28 | 只看该作者
    小灵通2018 发表于 2018-11-6 17:20
    这个芯片比较好用,可惜官网没看到例子。

    有的。官方提供的BSP里面就有例子,我就是看那个例子结合手册写出来的程序。
    看你也发了程序,收了,以后作参考
    10
    | 2018-11-7 09:34 | 只看该作者
    不错,学习了。
    11
    | 2018-11-7 10:39 | 只看该作者
    1T51的带段码液晶驱动确实可以做一个性价比很不错的 仪器表头什么的,包括多功能??亟邮障允咀爸?,段码液晶的直驱功能,让线路非常简洁。
    植入代码后,基本上想干点啥都行。
    12
     楼主 | 2018-11-7 11:03 | 只看该作者
    slotg 发表于 2018-11-7 09:34
    不错,学习了。

    握手
    13
     楼主 | 2018-11-7 11:06 | 只看该作者
    tianxj01 发表于 2018-11-7 10:39
    1T51的带段码液晶驱动确实可以做一个性价比很不错的 仪器表头什么的,包括多功能??亟邮障允咀爸?,段码液 ...

    确实如此,不懂为什么stc没有这种起芯片,技术上很难吗
    14
    | 2018-11-7 11:11 | 只看该作者
    tuoxieshu 发表于 2018-11-7 11:06
    确实如此,不懂为什么stc没有这种起芯片,技术上很难吗

    可惜AD不像N76E003,是12位的,只有10位。否则,做个典型的三位半电压表轻轻松松。
    15
     楼主 | 2018-11-7 11:20 | 只看该作者
    tianxj01 发表于 2018-11-7 11:11
    可惜AD不像N76E003,是12位的,只有10位。否则,做个典型的三位半电压表轻轻松松。 ...

    遗憾遗憾,也可能是故意做差异化,要是全能了003就没人用了
    16
    | 2018-11-7 13:56 | 只看该作者
    哇,感谢分享
    17
    | 2018-11-7 15:07 | 只看该作者
    可以给我一个完整的吗  邮箱[email protected]  谢谢楼主
    18
    | 2018-11-7 17:16 | 只看该作者
    听说过,没用过的飘过
    19
     楼主 | 2018-11-7 17:38 | 只看该作者
    629soft 发表于 2018-11-7 15:07
    可以给我一个完整的吗  邮箱  谢谢楼主

    不客气已发。
    20
     楼主 | 2018-11-7 17:39 | 只看该作者
    jefferson1998 发表于 2018-11-7 13:56
    哇,感谢分享

    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    快速回复 广东快乐十分走势图 返回列表
  • 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21