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

標題: 51單片機1602電壓電流表制作 [打印本頁]

作者: hslcac    時間: 2018-8-14 22:56
標題: 51單片機1602電壓電流表制作
學習了好久工作原因不能接觸單片機,純屬愛好學習,程序借鑒的論壇里的,引腳自己定義了下,感覺精度可以,沒有測試

/******引腳說明LCD液晶RS2.5  RW2.6    E2.7       DB0~DB7:P0.0~P0.7
電壓測量P1.1;需要0~30v需要加分流電阻,,分辨率0.03v;
電流側量P1.7;需要加放大電路如lm358;op07等,分辨率3ma
**********/
  1. //stc12c5a60                        
  2. #include<STC12C5A60S2.h>
  3. #include<stdio.h>
  4. #include<intrins.h>//頭文件

  5. #define uchar unsigned char//宏定義
  6. #define uint unsigned int//宏定義
  7. #define ulint unsigned long int//宏定義
  8. #define N 21//ADC中值濾波次數(shù),必須為基數(shù)
  9. #define ISP_TRIG() ISP_TRIG=0x5A,ISP_TRIG=0xA5//ISP觸發(fā)命令

  10. sbit rs=P3^5;//液晶RS
  11. sbit rw=P3^6;//液晶RW
  12. sbit e=P3^4;//液晶E

  13. void AD_init(void);//ADC初始化
  14. void delay(uint z);//延時函數(shù)
  15. uint AD_get(uchar haha );//讀ADC的數(shù)值
  16. void LCD_data(uchar shuju);//寫數(shù)據(jù)
  17. void zhiling(uchar zhilin);//寫指令
  18. void LCD_init(void);//初始化LCD
  19. void tablex(uint tab);//數(shù)據(jù)分解
  20. uint filter(uchar dat);//中值濾波
  21. void timer_init(void);//定時器初始化

  22. uchar h1,h2,h3,h4;//LCD顯示變量
  23. ulint mas,maz;//容量計算

  24. uchar table[]="0123456789";//顯示數(shù)組
  25. uchar table1[]=".VAWa";

  26. void main()
  27. {
  28.         ulint tempv,tempa;//存放電壓電流值
  29.         AD_init();//ADC初始化
  30.         timer_init();//定時器初始化
  31.         LCD_init();//LCD初始化
  32.         while(1)
  33.         {
  34.                 tempv=filter(0x88);//設置ADC通道0、開始轉換
  35.                 tablex(tempv*3);//分解數(shù)據(jù)
  36.                 zhiling(0x80);//LCD地址
  37.                 LCD_data(table[h1]);//
  38.                 LCD_data(table[h2]);//
  39.                 LCD_data(table1[0]);//
  40.                 LCD_data(table[h3]);//
  41.                 LCD_data(table[h4]);//
  42.                 LCD_data(table1[1]);//顯示
  43.                
  44.                 tempa=filter(0x8f);//設置ADC通道7、開始轉換
  45.                 if(tempa<=10)//防止數(shù)據(jù)成負數(shù)
  46.                         tempa=10;
  47.                 mas=tempa*3-30;//計算容量取樣賦值
  48.                 tablex(tempa*3-30);//減去LM358失調的數(shù)值
  49.                 zhiling(0x88);//LCD地址
  50.                 LCD_data(table[h1]);
  51.                 LCD_data(table1[0]);
  52.                 LCD_data(table[h2]);
  53.                 LCD_data(table[h3]);
  54.                 LCD_data(table[h4]);
  55.                 LCD_data(table1[2]);
  56.                
  57.                 tablex((tempv*3/10)*((tempa*3-30)/10)/10);//計算功率
  58.                 zhiling(0x80+0x40);
  59.                 LCD_data(table[h1]);
  60.                 LCD_data(table[h2]);
  61.                 LCD_data(table1[0]);
  62.                 LCD_data(table[h3]);
  63.                 LCD_data(table[h4]);
  64.                 LCD_data(table1[3]);
  65.                
  66.                 tablex(maz/1000);//顯示MAH
  67.                 zhiling(0x88+0x40);
  68.                 LCD_data(table[h1]);
  69.                 LCD_data(table1[0]);
  70.                 LCD_data(table[h2]);
  71.                 LCD_data(table[h3]);
  72.                 LCD_data(table[h4]);
  73.                 LCD_data(table1[4]);
  74.                
  75.         }
  76. }
  77. //-------------------------------------------------------------
  78. void delay(uint z)///////////////延時程序
  79. {
  80.    uint x,y;
  81.    for(x=z;x>0;x--)
  82.    for(y=19;y>0;y--);
  83. }
  84. void AD_init(void)/////////////////////初始化ADC
  85. {
  86. P1ASF=0xff;//P1口全部作為模擬功能AD使用
  87. ADC_RES=0;//清零轉換結果寄存器高8位
  88. ADC_RESL=0;//清零轉換結果寄存器低2位
  89. ADC_CONTR=0x80;//開啟AD電源
  90. delay(5);//等待1ms,讓AD電源穩(wěn)定
  91. }

  92. uint AD_get(uchar haha )//ADC讀數(shù)
  93. {
  94.         uint rew;
  95.         ADC_CONTR=haha;//開啟AD轉換
  96.         _nop_(); _nop_(); _nop_(); _nop_();//要經過4個CPU時鐘的延時
  97.         while(!(ADC_CONTR&0x10));//等待轉換完成
  98.         ADC_CONTR&=0xe7;//關閉AD轉換,ADC_FLAG位由軟件清0
  99.         rew=ADC_RES*4+ADC_RESL;//組合成10位
  100.         delay(1);//等待
  101.         return rew;//返回ADC值
  102. }
  103. void zhiling(uchar zhilin)//寫指令
  104. {
  105.         e=0;
  106.         rs=0;
  107.         rw=0;
  108.         P0=zhilin;
  109.         delay(20);
  110.         e=1;
  111.         delay(20);
  112.         e=0;
  113. }
  114. void LCD_data(uchar shuju)//寫數(shù)據(jù)
  115. {
  116.         e=0;
  117.         rs=1;
  118.         rw=0;
  119.         P0=shuju;
  120.         delay(20);
  121.         e=1;
  122.         delay(20);
  123.         e=0;
  124. }
  125. void LCD_init(void)//初始化LCD
  126. {
  127. delay(300);
  128. zhiling(0x38);
  129. delay(100);
  130. zhiling(0x38);
  131. delay(100);
  132. zhiling(0x38);
  133. delay(100);
  134. zhiling(0x38);
  135. zhiling(0x38);
  136. zhiling(0x08);
  137. zhiling(0x01);
  138. zhiling(0x06);
  139. zhiling(0x0c);
  140. }
  141. void tablex(uint tab1)//數(shù)據(jù)分解
  142. {
  143.         h1=tab1/1000;//1023//1
  144.         h2=tab1%1000/100;//023//0
  145.         h3=tab1%100/10;//23//2
  146.         h4=tab1%10;//3
  147. }
  148. uint filter(uchar dat)//中位值濾波
  149. {
  150.    uint value_buf[N];
  151.    uint count,i,j,temp;
  152.    for(count=0;count<N;count++)
  153.    {
  154.                          AD_init();//初始化ADC
  155.       value_buf[count] = AD_get(dat);//讀ADC數(shù)值
  156.       delay(1);
  157.    }
  158.    for (j=0;j<N-1;j++)
  159.    {
  160.       for (i=0;i<N-j;i++)
  161.       {
  162.          if ( value_buf[i]>value_buf[i+1] )
  163.          {
  164.             temp = value_buf[i];
  165.             value_buf[i] = value_buf[i+1];
  166.             value_buf[i+1] = temp;
  167.          }
  168.       }
  169.    }
  170.    return value_buf[(N-1)/2];
  171. }
  172. void timer_init(void)//定時器初始化
  173. {
  174.         TMOD=0x01;/////////設置工作方式1
  175.         TH0=(65536-50000)/256;///////賦值
  176.         TL0=(65536-50000)%256;
  177.         EA=1;ET0=1;//開總中斷;開定時器中斷
  178.         TR0=1;////////啟動計數(shù)器
  179. }
