标题: 段式液晶HT1621驱动 15F104E做的温控器 [打印本页]

作者: trm999    时间: 2016-11-11 13:07
标题: 段式液晶HT1621驱动 15F104E做的温控器
本帖最后由 trm999 于 2017-11-5 12:35 编辑

历时一周,由HT1621B驱动写起,LCD正常显示后,加入18B20温度检测程序,
可以正常显示温度后,又加入按键识别,因为是6脚IO,所以只有一个IO可用,
加入短按,2秒长按,5秒长按程序来实现减、加、保存,涉及到保存,
又学习STC单片机的EEPROM,实现保存后由于代码比较多,又进行模块化编程学习,
在这里卡了2天,定时器卡了一下午,终于完成   

注意:1.EEPROM操作放到中断里面可以正常操作保存,估计和关闭中断有关系  2.因为继电器会干扰动作,要加电容


// - - * * * * * * * HT1621 段码屏驱动   * * * * * * *
// - - * MCU STC15F104W通过 15F104E未知 内设12M 晶振 *
// - - * C 语言程序          trm999  版本1.0         *
//                 温度容差0.5摄氏度,当空调控制器使用,必须要有容差
// - - * * * * * * * * * * * * * * * *   * * * * * * *
/*********************************************************************
数码管结构       a    f     b        g      e     c     d         dp
                 seg0  seg1  seg2  seg3  seg4  seg5  seg6   seg7
com0          1a    1f    1b    1g    1e    1c    1d     1dp
  com1          2a    2f    2b    2g    2e    2c    2d     2dp
    com2      3a    3f    3b    3g    3e    3c    3d     3dp
      com3      4a    4f    4b    4g    4e    4c    4d     3dp      数据位4位,结构4321
*********************************************************************/
sbit DQ=P3^5;   //18B20
sbit SS=P3^0;   //继电器
sbit HT1621_CS=P3^3; // - - HT1621使能引脚
sbit HT1621_WR=P3^2; // - - HT1621时钟引脚
sbit HT1621_DAT=P3^4; // - - HT1621数据引脚
sbit key_sr=P3^1;//对应按键

//shuzi0是左1大8字的代码表格
uchar code Ht1621_shuzi0[][8]={                //0~9数字数组

    {0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00},//0
    {0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00},//1
    {0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x00},//2
    {0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x00},//3
    {0x00,0x01,0x01,0x01,0x00,0x01,0x00,0x00},//4
    {0x01,0x01,0x00,0x01,0x00,0x01,0x01,0x00},//5
    {0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x00},//6
    {0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x00},//7
    {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00},//8
    {0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x00},//9   
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},//AUTO    10
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//        11               
};

//shuzi1是左2大8字的代码表格
uchar code Ht1621_shuzi1[][8]={                //0~9数字数组

    {0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x00},//0
    {0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00},//1
    {0x02,0x00,0x02,0x02,0x02,0x00,0x02,0x00},//2
    {0x02,0x00,0x02,0x02,0x00,0x02,0x02,0x00},//3
    {0x00,0x02,0x02,0x02,0x00,0x02,0x00,0x00},//4
    {0x02,0x02,0x00,0x02,0x00,0x02,0x02,0x00},//5
    {0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x00},//6
    {0x02,0x00,0x02,0x00,0x00,0x02,0x00,0x00},//7
    {0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00},//8
    {0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x00},//9
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02},//hight    10
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//        11
};

//shuzi2是右小8字的代码表格
uchar code Ht1621_shuzi2[][8]={                //0~9数字数组

    {0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x00},//0
    {0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00},//1
    {0x04,0x00,0x04,0x04,0x04,0x00,0x04,0x00},//2
    {0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00},//3
    {0x00,0x04,0x04,0x04,0x00,0x04,0x00,0x00},//4
    {0x04,0x04,0x00,0x04,0x00,0x04,0x04,0x00},//5
    {0x04,0x04,0x00,0x04,0x04,0x04,0x04,0x00},//6
    {0x04,0x00,0x04,0x00,0x00,0x04,0x00,0x00},//7
    {0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},//8
    {0x04,0x04,0x04,0x04,0x00,0x04,0x04,0x00},//9
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04},//low    10
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//    11
};

//shuzi3是特殊符号代码表格
uchar code Ht1621_shuzi3[][8]={                //0~9数字数组

    {0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//上半圆
    {0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},//圆双线
    {0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00},//TEMP
    {0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00},//ROOM
    {0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00},//SET
    {0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00},//下半圆hr
    {0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00},//线条
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08},//FAN    7
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//    8
};


淘宝买的2毛液晶玻璃,接口有变化,com0-com4是反的


要用HT1621B驱动,自己做的板子老是有重影,干脆打板子,做工不错


焊好后,松香不少请无视


15F104E单片机,加的背光,晚上方便


