欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

有大佬能幫我看看51的溫度和ph測不出來是怎么回事

查看數(shù): 725 | 評論數(shù): 1 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2025-4-21 16:22

正文摘要:

#include <reg51.h> #include <intrins.h> // DS18B20???? sbit DS18B20_DQ = P3^7; // ADC0832???? sbit ADC_CLK = P1^0; sbit ADC_DO  = P1^1; sbit ADC_CS  = P1^2; / ...

回復

ID:404160 發(fā)表于 2025-4-22 15:42
電路圖底部那三只按鍵分別連在 P3.2、P3.3、P3.4 上(INT0、INT1、T0)
代碼中卻寫成:
sbit KEY_SET = P3^1;
sbit KEY_ADD = P3^2;
sbit KEY_SUB = P3^3;
應該改為:
sbit KEY_SET = P3^2;
sbit KEY_ADD = P3^3;
sbit KEY_SUB = P3^4;

電路圖上 ADC0832 的 DI、DO 是分開的兩根線:

DI(寫入控制位) 接在 P1.1

DO(讀出 A/D 數(shù)據(jù)) 接在 P1.3

代碼中卻只定義了一個 ADC_DO = P1^1;,既用來寫又用來讀:

sbit ADC_CLK = P1^0;
sbit ADC_DO  = P1^1;   // 實際應是 ADC_DI
sbit ADC_CS  = P1^2;
// 缺少: sbit ADC_DO = P1^3;
改法:

sbit ADC_CLK = P1^0;
sbit ADC_DI  = P1^1;    // 寫控制位
sbit ADC_DO  = P1^3;    // 讀數(shù)據(jù)位
sbit ADC_CS  = P1^2;
同時,ADC0832 的數(shù)據(jù)輸出前還有兩個“空”位需要丟棄(datasheet 要求在 SGL/ODD 之后再時鐘兩次),你的 for(i=0;i<8;i++) 開始讀時實際上少跑了這兩個時鐘,把數(shù)據(jù)錯排了。
pH 閾值沒有被顯示出來
你在 Key_Process() 里調(diào)整了 ph_high/ph_low,但主循環(huán)里并沒有把它們用 LCD_ShowValue() 打出來,用戶按鍵調(diào)節(jié)時屏幕看不到反饋。

建議在第二行或第三行再加兩處 LCD_ShowValue(),把當前的 pH 高低閾值實時顯示。

(次要)DS18B20 的時序延時過長
你的 Delayms(1) 是約 1 ms,但 DS18B20 寫“1”位用的是低電平保持 1~15 μs(而你保持了 1 ms)、寫“0”位要保持 60~120 μs(1 ms 也 OK)。

雖然過長的延時通常設備“能通用”,但如果后面出現(xiàn)不穩(wěn)定,建議改成用us 級的延時子函數(shù)更精準。

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

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

快速回復 返回頂部 返回列表