找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8546|回复: 20
打印 上一主题 下一主题
收起左侧

段式液晶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, 下载次数: 246) (118 K) 下载次数:0

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏16 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:14010 发表于 2016-11-11 18:46 | 只看该作者
不错,支持一下!
回复

使用道具 举报

板凳
ID:149091 发表于 2016-11-22 21:50 | 只看该作者
51黑有你更精彩!!!
回复

使用道具 举报

地板
ID:190026 发表于 2017-5-6 17:38 | 只看该作者
购买了 怎么不能下载呢
回复

使用道具 举报

5#
ID:140489 发表于 2017-6-16 10:21 | 只看该作者
下载了,但是好贵,一共要10黑币
回复

使用道具 举报

6#
ID:303586 发表于 2018-4-8 14:53 | 只看该作者
看看历程,学习下
回复

使用道具 举报

7#
ID:254251 发表于 2018-5-15 18:09 | 只看该作者
编不过
回复

使用道具 举报

8#
ID:254251 发表于 2018-5-15 18:49 | 只看该作者
回差0.5太小继电器频繁开闭,回差2到3比较好
回复

使用道具 举报

9#
ID:399111 发表于 2020-4-29 12:14 | 只看该作者
学习下
回复

使用道具 举报

10#
ID:282850 发表于 2020-4-30 15:18 | 只看该作者
液晶的焊接方法不错,有个优点是方便拆下来,今年焊过一次直插,拆时把脚剪了一段,后改成此法焊接。
HT1621的字编码可以优化一下,一维数组就可以了。显示时发送的是一个char就行。
回复

使用道具 举报

11#
ID:718536 发表于 2020-11-27 21:24 | 只看该作者
温控部分有加入PID算法吗?
回复

使用道具 举报

12#
ID:19198 发表于 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显示缓存      
        }               
}
回复

使用道具 举报

13#
ID:201953 发表于 2021-1-11 08:47 | 只看该作者
感谢分享。学习一下段式液晶的输出格式输出。
回复

使用道具 举报

14#
ID:282074 发表于 2021-1-16 07:56 来自手机 | 只看该作者
trm999 发表于 2021-1-3 22:53
简化一下,留存备忘



里面的板子可以一块儿打样
回复

使用道具 举报

15#
ID:381171 发表于 2021-6-1 11:26 | 只看该作者
学习的道路因为有51黑论坛更容易了!非常感谢!
回复

使用道具 举报

16#
ID:137736 发表于 2022-9-3 18:23 | 只看该作者
1621驱动很好
回复

使用道具 举报

17#
ID:507641 发表于 2022-9-8 08:48 | 只看该作者
f556 发表于 2020-4-30 15:18
液晶的焊接方法不错,有个优点是方便拆下来,今年焊过一次直插,拆时把脚剪了一段,后改成此法焊接。
HT16 ...

详细点,上个实例
回复

使用道具 举报

18#
ID:507641 发表于 2022-9-19 08:40 | 只看该作者
请问屏的型号或者连接?谢谢
回复

使用道具 举报

19#
ID:977861 发表于 2022-10-3 13:29 | 只看该作者
测温是多少到多少呀
回复

使用道具 举报

20#
ID:102702 发表于 2022-11-10 22:57 | 只看该作者
楼主能上个电路图吗?
回复

使用道具 举报

21#
ID:624729 发表于 2023-4-18 21:20 | 只看该作者
非常精彩,学到不少,多谢。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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