復制代碼
全部資料51hei下載地址:
12c5a60s2.rar (45.79 KB, 下載次數(shù): 1180)



作者: hslcac    時間: 2018-8-14 22:59
沒有分了,大俠們獎勵點吧
作者: 小黑屋@    時間: 2018-8-15 09:56
有沒有原理圖或者pcb
作者: hslcac    時間: 2018-8-15 21:11
本帖最后由 hslcac 于 2018-9-2 18:38 編輯
小黑屋@ 發(fā)表于 2018-8-15 09:56
有沒有原理圖或者pcb

sbit rs=P3^5;//液晶RS
sbit rw=P3^6;//液晶RW
sbit e=P3^4;//液晶E
引腳已經定義好了,P0口接1602的D0-D7,液晶V0接10K可調電阻接VSS接地,K接地,P1口ADC

PCB圖.png (27.79 KB, 下載次數(shù): 292)

PCB圖.png

電路圖.png (58.27 KB, 下載次數(shù): 353)

電路圖.png

108_808696_1318b56e1f5e23e.jpg (83.45 KB, 下載次數(shù): 365)

108_808696_1318b56e1f5e23e.jpg

PCB.zip

1.53 MB, 下載次數(shù): 453, 下載積分: 黑幣 -5

PCB仿真


作者: 小黑屋@    時間: 2018-8-20 08:30
樓主能不能說一下運放怎么接
作者: xming123    時間: 2018-8-20 21:13
有原理圖就好了~~~~
作者: xsj1877578806    時間: 2018-8-27 10:49
感謝樓主分享
作者: qxdqx    時間: 2018-8-27 19:25
怎么沒有電路圖的呢?
作者: admin    時間: 2018-8-27 19:52
qxdqx 發(fā)表于 2018-8-27 19:25
怎么沒有電路圖的呢?

