标题: 段式液晶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
设定界面会显示线条,继电器闭合会显示一个小圆圈和两个细线
源文件因为是模块化,所以打包吧
作者: 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
简化一下,留存备忘
- uchar code bianma[][8]={ //0~9数字数组
- {0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00},//0 0
- {0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00},//1 1
- {0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x00},//2 2
- {0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x00},//3 3
- {0x00,0x01,0x01,0x01,0x00,0x01,0x00,0x00},//4 4
- {0x01,0x01,0x00,0x01,0x00,0x01,0x01,0x00},//5 5
- {0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x00},//6 6
- {0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x00},//7 7
- {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00},//8 8
- {0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x00},//9 9
- {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},//AUTO 10 10
- {0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//上半圆 11
- {0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00},//圆双线 12
- {0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00},//TEMP 13
- {0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00},//ROOM 14
- {0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00},//SET 15
- {0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00},//下半圆hr 16
- {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00},//线条 17
- {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01},//FAN 18
- {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
详细点,上个实例
作者: 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 |