久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 二手STC15F104E單片機溫度器升級 [打印本頁]

作者: 冰冰潔潔    時間: 2018-11-20 23:02
標題: 二手STC15F104E單片機溫度器升級
某寶淘了個單片機溫度計,沒顯示,沒代碼,沒參數,沒有圖,除了便宜,再沒優點,幾乎就殼子能用,老板按殼子價出的。自用手電透光法畫出了單片機定意圖,弄了兩程序,成功驅動。

電路原理圖如下:



  1. #include "STC15.H"
  2. #include "codetab_Hygrothermograph.h"//OLED字庫
  3. #include "OLED_Hygrothermograph.h"//OLED基本驅動函數

  4. void OLED_FormName(unsigned char x, y)//在指定位置顯示HFont字符組
  5. {
  6.         unsigned char i=0,j=0;
  7.         for(j=0;j<17;j++)
  8.         {
  9.                 OLED_Set_Pos(x,y);
  10.                 for(i=0;i<6;i++)
  11.                 OLED_WrDat(HFont[i+j*6]);
  12.                 x+=6;
  13.         }
  14. }

  15. void OLED_FormLine(unsigned char x, y)//在指定位置顯示HFont字符組
  16. {
  17.         unsigned char i=0,j=0;
  18.         for(j=0;j<18;j++)
  19.         {
  20.                 OLED_Set_Pos(x,y);
  21.                 for(i=0;i<6;i++)
  22.                 OLED_WrDat(LineFont[i]);
  23.                 x+=6;
  24.         }
  25. }

  26. void OLED_FormTitle(unsigned char x,y)//主標題
  27. {
  28.         unsigned char i=0,j=0;
  29.         for(j=0;j<13;j++)
  30.         {
  31.                 OLED_Set_Pos(x,y);

  32.                 for(i=0;i<8;i++)
  33.                 {
  34.                         OLED_WrDat(TitleFont[j*16+i]);
  35.                 }
  36.                 OLED_Set_Pos(x,y+1);
  37.                
  38.                 for(i=0;i<8;i++)
  39.                 {
  40.                         OLED_WrDat(TitleFont[j*16+i+8]);
  41.                 }
  42.                 x+=8;
  43.         }
  44. }

  45. void OLED_FormTemp(unsigned char x,y)//溫度標識
  46. {
  47.         unsigned char i=0,j=0;
  48.         for(j=0;j<5;j++)
  49.         {
  50.                 OLED_Set_Pos(x,y);

  51.                 for(i=0;i<8;i++)
  52.                 {
  53.                         OLED_WrDat(TempFont[j*16+i]);
  54.                 }
  55.                 OLED_Set_Pos(x,y+1);
  56.                
  57.                 for(i=0;i<8;i++)
  58.                 {
  59.                         OLED_WrDat(TempFont[j*16+i+8]);
  60.                 }
  61.                 x+=8;
  62.         }
  63. }

  64. void OLED_FormHumi(unsigned char x,y)//濕度標識
  65. {
  66.         unsigned char i=0,j=0;
  67.         for(j=0;j<4;j++)
  68.         {
  69.                 OLED_Set_Pos(x,y);

  70.                 for(i=0;i<8;i++)
  71.                 {
  72.                         OLED_WrDat(HumiFont[j*16+i]);
  73.                 }
  74.                 OLED_Set_Pos(x,y+1);
  75.                
  76.                 for(i=0;i<8;i++)
  77.                 {
  78.                         OLED_WrDat(HumiFont[j*16+i+8]);
  79.                 }
  80.                 x+=8;
  81.         }
  82. }

  83. void OLED_AnyChar_16X16(unsigned char x, y,unsigned char anystr_temp[])//在指定位置顯示一個指定的16X16字符
  84. //x:選定行第幾個像素點;y:選定的行數(以16個列像素為單位);待顯示的字符串
  85. {
  86.         unsigned char i=0;
  87.         if(x>112)//如果指定的行超界,那么轉到下一行第一個位置
  88.         {
  89.                 x=0;y++;
  90.         }
  91.         
  92.         OLED_Set_Pos(x,y);//置寫入位
  93.         
  94.         for(i=0;i<16;i++)
  95.         {
  96.         OLED_WrDat(anystr_temp[i]);//在字模表中查找相應位置的字模,并寫入到指定位置
  97.         }
  98.         
  99.         OLED_Set_Pos(x,y+1);//寫入位下移半個單位
  100.                
  101.         for(i=0;i<16;i++)
  102.         {
  103.                 OLED_WrDat(anystr_temp[i+16]);
  104.         }
  105. }

  106. void OLED_AnyChar_8X16(unsigned char x, y,unsigned char anystr_temp[])//在指定位置顯示一個指定的8X16字符
  107. //x:選定行第幾個像素點;y:選定的行數(以16個列像素為單位);待顯示的字符串
  108. {
  109.         unsigned char i=0;
  110.         if(x>112)//如果指定的行超界,那么轉到下一行第一個位置
  111.         {
  112.                 x=0;y++;
  113.         }
  114.         
  115.         OLED_Set_Pos(x,y);//置寫入位
  116.         
  117.         for(i=0;i<8;i++)
  118.         {
  119.         OLED_WrDat(anystr_temp[i]);//在字模表中查找相應位置的字模,并寫入到指定位置
  120.         }
  121.         
  122.         OLED_Set_Pos(x,y+1);//寫入位下移半個單位
  123.                
  124.         for(i=0;i<8;i++)
  125.         {
  126.                 OLED_WrDat(anystr_temp[i+8]);
  127.         }
  128. }

  129. void OLED_DataDisplay_H(unsigned char x, y,unsigned int display_temp[])//定制的數據顯示函數
  130. //x:選定行第幾個像素點;y:選定的行數(以16個列像素為單位);待顯示的數字字符串
  131. {
  132.         unsigned char i=0,j=0;
  133.         for(j=0;j<2;j++)//寫整數數據
  134.         {
  135.                 OLED_Set_Pos(x,y);//置寫入位
  136.                 for(i=0;i<8;i++)
  137.                 {
  138.                         OLED_WrDat(NumberFont[display_temp[j]*16+i]);//在字模表中查找相應位置的字模,并寫入到指定位置
  139.                 }
  140.                 OLED_Set_Pos(x,y+1);//寫入位下移半個單位
  141.                 for(i=0;i<8;i++)
  142.                 {
  143.                         OLED_WrDat(NumberFont[display_temp[j]*16+i+8]);
  144.                 }
  145.                 x+=8;
  146.         }
  147. }

  148. void OLED_DataDisplay_T(unsigned char x, y,unsigned int display_temp[])//定制的數據顯示函數
  149. //x:選定行第幾個像素點;y:選定的行數(以16個列像素為單位);待顯示的數字字符串
  150. {
  151.         unsigned char i=0,j=0;
  152.         for(j=0;j<2;j++)//寫整數數據
  153.         {
  154.                 OLED_Set_Pos(x,y);//置寫入位
  155.                 for(i=0;i<8;i++)
  156.                 {
  157.                         OLED_WrDat(NumberFont[display_temp[j]*16+i]);//在字模表中查找相應位置的字模,并寫入到指定位置
  158.                 }
  159.                 OLED_Set_Pos(x,y+1);//寫入位下移半個單位
  160.                 for(i=0;i<8;i++)
  161.                 {
  162.                         OLED_WrDat(NumberFont[display_temp[j]*16+i+8]);
  163.                 }
  164.                 x+=8;
  165.         }
  166.         x+=8;
  167.                 OLED_Set_Pos(x,y);//置寫入位
  168.                 for(i=0;i<8;i++)
  169.                 {
  170.                         OLED_WrDat(NumberFont[display_temp[j]*16+i]);//在字模表中查找相應位置的字模,并寫入到指定位置
  171.                 }
  172.                 OLED_Set_Pos(x,y+1);//寫入位下移半個單位
  173.                 for(i=0;i<8;i++)
  174.                 {
  175.                         OLED_WrDat(NumberFont[display_temp[j]*16+i+8]);
  176.                 }
  177. }
