標(biāo)題: 51單片機(jī)用PCF8591做個(gè)簡(jiǎn)易電壓表制作 附程序 [打印本頁(yè)]

作者: 神奇的MCU    時(shí)間: 2017-3-2 11:31
標(biāo)題: 51單片機(jī)用PCF8591做個(gè)簡(jiǎn)易電壓表制作 附程序
用很簡(jiǎn)單的方法制作一個(gè)51單片機(jī)電壓表,能測(cè)量30V以下的直流電壓,沒有精確的電壓表,無(wú)法測(cè)定其精度,但是用普通的萬(wàn)用表測(cè)試比較之后發(fā)現(xiàn)其精度還是不錯(cuò)的,其精度主要是看其供給的參考電壓的精度,AD轉(zhuǎn)換的位數(shù),還有分壓電阻的精度。但是用于普通的電壓測(cè)量還是不錯(cuò)的。




可以自行調(diào)整分壓電阻的大小和改動(dòng)電壓算法參數(shù)可以直接適應(yīng)其他量程的電壓測(cè)量



源代碼:
  1. #include<reg52.h>    //包含單片機(jī)寄存器的頭文件
  2. #include <intrins.h>

  3. #define ulong unsigned long
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define LCD1602_PORT P2          //用LED1602_PORT表示P2總線接口
  7. #define  PCF8591 0x90    //PCF8591 地址
  8. #define  NOP()   _nop_()   /* 定義空指令 */
  9. #define  _Nop()  _nop_()   /*定義空指令*/

  10. // 位定義
  11. sbit SCL=P1^0;       //I2C  時(shí)鐘
  12. sbit SDA=P1^1;       //I2C  數(shù)據(jù)
  13. sbit LCD1602_RS = P0^5;      //定義1602液晶顯示屏的數(shù)據(jù)/命令選擇端,數(shù)據(jù)/命令(H/L)
  14. sbit LCD1602_RW = P0^6;      //定義1602液晶顯示屏的讀/寫選擇端,讀/寫(H/L)
  15. sbit LCD1602_EN = P0^7;      //定義1602液晶顯示屏的使能端
  16. bit ack;                 /*應(yīng)答標(biāo)志位*/

  17. // 變量定義
  18. uchar AD_CHANNEL;
  19. ulong xdata  LedOut[8];      //單片機(jī)內(nèi)部存取器
  20. ulong  v,a,ss;
  21. uchar date;

  22. // 函數(shù)申明
  23. extern bit ack;        //起動(dòng)總線函數(shù)
  24. extern void Start_I2c();    //結(jié)束總線函數(shù)  
  25. extern void Stop_I2c();        //應(yīng)答子函數(shù)
  26. extern void Ack_I2c(bit a);        //字節(jié)數(shù)據(jù)發(fā)送函數(shù)
  27. extern void  SendByte(uchar  c);    //有子地址發(fā)送多字節(jié)數(shù)據(jù)函數(shù)               
  28. extern bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no) ;    //無(wú)子地址發(fā)送多字節(jié)數(shù)據(jù)函數(shù)   
  29. extern bit ISendStrExt(uchar sla,uchar *s,uchar no);    //無(wú)子地址讀字節(jié)數(shù)據(jù)函數(shù)               
  30. extern uchar RcvByte();

  31. void LCD1602_delay_ms(uint n);
  32. void LCD1602_write_com(uchar com);
  33. void LCD1602_write_data(ulong dat);
  34. void LCD1602_write_word(uchar *s);
  35. void Init_LCD1602();

  36. bit ISendByte(uchar sla,uchar c);
  37. uchar IRcvByte(uchar sla);

  38. //MS延時(shí)函數(shù)(12M晶振下測(cè)試)
  39. void delay_ms(uint n)   
  40. {
  41.     unsigned int  i,j;
  42.     for(i=0;i<n;i++)
  43.         for(j=0;j<123;j++);
  44. }

  45. //寫指令
  46. void LCD1602_write_com(uchar com)
  47. {
  48.     LCD1602_RS = 0;         //1602液晶顯示屏的數(shù)據(jù)/命令選擇端置0,數(shù)據(jù)/命令(H/L),此時(shí)選擇寫命令操作
  49.     delay_ms(1);
  50.     LCD1602_EN = 1;         //使能,也就是打開液晶接收數(shù)據(jù)命令的通道
  51.     LCD1602_PORT = com;     //把命令送給P2口
  52.     delay_ms(1);
  53.     LCD1602_EN = 0;
  54. }

  55. //寫數(shù)據(jù)
  56. void LCD1602_write_data(ulong dat)
  57. {
  58.     LCD1602_RS = 1;         //1602液晶顯示屏的數(shù)據(jù)/命令選擇端置0,數(shù)據(jù)/命令(H/L),此時(shí)選擇寫數(shù)據(jù)操作
  59.     delay_ms(1);   
  60.     LCD1602_PORT = dat;     //把數(shù)據(jù)送給P2口
  61.     LCD1602_EN = 1;
  62.     delay_ms(1);
  63.     LCD1602_EN = 0;
  64. }

  65. //連續(xù)寫字符
  66. void LCD1602_write_word(uchar *s)
  67. {
  68.     while(*s>0)
  69.     {
  70.         LCD1602_write_data(*s);
  71.         s++;
  72.     }
  73. }

  74. //1602初始化函數(shù)
  75. void Init_LCD1602()                    
  76. {
  77.     LCD1602_EN = 0;
  78.     LCD1602_RW = 0;                        //設(shè)置為寫狀態(tài)
  79.     LCD1602_write_com(0x38);            //顯示模式設(shè)定
  80.     LCD1602_write_com(0x0c);            //開關(guān)顯示、光標(biāo)有無(wú)設(shè)置、光標(biāo)閃爍設(shè)置
  81.     LCD1602_write_com(0x06);            //寫一個(gè)字符后指針加一
  82.     LCD1602_write_com(0x01);            //清屏指令
  83. }
  84. /*******************************************************************
  85.                      起動(dòng)總線函數(shù)               
  86. 函數(shù)原型: void  Start_I2c();  
  87. 功能:     啟動(dòng)I2C總線,即發(fā)送I2C起始條件.  
  88. ********************************************************************/
  89. void Start_I2c()
  90. {
  91.   SDA=1;         /*發(fā)送起始條件的數(shù)據(jù)信號(hào)*/
  92.   _Nop();
  93.   SCL=1;
  94.   _Nop();        /*起始條件建立時(shí)間大于4.7us,延時(shí)*/
  95.   _Nop();
  96.   _Nop();
  97.   _Nop();
  98.   _Nop();   
  99.   SDA=0;         /*發(fā)送起始信號(hào)*/
  100.   _Nop();        /* 起始條件鎖定時(shí)間大于4μs*/
  101.   _Nop();
  102.   _Nop();
  103.   _Nop();
  104.   _Nop();      
  105.   SCL=0;       /*鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */
  106.   _Nop();
  107.   _Nop();
  108. }

  109. /*******************************************************************
  110.                       結(jié)束總線函數(shù)               
  111. 函數(shù)原型: void  Stop_I2c();  
  112. 功能:     結(jié)束I2C總線,即發(fā)送I2C結(jié)束條件.  
  113. ********************************************************************/
  114. void Stop_I2c()
  115. {
  116.   SDA=0;      /*發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào)*/
  117.   _Nop();       /*發(fā)送結(jié)束條件的時(shí)鐘信號(hào)*/
  118.   SCL=1;      /*結(jié)束條件建立時(shí)間大于4μs*/
  119.   _Nop();
  120.   _Nop();
  121.   _Nop();
  122.   _Nop();
  123.   _Nop();
  124.   SDA=1;      /*發(fā)送I2C總線結(jié)束信號(hào)*/
  125.   _Nop();
  126.   _Nop();
  127.   _Nop();
  128.   _Nop();
  129. }

  130. /*******************************************************************
  131.                  字節(jié)數(shù)據(jù)發(fā)送函數(shù)               
  132. 函數(shù)原型: void  SendByte(UCHAR c);
  133. 功能:     將數(shù)據(jù)c發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答,并對(duì)
  134.           此狀態(tài)位進(jìn)行操作.(不應(yīng)答或非應(yīng)答都使ack=0)     
  135.            發(fā)送數(shù)據(jù)正常,ack=1; ack=0表示被控器無(wú)應(yīng)答或損壞。
  136. ********************************************************************/
  137. void  SendByte(uchar  c)
  138. {
  139. uchar  BitCnt;

  140. for(BitCnt=0;BitCnt<8;BitCnt++)  /*要傳送的數(shù)據(jù)長(zhǎng)度為8位*/
  141.     {
  142.      if((c<<BitCnt)&0x80)SDA=1;   /*判斷發(fā)送位*/
  143.        else  SDA=0;               
  144.      _Nop();
  145.      SCL=1;               /*置時(shí)鐘線為高,通知被控器開始接收數(shù)據(jù)位*/
  146.       _Nop();
  147.       _Nop();             /*保證時(shí)鐘高電平周期大于4μs*/
  148.       _Nop();
  149.       _Nop();
  150.       _Nop();         
  151.      SCL=0;
  152.     }
  153.    
  154.     _Nop();
  155.     _Nop();
  156.     SDA=1;                /*8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位*/
  157.     _Nop();
  158.     _Nop();   
  159.     SCL=1;
  160.     _Nop();
  161.     _Nop();
  162.     _Nop();
  163.     if(SDA==1)ack=0;     
  164.        else ack=1;        /*判斷是否接收到應(yīng)答信號(hào)*/
  165.     SCL=0;
  166.     _Nop();
  167.     _Nop();
  168. }

  169. /*******************************************************************
  170.                  字節(jié)數(shù)據(jù)接收函數(shù)               
  171. 函數(shù)原型: UCHAR  RcvByte();
  172. 功能:        用來接收從器件傳來的數(shù)據(jù),并判斷總線錯(cuò)誤(不發(fā)應(yīng)答信號(hào)),
  173.           發(fā)完后請(qǐng)用應(yīng)答函數(shù)應(yīng)答從機(jī)。  
  174. ********************************************************************/   
  175. uchar   RcvByte()
  176. {
  177.   uchar  retc;
  178.   uchar  BitCnt;
  179.   
  180.   retc=0;
  181.   SDA=1;                     /*置數(shù)據(jù)線為輸入方式*/
  182.   for(BitCnt=0;BitCnt<8;BitCnt++)
  183.       {
  184.         _Nop();           
  185.         SCL=0;                  /*置時(shí)鐘線為低,準(zhǔn)備接收數(shù)據(jù)位*/
  186.         _Nop();
  187.         _Nop();                 /*時(shí)鐘低電平周期大于4.7μs*/
  188.         _Nop();
  189.         _Nop();
  190.         _Nop();
  191.         SCL=1;                  /*置時(shí)鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效*/
  192.         _Nop();
  193.         _Nop();
  194.         retc=retc<<1;
  195.         if(SDA==1)retc=retc+1;  /*讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中 */
  196.         _Nop();
  197.         _Nop();
  198.       }
  199.   SCL=0;   
  200.   _Nop();
  201.   _Nop();
  202.   return(retc);
  203. }

  204. /********************************************************************
  205.                      應(yīng)答子函數(shù)
  206. 函數(shù)原型:  void Ack_I2c(bit a);
  207. 功能:      主控器進(jìn)行應(yīng)答信號(hào)(可以是應(yīng)答或非應(yīng)答信號(hào),由位參數(shù)a決定)
  208. ********************************************************************/
  209. void Ack_I2c(bit a)
  210. {
  211.   if(a==0)SDA=0;              /*在此發(fā)出應(yīng)答或非應(yīng)答信號(hào) */
  212.   else SDA=1;
  213.   _Nop();
  214.   _Nop();
  215.   _Nop();      
  216.   SCL=1;
  217.   _Nop();
  218.   _Nop();                    /*時(shí)鐘低電平周期大于4μs*/
  219.   _Nop();
  220.   _Nop();
  221.   _Nop();  
  222.   SCL=0;                     /*清時(shí)鐘線,鉗住I2C總線以便繼續(xù)接收*/
  223.   _Nop();
  224.   _Nop();   
  225. }


  226. /*******************************************************************
  227. ADC發(fā)送字節(jié)[命令]數(shù)據(jù)函數(shù)               
  228. *******************************************************************/
  229. bit ISendByte(uchar sla,uchar c)
  230. {
  231.    Start_I2c();              //啟動(dòng)總線
  232.    SendByte(sla);            //發(fā)送器件地址
  233.    if(ack==0)return(0);
  234.    SendByte(c);              //發(fā)送數(shù)據(jù)
  235.    if(ack==0)return(0);
  236.    Stop_I2c();               //結(jié)束總線
  237.    return(1);
  238. }

  239. /*******************************************************************
  240. ADC讀字節(jié)數(shù)據(jù)函數(shù)               
  241. *******************************************************************/
  242. uchar IRcvByte(uchar sla)
  243. {  
  244.    uchar c;
  245.    Start_I2c();          //啟動(dòng)總線
  246.    SendByte(sla+1);      //發(fā)送器件地址
  247.    if(ack==0)return(0);
  248.    c=RcvByte();          //讀取數(shù)據(jù)0
  249.    Ack_I2c(1);           //發(fā)送非就答位
  250.    Stop_I2c();           //結(jié)束總線
  251.    return(c);
  252. }

  253. //    字符顯示函數(shù)
  254. void Display()
  255. {
  256.     LCD1602_write_com(0x80);            //指針設(shè)置,指向1602液晶第一行第一列
  257.     LCD1602_write_word("Voltage: ");
  258.     LCD1602_write_com(0x80+0x0e);            //指針設(shè)置,指向1602液晶第一行第一列
  259.     LCD1602_write_word(" V");
  260. }

  261. //實(shí)時(shí)電壓顯示函數(shù)
  262. void Display_Voltage()
  263. {
  264.     ss=(v*a);
  265.     ss=((ss*6)/100);
  266.     LCD1602_write_com(0x80+0x09);    //1602液晶屏命令操作,表示起始顯示位置為第二行第7列   
  267.     LCD1602_write_data(ss%10000000/1000000 + 0x30);
  268.     LCD1602_write_data(ss%1000000/100000 + 0x30);
  269.     LCD1602_write_data('.');
  270.     LCD1602_write_data(ss%100000/10000 + 0x30);
  271.     LCD1602_write_data(ss%10000/1000 + 0x30);
  272. //    LCD1602_write_data(ss%1000/100 + 0x30);
  273. //    LCD1602_write_data('.');
  274. //    LCD1602_write_data(ss%100/10 + 0x30);
  275. //    LCD1602_write_data(ss%10/1 + 0x30);
  276. }
  277. //******************************************************************/
  278. main()
  279. {  
  280.     Init_LCD1602(); //初始化LCD1602
  281.     Display();
  282.     a=50000000/255;
  283.         while(1)
  284.     {
  285.         ISendByte(PCF8591,0x41);
  286.         v=IRcvByte(PCF8591);      
  287.         Display_Voltage();         
  288.     }      
  289. }

