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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4317|回復: 6
收起左側

二手STC15F104E單片機溫度器升級

[復制鏈接]
ID:358930 發表于 2018-11-20 23:02 | 顯示全部樓層 |閱讀模式
某寶淘了個單片機溫度計,沒顯示,沒代碼,沒參數,沒有圖,除了便宜,再沒優點,幾乎就殼子能用,老板按殼子價出的。自用手電透光法畫出了單片機定意圖,弄了兩程序,成功驅動。

電路原理圖如下:
20181119_223407.jpg

20181120_001002.jpg 20181120_001219.jpg
  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

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1030595 發表于 2023-12-26 11:15 | 顯示全部樓層
厲害了我的果,8個腳mcu,玩出了最多的功能!
回復

使用道具 舉報

ID:1030595 發表于 2023-12-26 10:38 | 顯示全部樓層
如何接顯示屏?
回復

使用道具 舉報

ID:412814 發表于 2019-1-25 14:40 | 顯示全部樓層
厲害了,研究下。謝謝樓主
回復

使用道具 舉報

ID:358930 發表于 2018-12-27 04:43 | 顯示全部樓層
三種,18B20和DHT12和LM35A
原裝的是LM35A論壇我發過原裝LM35A測溫度的,很好用。
回復

使用道具 舉報

ID:442950 發表于 2018-12-25 18:13 | 顯示全部樓層
這傳感器用的什么的
回復

使用道具 舉報

ID:358930 發表于 2018-11-20 23:07 | 顯示全部樓層
樣子不錯,沒科技感,主要沒源代碼不受控制,只能升級了。
15427262601830.33752576610976504.jpg
15427262601830.33752576610976504.jpg
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美国产一区二区 | www免费视频 | 久久成人18免费网站 | 午夜噜噜噜 | 日韩毛片在线视频 | 亚洲天堂免费 | 成人免费毛片片v | 精品欧美一区二区精品久久久 | 日本一二三区在线观看 | 一级黄色毛片 | 麻豆国产一区二区三区四区 | 久久久久久久香蕉 | 亚洲一区二区中文字幕在线观看 | 日韩欧美天堂 | 亚洲字幕在线观看 | 精区3d动漫一品二品精区 | 四虎最新视频 | 影音先锋欧美资源 | 欧美第一页 | av手机免费在线观看 | 国产三级精品视频 | 亚洲精品久久久久久一区二区 | 欧美日韩中 | 久久精品二区 | 日日夜夜免费精品视频 | 综合激情网 | 在线中文一区 | 国产精品99久久久久久动医院 | 91在线精品秘密一区二区 | 成人欧美一区二区三区在线播放 | 国产免费一区 | 免费观看一级视频 | 国产区一区二区三区 | 亚洲精品在线看 | 欧美一区二区综合 | 九色在线观看 | 九九热精品在线 | 亚洲国产精品视频一区 | 亚洲视频区 | 国产精品入口麻豆www | 视频在线一区二区 |