看程序里面的接口定義吧
作者: qxdqx    時間: 2018-8-29 05:47
admin 發(fā)表于 2018-8-27 19:52
看程序里面的接口定義吧

其他的可以看程序里的接口定義,但是電流部分電路光看程序接口是看不出來的啊。
作者: lcy960    時間: 2018-8-29 09:37
我是個初學的要慢慢學
作者: qxdqx    時間: 2018-8-30 07:25
我找到電路圖啦

電路圖.jpg (83.11 KB, 下載次數(shù): 233)

電路圖.jpg

作者: hslcac    時間: 2018-9-2 18:32
學了幾天AD,畫圖感覺很有意思,就是3D的原件庫不好做,電路圖樓上已經給出了,
作者: 1270811032    時間: 2018-9-11 17:00
精度很高,不知道量程

作者: 獵戶l    時間: 2018-9-14 23:17
樓主給說一下怎樣燒錄程序嗎,我防制了一個,用ch340連接單片機p3.0、p3.1,不會燒錄
作者: 獵戶l    時間: 2018-9-15 00:26
感覺電路圖的接地是不有標錯的地方,電流測量口接一個0.22的電阻到地,一通電不短路了
作者: gdlyk    時間: 2018-9-16 16:34
學習學習,好好看看。
作者: topsjb    時間: 2018-9-18 00:46
獵戶l 發(fā)表于 2018-9-15 00:26
感覺電路圖的接地是不有標錯的地方,電流測量口接一個0.22的電阻到地,一通電不短路了

0.22是檢測電流的。
作者: aking991    時間: 2018-9-27 08:23
用單片機自身的ADC口作精度都不是很高,不過方法可參考
作者: c20160526    時間: 2018-10-8 12:37
請問有沒有原理圖
作者: 拼搏83    時間: 2018-10-13 10:30
樓主我有一個用STC5608AD的用TM7705做16為AD檢測
你能幫忙寫個程序嗎