復(fù)制代碼


作者: lehigh    時(shí)間: 2017-5-4 00:15
仿真怎么沒給
作者: estbon    時(shí)間: 2017-6-18 15:35
非常感謝,正在學(xué)習(xí)PCF8591的使用
作者: 賽哥哥    時(shí)間: 2017-7-28 13:00
對(duì)我?guī)椭艽?nbsp; 學(xué)習(xí)了
作者: class288    時(shí)間: 2017-10-12 22:14
學(xué)習(xí)了
作者: XXXZZZ    時(shí)間: 2017-11-23 20:45
為什么顯示屏顯示的都是0啊,都不跳

作者: 123954533    時(shí)間: 2017-11-24 19:15
學(xué)習(xí)了
作者: GUOXUAN    時(shí)間: 2017-11-25 20:55
老師的電壓表相當(dāng)先進(jìn).
能進(jìn)一步升級(jí)嗎?  制做液晶玻璃顯示屏.51MCU做成OTP COB固定在PCB上,用斑馬線連接顯示屏.這樣成工業(yè)品.批量生產(chǎn).
作者: jms208    時(shí)間: 2017-11-29 18:14
對(duì)我?guī)椭艽?nbsp; 學(xué)習(xí)了.....
作者: q2063304    時(shí)間: 2017-12-4 11:25
對(duì)我?guī)椭艽?nbsp; 學(xué)習(xí)了
作者: zhanga9754    時(shí)間: 2017-12-13 17:35
謝謝分享

