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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 9621|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

Si7021廢棄的LCD19264液晶制作溫濕度顯示,實(shí)物&單片機(jī)代碼開源

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
準(zhǔn)備整采用19264液晶顯示的甲醛、萬年歷、溫濕度桌面時(shí)鐘,發(fā)現(xiàn)家里有閑置的建行19264可用。
參考網(wǎng)絡(luò)上的程序,自己做一定調(diào)整,先放出溫濕度顯示的源碼,供大家欣賞,已做分享和記錄。

實(shí)物圖:


傳感器真身



溫濕度顯示



背部接線


下雨后的車內(nèi)數(shù)據(jù)

假想主界面1:


液晶驅(qū)動(dòng)UC1604c
lcd引腳線序
1 升壓輸出
2 電容1
3 電容2
4 電容2
5 電容1
6 vcc
7 gnd
8 cs片選
9 cd(rs)寄存器選擇
10 rst復(fù)位
11 sck
12 sda
不同批次的液晶屏,引腳排列可能不同。前五個(gè)引腳就不說了,看電路板很容易看出來,vcc和gnd用萬用表量一下就行了,與那個(gè)8引腳芯片的5、6腳相連的肯定是sck和sda,剩下3個(gè)引腳的就算順序全部打亂,排列組合只用6種,全都試一遍,絕對(duì)能得出結(jié)論。

單片機(jī)源程序如下:
  1. #include "si7021.h"
  2. #include <intrins.h>
  3. #include <stc15.h>

  4. void delay_x_us ( void )//(1+2)*60=180指令周期 180us
  5. {
  6.         char x=60;
  7.         for ( ; x>0; x-- )
  8.                 _nop_();
  9. }      
  10.                                                          
  11. //函數(shù)名稱: start_i2c
  12. void start_i2c ( void )
  13. {
  14.          SI7021_SDA_HIGH();  
  15.         delay_x_us();
  16.         SI7021_SCLK_HIGH();   
  17.         delay_x_us();     
  18.         SI7021_SDA_LOW();   
  19.         delay_x_us();                 
  20.         SI7021_SCLK_LOW();
  21.         delay_x_us();
  22. }
  23. //函數(shù)名稱: stop_i2c
  24. void stop_i2c ( void )
  25. {
  26.         SI7021_SDA_LOW();
  27.         delay_x_us();  
  28.         SI7021_SCLK_HIGH();
  29.         delay_x_us();
  30.         SI7021_SDA_HIGH();
  31.         delay_x_us();
  32. }
  33. //函數(shù)名稱: send_1byte
  34. //函數(shù)功能: 寫一個(gè)字節(jié)到si7021芯片
  35. bit send_1byte ( unsigned char send_data )
  36. {
  37.         unsigned char bit_cnt;
  38.         bit        b_ack=0;
  39.         unsigned char i=200;
  40.         
  41.         for( bit_cnt=0; bit_cnt<8; bit_cnt++ )
  42.         {
  43.              SI7021_SCLK_LOW();
  44.              if ( (send_data<<bit_cnt)&0x80 )
  45.                          SI7021_SDA_HIGH();  
  46.              else SI7021_SDA_LOW();  
  47.                  delay_x_us();              
  48.              SI7021_SCLK_HIGH();      
  49.              delay_x_us();           
  50.         }

  51.         delay_x_us();
  52.         SI7021_SCLK_LOW();
  53.         SI7021_SDA_HIGH();      
  54.         delay_x_us();
  55.         delay_x_us();
  56.         SI7021_SCLK_HIGH();
  57.         delay_x_us();
  58.          
  59.         i = 200;
  60.         while ( i-- )
  61.         {
  62.                 delay_x_us();
  63.                 if(SI7021_SDA==0)
  64.                 {
  65.                         b_ack = 1;
  66.                         break;
  67.                 }  
  68.         }

  69.         if ( i == 0 ) b_ack = 0;
  70.                
  71.         SI7021_SCLK_LOW();
  72.         delay_x_us ();

  73.         return b_ack;
  74. }

  75. //函數(shù)名稱: read_1byte
  76. //函數(shù)功能: 從si7021讀取一個(gè)字節(jié)
  77. unsigned char read_1byte ( void )
  78. {
  79.         unsigned char read_value=0;
  80.         unsigned char bit_cnt;

  81.         for ( bit_cnt=0; bit_cnt<8; bit_cnt++ )
  82.         {         
  83.            SI7021_SCLK_HIGH();      
  84.            delay_x_us();
  85.                  read_value <<= 1;

  86.            if ( SI7021_SDA==1 )
  87.                          read_value +=1;

  88.            SI7021_SCLK_LOW();
  89.         }
  90.         return (read_value);
  91. }
  92. //函數(shù)名稱:master_i2c_ack
  93. //函數(shù)功能:MCU應(yīng)答從器件
  94. void master_i2c_ack ( void )
  95. {
  96.         SI7021_SDA_LOW();   
  97.         delay_x_us();
  98.         SI7021_SCLK_LOW();
  99.         delay_x_us();      
  100.         SI7021_SCLK_HIGH();
  101.         delay_x_us();
  102.         SI7021_SCLK_LOW();   
  103.         delay_x_us();
  104.         SI7021_SDA_HIGH();
  105.         delay_x_us();
  106. }
  107. //函數(shù)名稱:master_i2c_noack
  108. //函數(shù)功能:MCU不發(fā)送應(yīng)答信號(hào)到從器件
  109. void master_i2c_noack ( void )
  110. {
  111.         SI7021_SDA_HIGH();
  112.         delay_x_us();      
  113.         SI7021_SCLK_HIGH();
  114.         delay_x_us();
  115.         SI7021_SCLK_LOW();
  116. }
  117. //函數(shù)名稱:measure_si7021
  118. //函數(shù)功能:HOLD MASTER模式下讀取溫濕度
  119. int measure_si7021 ( unsigned char model)
  120. {
  121.         int i,reda;
  122.         //發(fā)起始信號(hào)
  123.         start_i2c();               
  124.         if ( 0== send_1byte ( SALVE_ADDR ) )//寫slave addr
  125.         {
  126.                 return 0;
  127.         }

  128.         if ( 0 == send_1byte( model ) )//measure cmd
  129.         {
  130.                 return 0;
  131.         }
  132.         //默認(rèn)濕度轉(zhuǎn)換時(shí)間為10~12ms 溫度 6~10ms  
  133.         i = 600;        //600*180=108ms        非準(zhǔn)確延時(shí)
  134.         while ( i-- )
  135.                 delay_x_us ();        //溫濕度數(shù)據(jù)轉(zhuǎn)換延時(shí)等待(延時(shí)參照手冊(cè),此處僅為測(cè)試)

  136.         start_i2c ();                                 //重新發(fā)起始信號(hào)
  137.         if ( 0==send_1byte(SALVE_ADDR+1) ) //讀命令
  138.         {

  139.                 return 0;
  140.         }

  141.         reda= read_1byte ();//讀取溫濕度的高位字節(jié)
  142.         //mcu應(yīng)答
  143.         master_i2c_ack ();
  144.         reda=reda*256+read_1byte ();//讀取溫濕度的低位字節(jié)數(shù)據(jù),與高位進(jìn)行加和;
  145.         //mcu無應(yīng)答
  146.         master_i2c_noack ();
  147.         
  148.         //mcu應(yīng)答->read_1byte()讀取校驗(yàn)值->mcu無應(yīng)答

  149.         //發(fā)送停止位
  150. //        value->uint = 0x7890;
  151.         stop_i2c ();
  152.         if(model==TEMP_HOLD_MASTER)
  153.         {
  154.                 //return reda;
  155.                 reda=10*((float)(175.72*(float)reda)/65536-46.85);
  156.                
  157.         }else if(model==HUMI_HOLD_MASTER)
  158.                 reda=10*((float)(125*(float)reda)/65536-6);
  159.         return reda;
  160. }