外壳是个问题,基本都是胶粘的,因为汽车使用,所以电源是12V变5V,用的3312模块的一半


左边圆的是按键


正常显示温度,小数字是小数部分,AUTO代表正温度,负温度会显示LOW


设定界面会显示线条,继电器闭合会显示一个小圆圈和两个细线



源文件因为是模块化,所以打包吧
温控器   15F104E通过1.0版 20161102温控器 15F104E通过1.0版.7z (117.73 KB, 下载次数: 254) (118 K) 下载次数:0


作者: lising    时间: 2016-11-11 18:46
不错,支持一下!
作者: shao5874705    时间: 2016-11-22 21:50
51黑有你更精彩!!!

作者: dpzc1234    时间: 2017-5-6 17:38
购买了 怎么不能下载呢
作者: lids    时间: 2017-6-16 10:21
下载了,但是好贵,一共要10黑币
作者: stely    时间: 2018-4-8 14:53
看看历程,学习下
作者: nanning321    时间: 2018-5-15 18:09
编不过
作者: nanning321    时间: 2018-5-15 18:49
回差0.5太小继电器频繁开闭,回差2到3比较好
作者: YYZZ052    时间: 2020-4-29 12:14
学习下
作者: f556    时间: 2020-4-30 15:18
液晶的焊接方法不错,有个优点是方便拆下来,今年焊过一次直插,拆时把脚剪了一段,后改成此法焊接。
HT1621的字编码可以优化一下,一维数组就可以了。显示时发送的是一个char就行。
作者: suqianfu    时间: 2020-11-27 21:24
温控部分有加入PID算法吗?
作者: trm999    时间: 2021-1-3 22:53
简化一下,留存备忘
  1. uchar code bianma[][8]={                //0~9数字数组

  2.     {0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00},//0                                  0
  3.     {0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00},//1                                  1
  4.     {0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x00},//2                                  2
  5.     {0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x00},//3                                  3
  6.     {0x00,0x01,0x01,0x01,0x00,0x01,0x00,0x00},//4                                  4
  7.     {0x01,0x01,0x00,0x01,0x00,0x01,0x01,0x00},//5                                  5
  8.     {0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x00},//6                                  6
  9.     {0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x00},//7                                  7
  10.     {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00},//8                                  8
  11.     {0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x00},//9                                        9
  12.           {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},//AUTO 10                10
  13.           {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//上半圆                11
  14.     {0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00},//圆双线                12
  15.     {0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00},//TEMP                        13
  16.     {0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00},//ROOM                        14
  17.     {0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00},//SET                                15
  18.     {0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00},//下半圆hr        16
  19.     {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00},//线条                        17
  20.           {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},//FAN                                18
  21.           {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//灭                     19
复制代码





void SMG_SX(shi,ge,xiaoshu,low,high,xian,yuanxian,tmp)//段码屏显示函数,数据转换
{
        
                uchar j,t;
                uchar a0,a1,a2,a3;
               
        for(j=0;j<8;j++)                        
        {
            a0=(bianma[shi][j]);
                                                a1=(bianma[ge][j]|bianma[high][j]);
                                                a2=(bianma[xiaoshu][j]|bianma[low][j]);
                                                a3=(bianma[yuanxian][j]|bianma[tmp][j]);
                                                a1<<=1;
                                                a2<<=2;
                                                a3<<=3;
                                                t=(a0|a1|a2|a3);

                         
            Ht1621WrOneData(j,t);  //写入1621显示缓存      
        }               
}
作者: zero1118    时间: 2021-1-11 08:47
感谢分享。学习一下段式液晶的输出格式输出。
作者: ksljxxq    时间: 2021-1-16 07:56
trm999 发表于 2021-1-3 22:53
简化一下,留存备忘



里面的板子可以一块儿打样
作者: gujiushentan    时间: 2021-6-1 11:26
学习的道路因为有51黑论坛更容易了!非常感谢!
作者: zmc419    时间: 2022-9-3 18:23
1621驱动很好
作者: SURUBU1976    时间: 2022-9-8 08:48
f556 发表于 2020-4-30 15:18
液晶的焊接方法不错,有个优点是方便拆下来,今年焊过一次直插,拆时把脚剪了一段,后改成此法焊接。
HT16 ...

详细点,上个实例
作者: SURUBU1976    时间: 2022-9-19 08:40
请问屏的型号或者连接?谢谢
作者: zydl123    时间: 2022-10-3 13:29
测温是多少到多少呀
作者: raymondau    时间: 2022-11-10 22:57
楼主能上个电路图吗?
作者: qinkiss    时间: 2023-4-18 21:20
非常精彩,学到不少,多谢。
作者: hellohaitong    时间: 2025-6-3 09:47
学习,正好遇到了ht1621驱动段码屏




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1