作者: 簡(jiǎn)近樹    時(shí)間: 2017-12-17 11:52
謝謝分享謝謝啊加兩分吧

作者: CHBO    時(shí)間: 2017-12-18 18:27
謝謝,很給力
作者: 星云體    時(shí)間: 2017-12-20 19:14
樓主大大  ,可以寫這個(gè) —————— PCF8591 +12864 +89s52測(cè)電壓0-30V的程序么?! 好想要!
作者: 姚元紅    時(shí)間: 2017-12-21 15:46
問一下,接線全部按照你的來,為什么顯示器不顯示電壓
作者: 有害朕的刁民    時(shí)間: 2017-12-22 16:01
很好的帖子。寫的很詳細(xì)!
作者: 老王個(gè)    時(shí)間: 2018-1-6 19:59
程序下不了QAQ,,哪位兄弟能給我發(fā)一份。。

作者: 老王個(gè)    時(shí)間: 2018-1-8 14:29
姚元紅 發(fā)表于 2017-12-21 15:46
問一下,接線全部按照你的來,為什么顯示器不顯示電壓

我的也是,zenme 回事,請(qǐng)教
作者: 都市郎    時(shí)間: 2018-1-25 05:05
好資料,感謝樓主
作者: 都市郎    時(shí)間: 2018-1-25 21:29
我也試試看,行不行
作者: chaoself    時(shí)間: 2018-1-26 22:05
非常感謝,正在學(xué)習(xí)PCF8591的使用
作者: owenliang    時(shí)間: 2018-2-25 00:06
謝謝答主,可以用數(shù)碼管試試感覺也很方便
作者: owenliang    時(shí)間: 2018-2-28 10:58
非常感謝答主的分享
作者: Mete0r666    時(shí)間: 2018-4-7 21:50
老王個(gè) 發(fā)表于 2018-1-8 14:29
我的也是,zenme 回事,請(qǐng)教

