標(biāo)題: 段式液晶HT1621驅(qū)動(dòng) 15F104E做的溫控器 [打印本頁(yè)]

作者: trm999    時(shí)間: 2016-11-11 13:07
標(biāo)題: 段式液晶HT1621驅(qū)動(dòng) 15F104E做的溫控器
本帖最后由 trm999 于 2017-11-5 12:35 編輯

歷時(shí)一周,由HT1621B驅(qū)動(dòng)寫(xiě)起,LCD正常顯示后,加入18B20溫度檢測(cè)程序,
可以正常顯示溫度后,又加入按鍵識(shí)別,因?yàn)槭?腳IO,所以只有一個(gè)IO可用,
加入短按,2秒長(zhǎng)按,5秒長(zhǎng)按程序來(lái)實(shí)現(xiàn)減、加、保存,涉及到保存,
又學(xué)習(xí)STC單片機(jī)的EEPROM,實(shí)現(xiàn)保存后由于代碼比較多,又進(jìn)行模塊化編程學(xué)習(xí),
在這里卡了2天,定時(shí)器卡了一下午,終于完成   

注意:1.EEPROM操作放到中斷里面可以正常操作保存,估計(jì)和關(guān)閉中斷有關(guān)系  2.因?yàn)槔^電器會(huì)干擾動(dòng)作,要加電容


// - - * * * * * * * HT1621 段碼屏驅(qū)動(dòng)   * * * * * * *
// - - * MCU STC15F104W通過(guò) 15F104E未知 內(nèi)設(shè)12M 晶振 *
// - - * C 語(yǔ)言程序          trm999  版本1.0         *
//                 溫度容差0.5攝氏度,當(dāng)空調(diào)控制器使用,必須要有容差
// - - * * * * * * * * * * * * * * * *   * * * * * * *
/*********************************************************************
數(shù)碼管結(jié)構(gòu)       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      數(shù)據(jù)位4位,結(jié)構(gòu)4321
*********************************************************************/
sbit DQ=P3^5;   //18B20
sbit SS=P3^0;   //繼電器
sbit HT1621_CS=P3^3; // - - HT1621使能引腳
sbit HT1621_WR=P3^2; // - - HT1621時(shí)鐘引腳
sbit HT1621_DAT=P3^4; // - - HT1621數(shù)據(jù)引腳
sbit key_sr=P3^1;//對(duì)應(yīng)按鍵

//shuzi0是左1大8字的代碼表格
uchar code Ht1621_shuzi0[][8]={                //0~9數(shù)字?jǐn)?shù)組

    {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數(shù)字?jǐn)?shù)組

    {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數(shù)字?jǐn)?shù)組

    {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是特殊符號(hào)代碼表格
uchar code Ht1621_shuzi3[][8]={                //0~9數(shù)字?jǐn)?shù)組

    {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
};


淘寶買(mǎi)的2毛液晶玻璃,接口有變化,com0-com4是反的


要用HT1621B驅(qū)動(dòng),自己做的板子老是有重影,干脆打板子,做工不錯(cuò)


焊好后,松香不少請(qǐng)無(wú)視


15F104E單片機(jī),加的背光,晚上方便


外殼是個(gè)問(wèn)題,基本都是膠粘的,因?yàn)槠?chē)使用,所以電源是12V變5V,用的3312模塊的一半


左邊圓的是按鍵


正常顯示溫度,小數(shù)字是小數(shù)部分,AUTO代表正溫度,負(fù)溫度會(huì)顯示LOW


設(shè)定界面會(huì)顯示線條,繼電器閉合會(huì)顯示一個(gè)小圓圈和兩個(gè)細(xì)線



源文件因?yàn)槭悄K化,所以打包吧
溫控器   15F104E通過(guò)1.0版 20161102溫控器 15F104E通過(guò)1.0版.7z (117.73 KB, 下載次數(shù): 254) (118 K) 下載次數(shù):0


作者: lising    時(shí)間: 2016-11-11 18:46
不錯(cuò),支持一下!
作者: shao5874705    時(shí)間: 2016-11-22 21:50
51黑有你更精彩。!

作者: dpzc1234    時(shí)間: 2017-5-6 17:38
購(gòu)買(mǎi)了 怎么不能下載呢
作者: lids    時(shí)間: 2017-6-16 10:21
下載了,但是好貴,一共要10黑幣
作者: stely    時(shí)間: 2018-4-8 14:53
看看歷程,學(xué)習(xí)下
作者: nanning321    時(shí)間: 2018-5-15 18:09
編不過(guò)
作者: nanning321    時(shí)間: 2018-5-15 18:49
回差0.5太小繼電器頻繁開(kāi)閉,回差2到3比較好
作者: YYZZ052    時(shí)間: 2020-4-29 12:14
學(xué)習(xí)下
作者: f556    時(shí)間: 2020-4-30 15:18
液晶的焊接方法不錯(cuò),有個(gè)優(yōu)點(diǎn)是方便拆下來(lái),今年焊過(guò)一次直插,拆時(shí)把腳剪了一段,后改成此法焊接。
HT1621的字編碼可以優(yōu)化一下,一維數(shù)組就可以了。顯示時(shí)發(fā)送的是一個(gè)char就行。
作者: suqianfu    時(shí)間: 2020-11-27 21:24
溫控部分有加入PID算法嗎?
作者: trm999    時(shí)間: 2021-1-3 22:53
簡(jiǎn)化一下,留存?zhèn)渫?br />
  1. uchar code bianma[][8]={                //0~9數(shù)字?jǐn)?shù)組

  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
復(fù)制代碼





void SMG_SX(shi,ge,xiaoshu,low,high,xian,yuanxian,tmp)//段碼屏顯示函數(shù),數(shù)據(jù)轉(zhuǎn)換
{
        
                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);  //寫(xiě)入1621顯示緩存      
        }               
}
作者: zero1118    時(shí)間: 2021-1-11 08:47
感謝分享。學(xué)習(xí)一下段式液晶的輸出格式輸出。
作者: ksljxxq    時(shí)間: 2021-1-16 07:56
trm999 發(fā)表于 2021-1-3 22:53
簡(jiǎn)化一下,留存?zhèn)渫?br />


里面的板子可以一塊兒打樣
作者: gujiushentan    時(shí)間: 2021-6-1 11:26
學(xué)習(xí)的道路因?yàn)橛?1黑論壇更容易了!非常感謝!
作者: zmc419    時(shí)間: 2022-9-3 18:23
1621驅(qū)動(dòng)很好
作者: SURUBU1976    時(shí)間: 2022-9-8 08:48
f556 發(fā)表于 2020-4-30 15:18
液晶的焊接方法不錯(cuò),有個(gè)優(yōu)點(diǎn)是方便拆下來(lái),今年焊過(guò)一次直插,拆時(shí)把腳剪了一段,后改成此法焊接。
HT16 ...

詳細(xì)點(diǎn),上個(gè)實(shí)例
作者: SURUBU1976    時(shí)間: 2022-9-19 08:40
請(qǐng)問(wèn)屏的型號(hào)或者連接?謝謝
作者: zydl123    時(shí)間: 2022-10-3 13:29
測(cè)溫是多少到多少呀
作者: raymondau    時(shí)間: 2022-11-10 22:57
樓主能上個(gè)電路圖嗎?
作者: qinkiss    時(shí)間: 2023-4-18 21:20
非常精彩,學(xué)到不少,多謝。
作者: hellohaitong    時(shí)間: 2025-6-3 09:47
學(xué)習(xí),正好遇到了ht1621驅(qū)動(dòng)段碼屏




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1