作者: 獵戶l    時間: 2018-10-13 21:37
樓主,我照上面的電路仿了一個,用ch340連接電腦,用stc-isp燒錄時一直提示正在檢測目標單片機 ...
ch340上只有txd燈亮,rxd燈不亮,第一次玩單片機,不知道怎么燒錄
作者: sdwxysc    時間: 2018-10-14 16:52
測量電流資料正需要.
作者: qzyhlf    時間: 2018-10-19 11:26
仿真時,沒顯示的
作者: lhuijiang    時間: 2018-10-22 15:30
好帖學習mark。
作者: xinmengzai    時間: 2018-10-25 05:45
有原理圖,源程序很感謝
作者: guren1hao    時間: 2018-10-25 16:37
程序我下載到單片機里面 但是接到3.3v顯示的是27.42v 請教怎么回事呢?
作者: bhjyqjs    時間: 2018-10-31 09:57
CPU本身10位的AD,精度不會很高。謝謝分享!
作者: hu2018y    時間: 2018-11-10 08:47
電流采樣電阻這么大,沒有什么實用意義。
作者: csj6210    時間: 2018-12-5 13:24
感謝樓主分享
作者: 939474643    時間: 2018-12-11 16:30
謝謝樓主分享
作者: 939474643    時間: 2018-12-11 16:33
謝謝樓主分享
作者: 939474643    時間: 2018-12-11 16:41
謝謝樓主分享
作者: yh0825    時間: 2019-1-20 09:06
謝謝樓主分享
作者: ifree8    時間: 2019-1-22 16:53
很不錯!
作者: lxdebug    時間: 2019-1-23 09:13
nice,很不錯的設計
作者: exme    時間: 2019-1-23 12:25
好東西。不錯!
作者: 583703056A    時間: 2019-1-23 17:05
精度怎么樣
作者: AOP    時間: 2019-1-23 22:12
請問這個測量范圍是多少呢?
作者: w500201    時間: 2019-2-4 00:12
多謝樓主分享  找了好久 新手學習了
作者: 853762295    時間: 2019-2-10 16:50
感謝樓主分享!!!
作者: xbdbox    時間: 2019-2-27 17:18
感謝樓主分享,我復制一個試試,才開始學習。
作者: ctx_ok    時間: 2019-3-11 14:32
樓主提供的好資料,下載下來學習學習。
作者: hu2018y    時間: 2019-3-16 23:08
分流電阻有點大,2安電流的話電阻上都有0.44伏了。
作者: Hey51    時間: 2019-3-25 19:57
一般不可作為參考使用
作者: 出來嚇道    時間: 2019-3-26 09:02
感謝樓主分享
作者: tqmtonychen    時間: 2019-3-27 07:48
好貼,學習了
作者: halyang    時間: 2019-3-27 19:11
請問顯示的四個數(shù)據(jù)中最后一個a是什么單位
作者: hslcac    時間: 2019-4-6 19:07
guren1hao 發(fā)表于 2018-10-25 16:37
程序我下載到單片機里面 但是接到3.3v顯示的是27.42v 請教怎么回事呢?

對不起回復晚了,取樣電阻問題
作者: hslcac    時間: 2019-4-6 19:08
qzyhlf 發(fā)表于 2018-10-19 11:26
仿真時,沒顯示的

是啊,我的仿真也沒通過
作者: baby66666    時間: 2019-5-6 15:43
請問這里面計算出來的電壓電流的值是哪個?
作者: duyi324    時間: 2019-5-7 09:25

謝謝樓主分享
作者: pm1981    時間: 2019-5-8 09:29
謝謝樓主分享
作者: c20160526    時間: 2019-5-31 12:15
這電流量程是多少啊?如果我想改成0-15a量程,采樣電阻0.22應該改成多少?采樣電阻大小是不是這樣計算的,單片機ad是5v除以放大倍數(shù)10÷電流,得到采樣電阻0.033R
作者: 日月龍    時間: 2019-6-16 21:35
好東西,謝謝
作者: 歡樂舞語    時間: 2019-7-14 16:46
學習了!量程多少?
作者: huaaaa    時間: 2019-7-22 12:48
hslcac 發(fā)表于 2018-8-15 21:11
sbit rs=P3^5;//液晶RS
sbit rw=P3^6;//液晶RW
sbit e=P3^4;//液晶E

量程是多少
作者: maomaochong    時間: 2019-7-29 18:38
tablex(tempv*3);//分解數(shù)據(jù)
作者: maomaochong    時間: 2019-7-29 18:39
tablex(tempv*3);//分解數(shù)據(jù)mas=tempa*3-30;//計算容量取樣賦值                 tablex(tempa*3-30);//減去LM358失調的數(shù)值請問這幾句是什么意思呀,新手看不懂呀。
作者: maomaochong    時間: 2019-7-29 19:10
tablex(tempv*3);//分解數(shù)據(jù)mas=tempa*3-30;//計算容量取樣賦值     這些都看不懂呀能給解釋下嗎,謝謝            tablex(tempa*3-30);//減去LM358失調的數(shù)值
作者: zingso    時間: 2019-11-19 23:03
學習了,偷些經驗.
作者: ycs89554171    時間: 2019-12-6 11:45
很不錯的設計
作者: 瑜瑜是菜雞    時間: 2019-12-10 22:41
大佬你好,我想問下這個程序可以測量交流電壓嗎