我的也)是  你的弄好了么

作者: qvchat    時(shí)間: 2018-4-9 17:20
學(xué)習(xí)了~感謝樓主的分享
作者: 炫神    時(shí)間: 2018-4-11 15:04
學(xué)習(xí)了,非常感謝答主的分享
作者: 潘永柯    時(shí)間: 2018-4-15 15:28
學(xué)習(xí)了,感謝分享
作者: 284213945    時(shí)間: 2018-5-4 20:13

學(xué)習(xí)了,感謝分享!!!學(xué)習(xí)了,感謝分享!!!!

作者: bleach    時(shí)間: 2018-5-7 16:04
感謝樓主分享,很給力
作者: bleach    時(shí)間: 2018-5-7 16:05
謝謝分享
作者: bleach    時(shí)間: 2018-5-7 16:05
謝謝分享,正在學(xué)習(xí)這方面的資料
作者: chen0108    時(shí)間: 2018-5-7 16:15
很厲害啊
作者: destiny1    時(shí)間: 2018-5-8 20:50
左下的元件有誰(shuí)告訴一下名稱是什么么
作者: 284213945    時(shí)間: 2018-5-9 21:14
樓主可以仔細(xì)解釋一下位定義的意思嗎,不太明白這幾條代碼啊
作者: 江山風(fēng)月    時(shí)間: 2018-5-11 21:53
感謝樓主
作者: meilidianzhi    時(shí)間: 2018-5-15 08:00
不錯(cuò)值的學(xué)習(xí)
作者: link996    時(shí)間: 2018-5-15 13:39
你好 我按照這個(gè)原理圖焊接了50k與250k的電阻 顯示誤差有些大  2.48v我測(cè)了2.7v 3.26v測(cè)了3.5v 4.96 測(cè)了5.05v 請(qǐng)問如何使用算法調(diào)整精度
作者: Hannahmascot    時(shí)間: 2018-5-21 21:10
estbon 發(fā)表于 2017-6-18 15:35
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