復(fù)制代碼

所有資料51hei提供下載,Keil工程源碼:
溫濕度19264顯示.zip (66.84 KB, 下載次數(shù): 107)
類似主題:
http://m.zg4o1577.cn/bbs/dpj-27356-1.html
http://m.zg4o1577.cn/bbs/dpj-190973-1.html
http://m.zg4o1577.cn/bbs/dpj-35520-1.html
http://m.zg4o1577.cn/bbs/dpj-213269-1.html
http://m.zg4o1577.cn/bbs/dpj-186003-1.html
http://m.zg4o1577.cn/bbs/dpj-59981-1.html
http://m.zg4o1577.cn/bbs/dpj-129947-1.html
http://m.zg4o1577.cn/bbs/dpj-202400-1.html
http://m.zg4o1577.cn/bbs/dpj-88462-1.html
http://m.zg4o1577.cn/bbs/dpj-36379-1.html
http://m.zg4o1577.cn/bbs/dpj-80238-1.html
http://m.zg4o1577.cn/bbs/dpj-178374-1.html
http://m.zg4o1577.cn/bbs/dpj-151707-1.html
http://m.zg4o1577.cn/bbs/dpj-155801-1.html

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:447180 發(fā)表于 2020-5-12 12:39 | 只看該作者
LCD屏,還是OLED屏?
回復(fù)

使用道具 舉報(bào)

板凳
ID:205015 發(fā)表于 2020-8-12 07:45 | 只看該作者
lcd的。
回復(fù)

使用道具 舉報(bào)

地板
ID:392485 發(fā)表于 2023-11-24 09:20 | 只看該作者
手上正好有一個(gè),下載看看學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

5#
ID:1030595 發(fā)表于 2023-12-22 12:03 | 只看該作者
如何移植到stm32上,就可以了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久亚洲 | 狠狠色综合久久婷婷 | 亚洲精品性视频 | 亚洲欧洲一区 | 欧美一级三级 | 久久亚洲一区二区 | 在线观看中文字幕 | 超碰最新在线 | 欧美一级黄色片免费观看 | 日韩精品在线一区 | 精品视频一区二区 | 亚洲欧美在线视频 | 91一区二区三区在线观看 | 91视频进入 | 欧美日韩激情 | 最新国产视频 | 国产真实精品久久二三区 | 成人影院在线观看 | 鲁一鲁资源影视 | 中文字幕男人的天堂 | 日韩精品一区二区三区中文在线 | 亚洲欧美日韩电影 | 午夜精品久久久久久久久久久久 | 高清18麻豆| 国产一区二区三区在线观看免费 | 丁香综合 | 欧美视频在线一区 | 欧美日韩国产精品一区 | 亚洲欧美激情精品一区二区 | 亚洲国产欧美91 | 在线免费观看日本视频 | 日韩精品视频网 | 91麻豆精品国产91久久久久久 | 久久久久久久一区二区三区 | 黄色毛片视频 | 亚洲综合资源 | 亚洲成人一区二区 | 久久久蜜桃 | 久久国产精品精品国产色婷婷 | 亚洲精品9999久久久久 | 欧美精品久久久 |