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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9460|回復: 4
打印 上一主題 下一主題
收起左側

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

  [復制鏈接]
跳轉到指定樓層
樓主
準備整采用19264液晶顯示的甲醛、萬年歷、溫濕度桌面時鐘,發現家里有閑置的建行19264可用。
參考網絡上的程序,自己做一定調整,先放出溫濕度顯示的源碼,供大家欣賞,已做分享和記錄。

實物圖:


傳感器真身



溫濕度顯示



背部接線


下雨后的車內數據

假想主界面1:


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

單片機源程序如下:
  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. //函數名稱: 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. //函數名稱: 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. //函數名稱: send_1byte
  34. //函數功能: 寫一個字節到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. //函數名稱: read_1byte
  76. //函數功能: 從si7021讀取一個字節
  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. //函數名稱:master_i2c_ack
  93. //函數功能:MCU應答從器件
  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. //函數名稱:master_i2c_noack
  108. //函數功能:MCU不發送應答信號到從器件
  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. //函數名稱:measure_si7021
  118. //函數功能:HOLD MASTER模式下讀取溫濕度
  119. int measure_si7021 ( unsigned char model)
  120. {
  121.         int i,reda;
  122.         //發起始信號
  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.         //默認濕度轉換時間為10~12ms 溫度 6~10ms  
  133.         i = 600;        //600*180=108ms        非準確延時
  134.         while ( i-- )
  135.                 delay_x_us ();        //溫濕度數據轉換延時等待(延時參照手冊,此處僅為測試)

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

  139.                 return 0;
  140.         }

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

  149.         //發送停止位
  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. }
復制代碼

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

評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

地板
ID:392485 發表于 2023-11-24 09:20 | 只看該作者
手上正好有一個,下載看看學習學習。
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久午夜精品福利一区二区 | 国产精品久久久久久久久久免费看 | 精品久久久久久久 | av网站在线播放 | 国产女人与拘做视频免费 | 亚洲另类视频 | 精品无码久久久久久国产 | 久久激情网 | 一色一黄视频 | 久久久久黑人 | 亚洲精品一区二区在线观看 | 一级高清免费毛片 | av一区二区三区四区 | 国产精品国产精品国产专区不卡 | 色狠狠桃花综合 | av天天看| 日韩av高清在线 | 国产一区二区三区免费 | 久久国产一区二区三区 | 亚洲成人黄色 | av国产精品 | 国产农村妇女毛片精品久久麻豆 | 日日干夜夜草 | 妖精视频一区二区三区 | 在线一区| 免费国产网站 | 午夜视频网站 | 亚洲第1页 | 有码在线 | 欧日韩在线观看 | 精品久久久久久久久久久久 | 色又黄又爽网站www久久 | 国产在线不卡 | 日韩精品免费 | 精品国产乱码久久久久久蜜臀 | 91中文视频 | 久久午夜视频 | 国产精品福利网站 | 精品久久久久久久久久久 | 国产成人高清在线观看 | 亚洲xxxxx|