感謝樓主
作者: letter256    時(shí)間: 2018-5-23 20:16
感謝樓主。

作者: 徐維澤    時(shí)間: 2018-6-19 16:28

感謝樓主。
作者: songyuan    時(shí)間: 2018-6-26 10:37
學(xué)習(xí)用一下,做一個(gè)低電壓報(bào)警電路
作者: yzyjkcs    時(shí)間: 2018-6-26 18:32
很好用,很給力!
作者: LILYWHITES    時(shí)間: 2018-7-23 02:35
ss的計(jì)算公式與和AIN0口相連的兩個(gè)電阻的阻止有關(guān)系嗎?
作者: hjj1019389748    時(shí)間: 2018-8-6 11:19
急需此代碼
作者: xsj1877578806    時(shí)間: 2018-8-8 06:43
好資料,收藏
作者: denminshen    時(shí)間: 2018-10-1 20:38
下載學(xué)習(xí)學(xué)習(xí),謝謝樓主啦!。
作者: 快樂眼淚    時(shí)間: 2018-10-2 08:30
這個(gè)不簡(jiǎn)單!
作者: yess103    時(shí)間: 2018-11-4 15:21
謝謝分享 剛好需要用到

作者: 2166666666    時(shí)間: 2018-11-5 15:19
學(xué)習(xí)學(xué)習(xí)
作者: 林木乍青    時(shí)間: 2018-11-7 19:45
自己做LCD的板子的時(shí)候老是對(duì)不準(zhǔn)顯示位置,來看看
作者: 并不是1233    時(shí)間: 2018-11-12 13:50
我按照仿真搭好電路后,源代碼燒進(jìn)去后,為什么什么都沒顯示
作者: mhl6408    時(shí)間: 2018-12-25 11:41
a=50000000是什么意思
作者: 50617546    時(shí)間: 2019-1-4 00:14
謝謝分享,學(xué)習(xí)中
作者: gh001    時(shí)間: 2019-1-5 14:46
做的不錯(cuò),推一下
作者: lxd0cat    時(shí)間: 2019-2-20 10:45
樓主好人一生平安。
作者: hellfire22    時(shí)間: 2019-3-18 12:49
正在學(xué)習(xí)pcf8591中
作者: chenyanzz    時(shí)間: 2019-5-17 11:31

