冰楓論壇

 找回密碼
 立即註冊
ads_sugarbook
搜索
查看: 513|回覆: 0
打印 上一主題 下一主題

[討論] PIC16F72和74HC30D進行溫度數據採集

[複製鏈接]

2609

主題

0

好友

949

積分

高級會員

Rank: 4

UID
373967
帖子
7617
主題
2609
精華
0
積分
949
楓幣
2027
威望
928
存款
26000
贊助金額
0
推廣
0
GP
1205
閱讀權限
50
在線時間
414 小時
註冊時間
2023-1-12
最後登入
2024-5-25

2023端午節紀念勳章 2023中秋節紀念勳章 2023聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-4-11 05:28:11 |只看該作者 |倒序瀏覽
您需要以下零件:

溫度傳感器(例如LM35)
電容(用於穩壓電源)
電阻(用於校準傳感器)
電位器(用於調整採樣頻率)
七段數碼管(用於顯示溫度數據)
電路板、杜邦線等

以下是一個簡單的PIC16F72程序,用於從LM35溫度傳感器採集溫度數據,並將其顯示在七段數碼管上。

此程序需要74HC30D作為數字開關來控制七段數碼管的顯示。


#include <16F72.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

#define digit_a pin_c0
#define digit_b pin_c1
#define digit_c pin_c2
#define digit_d pin_c3
#define digit_e pin_c4
#define digit_f pin_c5
#define digit_g pin_c6
#define dp pin_c7

void main() {
   float temperature = 0;
   int digit[4] = {0, 0, 0, 0}; // 數碼管的4個數字
   int digit_index = 0;
   int i = 0;
   
   setup_adc_ports(AN0); // 使用AN0口連接溫度傳感器
   setup_adc(ADC_CLOCK_INTERNAL); // 設置ADC時鐘
   set_adc_channel(0); // 設置ADC通道
   delay_ms(50); // 延時等待傳感器穩定
   
   while(TRUE) {
      temperature = (float)read_adc() * 5 / 1024 / 0.01; // 讀取溫度傳感器的值
      
      if(temperature >= 100) {
         temperature = 99.9; // 超過99.9度,顯示99.9度
      }
      
      digit[0] = (int)temperature / 10; // 獲取十位數
      digit[1] = (int)temperature % 10; // 獲取個位數
      digit[2] = 0; // 小數點
      digit[3] = 0; // 空位
      
      for(i = 0; i < 100; i++) { // 等待一段時間
         // 控制74HC30D數字開關
         output_bit(digit_a, bit_test(digit[digit_index], 0));
         output_bit(digit_b, bit_test(digit[digit_index], 1));
         output_bit(digit_c, bit_test(digit[digit_index], 2));
         output_bit(digit_d, bit_test(digit[digit_index], 3));
         output_bit(digit_e, bit_test(digit[digit_index], 4));
         output_bit(digit_f, bit_test(digit[digit_index], 5));
         output_bit(digit_g, bit_test(digit[digit_index], 6));
         output_bit(dp, bit_test(digit[digit_index], 7));
         delay_us(500); // 控制刷新速度
      }
      
      digit_index++;
      if(digit_index > 3) {
         digit_index = 0;
      }
   }
}
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1骰子
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-5-25 12:16

回頂部