復制代碼


595數碼顯STC15F104E18B20溫度OK.zip

59.03 KB, 下載次數: 35, 下載積分: 黑幣 -5

OLED128顯STC15F104EHT11溫濕計OK2.zip

54.69 KB, 下載次數: 38, 下載積分: 黑幣 -5


作者: 冰冰潔潔    時間: 2018-11-20 23:07
樣子不錯,沒科技感,主要沒源代碼不受控制,只能升級了。

15427262601830.33752576610976504.jpg (311.14 KB, 下載次數: 159)

15427262601830.33752576610976504.jpg

15427262601830.33752576610976504.jpg (311.14 KB, 下載次數: 154)

15427262601830.33752576610976504.jpg

作者: 18363367153    時間: 2018-12-25 18:13
這傳感器用的什么的

作者: 冰冰潔潔    時間: 2018-12-27 04:43
三種,18B20和DHT12和LM35A
原裝的是LM35A論壇我發過原裝LM35A測溫度的,很好用。
作者: jifengjianwu    時間: 2019-1-25 14:40
厲害了,研究下。謝謝樓主
作者: duckyer    時間: 2023-12-26 10:38
如何接顯示屏?
作者: duckyer    時間: 2023-12-26 11:15
厲害了我的果,8個腳mcu,玩出了最多的功能!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www.狠狠| 亚洲第一在线 | 俺去俺来也在线www色官网 | 国产欧美精品一区二区色综合 | 亚洲 欧美 另类 综合 偷拍 | 网站av | 亚洲国产欧美日韩在线 | 欧美偷拍精品 | 草草网| 精品国产区一区二 | 亚洲视频国产 | 亚洲一区网站 | 日韩久久综合 | 精品日韩一区二区三区 | 久久久久毛片 | 久久久一本 | 99精品久久久 | 日本三级韩国三级美三级91 | 在线视频99| 日本激情在线 | 理论片中文字幕 | 超碰人人人人 | a级一级片| 成人一区二区在线 | 爱福利视频网 | 亚洲一区二区 | 伊人在线视频 | 日韩在线观看中文字幕 | 国产成人精品亚洲男人的天堂 | 久久精品免费观看 | 97视频免费| 秋霞av在线 | 日本久久久久 | 久久99精品久久久久久琪琪 | 懂色av蜜臀av粉嫩av分享 | 成年人视频在线播放 | 三年中文在线看免费观看 | 91免费国产 | 午夜成人免费视频 | 午夜性福利 | 男人的天堂在线 |