作者: 562969678    時間: 2019-12-11 09:55
有時間可以試試
作者: yuyangdata    時間: 2020-1-3 11:42
剛好要做個產品
作者: robter    時間: 2020-1-5 07:55
很好的制作資料,學習了
作者: zyldlzh    時間: 2020-1-6 19:16
不錯,謝啦兄弟。正好需要做個表頭
作者: jianf615    時間: 2020-1-29 14:18
沒有程序,這程序不能用,很多地方得改,不會改,誰發(fā)個改好的程序啊
作者: brave_ruan    時間: 2020-2-1 11:29
請問大神們這個有沒有人制作成功的, 仿真都沒有顯示,什么原因導致的。大神們說說唄。
作者: denminshen    時間: 2020-2-1 13:09
謝謝分享,下載學習學習用單片機內的A/D轉換程序!
作者: brave_ruan    時間: 2020-2-4 11:55
有沒有 其他那位大神仿制成功的,說說遇到的問題和經驗唄
作者: huanlewuyu    時間: 2020-2-23 13:15
謝謝分享!!!
作者: tom1234516    時間: 2020-2-23 18:32
謝謝分享
作者: hbcqd    時間: 2020-2-27 23:24
很想要一塊自己制作的電壓表,終于找到了,謝謝!
作者: linjinqun    時間: 2020-3-18 21:07
獵戶l 發(fā)表于 2018-9-15 00:26
感覺電路圖的接地是不有標錯的地方,電流測量口接一個0.22的電阻到地,一通電不短路了
0.22是檢測電流。應該串連。怎2個接地標?是不是畫錯了。

作者: yang03777    時間: 2020-3-23 11:13
做一個,也學學
作者: hmoob    時間: 2020-4-8 16:02
(*^__^*) 嘻嘻,拿走了,謝謝樓主分享@!!!!
作者: letmebe1234    時間: 2020-4-27 19:06
好資料
作者: zxopenljx    時間: 2020-4-30 15:25
多謝樓主分享
作者: paladina    時間: 2020-8-7 14:47
感謝樓主分享,我修改一個試試 測量高壓
作者: kxcuser    時間: 2020-8-8 08:35
獵戶l 發(fā)表于 2018-10-13 21:37
樓主,我照上面的電路仿了一個,用ch340連接電腦,用stc-isp燒錄時一直提示正在檢測目標單片機 ...
ch340 ...

ch340有時沒反應,你最好用CP2101,你用CH340現(xiàn)在的藍牙和WIFI模塊都燒不進的,CP2102好用點
作者: lujuguo    時間: 2020-8-22 01:42
支持一下,不錯不錯
作者: 28674500    時間: 2020-11-17 11:30
tempv=filter(0x88);//設置ADC通道0、開始轉換
改成p1.2要怎么改?
作者: rayin    時間: 2020-11-17 15:42
51論壇有你更精彩,這個可以好好學習一下!
作者: tb52088    時間: 2020-11-18 08:35
相當不錯的
作者: zyldlzh    時間: 2021-1-31 11:34
正想做個電壓電流表,不知道從何下手,借鑒一下。
作者: cavalierxyz    時間: 2021-2-25 21:47
多謝樓主分享  找了好久 新手學習了
作者: ttmax3    時間: 2021-3-26 20:07
樓主大大,lm324的第8腳不接嗎?謝謝了。
作者: 13960592586    時間: 2021-5-10 19:05
怎么歸零
作者: hmoob    時間: 2021-6-16 08:36
下載了,謝謝樓主分享!
作者: Liangkan    時間: 2021-6-27 15:04
剛才上機測試了一下,可以正常運行。
作者: robter    時間: 2021-7-19 10:14
很好很好,找時間也做一個,多謝樓主
作者: 君工創(chuàng)    時間: 2021-9-17 11:31
有時間要試下。
作者: 潮修家電    時間: 2021-9-23 20:49

請問這個測量范圍是多少呢?
作者: 13960592586    時間: 2021-11-25 17:09
請大家?guī)蛶兔δ莻顯示廣腳出問題無顯示白屏
作者: 13960592586    時間: 2021-11-25 17:26
出現(xiàn)白屏是那個引腳出問題
作者: 玉萌業(yè)余發(fā)展    時間: 2021-12-7 16:05
admin 發(fā)表于 2018-8-27 19:52
看程序里面的接口定義吧

站長有沒有收藏功能
作者: heicad    時間: 2021-12-7 16:18
玉萌業(yè)余發(fā)展 發(fā)表于 2021-12-7 16:05
站長有沒有收藏功能

你點擊頂部的幫助 3.怎么收藏帖子:www.raoushi.com/bbs/dpj-167498-1.html
作者: 13960592586    時間: 2021-12-11 16:33
1602顯示屏無字符什么原因
作者: lesson888    時間: 2021-12-12 09:12
謝謝!正在學習中




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