問一下,接線全部按照你的來,為什么顯示器不顯示電壓
作者: 回首不再遙遠(yuǎn)    時(shí)間: 2019-5-23 00:19
很棒的
作者: yazilail    時(shí)間: 2019-6-24 14:37
確實(shí)很不錯(cuò)啊

作者: zbyshen    時(shí)間: 2019-7-26 09:48
太厲害了,橫有用
作者: scg    時(shí)間: 2019-8-9 13:02
顯示不了啊
作者: Alohaq    時(shí)間: 2019-9-28 20:53
ss=(v*a);ss=((ss*6)/100);
為什么ss在被v*a賦值后,還要被((ss*6)/100)賦值。
作者: 18856141120    時(shí)間: 2019-11-12 23:42
學(xué)習(xí)了
作者: zjqzwangdong    時(shí)間: 2019-11-13 23:24
先收藏了,用到時(shí)在來回看,太感謝了。
作者: mpc112    時(shí)間: 2019-11-16 16:00
link996 發(fā)表于 2018-5-15 13:39
你好 我按照這個(gè)原理圖焊接了50k與250k的電阻 顯示誤差有些大  2.48v我測(cè)了2.7v 3.26v測(cè)了3.5v 4.96 測(cè)了5. ...

電路怎么接的線,為什么我的沒有現(xiàn)象
作者: 2420429794    時(shí)間: 2019-12-15 14:16
很實(shí)用,電路也很簡(jiǎn)單,要是能給出圖中AD轉(zhuǎn)化芯片的型號(hào)就更好了
作者: 2509601969    時(shí)間: 2019-12-30 12:49
已經(jīng)打不開了

作者: lsx116    時(shí)間: 2020-5-6 22:18
真想要一個(gè)
作者: Weilainihao1    時(shí)間: 2020-6-25 17:32
大佬太厲害了。。!
作者: 軒baba    時(shí)間: 2020-7-8 16:45
沒仿真嗎
作者: 汪來華    時(shí)間: 2020-7-9 15:23
GUOXUAN 發(fā)表于 2017-11-25 20:55
老師的電壓表相當(dāng)先進(jìn).
能進(jìn)一步升級(jí)嗎?  制做液晶玻璃顯示屏.51MCU做成OTP COB固定在PCB上,用斑馬線連接 ...

只測(cè)直流電壓,為何不做指針表
作者: fuermalin    時(shí)間: 2020-7-27 20:05
非常感謝,正在學(xué)習(xí)PCF8591的使用
作者: 1134382822    時(shí)間: 2021-11-24 18:11
幫大忙了 I2C學(xué)的我太亂了
作者: 晃悠    時(shí)間: 2022-4-13 09:59
做挺好。。!
作者: 騎狗遛狗    時(shí)間: 2022-6-1 16:43
owenliang 發(fā)表于 2018-2-25 00:06
謝謝答主,可以用數(shù)碼管試試感覺也很方便

有案例嗎分享一下
作者: theleaving    時(shí)間: 2023-9-27 16:27
請(qǐng)問樓主輸入部分再做一個(gè)輸入保護(hù)可以嗎,防止ADC芯片被過壓燒壞
作者: hungyu72    時(shí)間: 2025-1-11 18:48
學(xué)習(xí)用一下!
非常感謝!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1