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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13616|回復(fù): 21
收起左側(cè)

STC12C2052AD單片機(jī)制作的0-9.9V電壓表

  [復(fù)制鏈接]
ID:138707 發(fā)表于 2018-6-7 10:36 | 顯示全部樓層 |閱讀模式
這款由電子樂屋原創(chuàng)的電路簡單制作容易的STC12C2052AD單片機(jī)的0-9.9V電壓表,電路簡單,元件少,容易制作,PCB板為單面板,下面是制作好的實物。

【附件包括原理圖和源程序】

制作出來的實物圖如下:
電壓表圖片1.png

電路原理圖如下:
電壓表圖片2.png

單片機(jī)源程序如下:
  1. #include <STC12C2052AD.H>         //單片機(jī)頭文件
  2. #include <intrins.h>                 //51基本運算(包括_nop_空函數(shù))
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit temp=P1^7;
  6. sbit LED3=P3^0;  //C
  7. sbit LED0=P1^4;  //        小數(shù)點后一位
  8. sbit LED1=P1^3;  //個位
  9. sbit LED2=P1^0;  //        十位
  10. sbit A=P1^1;
  11. sbit B_B=P1^5;
  12. sbit C=P3^2;
  13. sbit D=P3^4;
  14. sbit E=P3^5;
  15. sbit F=P1^2;
  16. sbit G=P3^1;
  17. sbit H=P3^3;  //小數(shù)點

  18. char d[5];
  19. uint R,M,N,h;//若定義成uchar型就只能顯示2.5V以下的數(shù)值

  20. void dm(mz);

  21. void delayus(uint x)         //(x+1)*6微
  22. {

  23.         while(x--);
  24. }


  25. /*****************************************************************
  26. 函數(shù)名:毫秒級CPU延時函數(shù)
  27. 調(diào)  用:delay (?);
  28. 參  數(shù):1-65535(參數(shù)不可為0)
  29. 返回值:無
  30. 結(jié)  果:占用CPU方式延時與參數(shù)數(shù)值相同的毫秒時間
  31. 備  注:應(yīng)用于1T單片機(jī)時i<600,應(yīng)用于12T單片機(jī)時i<125
  32. /******************************************************************/
  33. void delay(uint t)
  34. {
  35. uint i;                               //定義變量
  36. for(;t>0;t--)                     //如果t大于0,t減1(外層循環(huán))
  37.   for(i=600;i>0;i--);       //i等于124,如果i大于0,i減1
  38. }
  39. /*******************************************************************
  40. 函數(shù)名:ADC初始化及8位A/D轉(zhuǎn)換函數(shù)
  41. 返回值:8位的ADC數(shù)據(jù)
  42. 結(jié)  果:讀出指定ADC接口的A/D轉(zhuǎn)換值,并返回數(shù)值
  43. 備  注:適用于STC12C2052AD系列單片機(jī)(必須使用STC12C2052AD.h頭文件)
  44. *******************************************************************/
  45. uchar Read (uchar CHA)
  46. {
  47.         uchar AD_FIN=0;                 //存儲A/D轉(zhuǎn)換標(biāo)志;若在函數(shù)外定義此變量則不能得到連續(xù)變化的模擬量的顯示
  48.         /******以下為ADC初始化程序****************************/
  49.     CHA &= 0x07;            //選擇ADC的8個接口中的一個(0000 0111 清0高5位)
  50.     ADC_CONTR = 0x60;                  //ADC轉(zhuǎn)換的速度(0XX0 0000 其中XX控制速度,請根據(jù)數(shù)據(jù)手冊設(shè)置)
  51.     _nop_();
  52.     ADC_CONTR |= CHA;       //選擇A/D當(dāng)前通道
  53.     _nop_();
  54.     ADC_CONTR |= 0x80;             //啟動A/D電源
  55.     delay(1);                    //使輸入電壓達(dá)到穩(wěn)定(1ms即可?
  56.         /******以下為ADC執(zhí)行程序****************************/
  57.     ADC_CONTR |= 0x08;      //啟動A/D轉(zhuǎn)換(0000 1000 令A(yù)DCS = 1)
  58.     _nop_();
  59.     _nop_();
  60.     _nop_();
  61.     _nop_();
  62.     while (AD_FIN ==0)           //等待A/D轉(zhuǎn)換結(jié)束
  63.         {     
  64.             AD_FIN = (ADC_CONTR & 0x10);         //0001 0000測試A/D轉(zhuǎn)換結(jié)束否
  65.     }
  66.     ADC_CONTR &= 0xE7;                              //1111 0111 清ADC_FLAG位, 關(guān)閉A/D轉(zhuǎn)換,
  67.         return (ADC_DATA);                          //返回A/D轉(zhuǎn)換結(jié)果(8位)
  68. }
  69. /******************************************************************
  70. 顯示函數(shù)轉(zhuǎn)換函數(shù):
  71. M=模擬量采樣值,N=基準(zhǔn)電壓源采樣值(本例為2.5V),R=模擬量輸入值(待顯示值)
  72. N=256*2.5/Vcc;變形后得Vcc=256*2.5/N; 代入M=256*R/Vcc;得到M=R*N/2.5;變形后得R=M*2.5/N
  73. 1.105為輸入端分壓比。
  74. ******************************************************************/
  75. void transfer(void)
  76. {
  77.         M=Read(6);                                //P1.6口模擬量轉(zhuǎn)換
  78.         N=Read(7);                                //P1.7口2.5V基準(zhǔn)電壓源采樣(轉(zhuǎn)換)
  79.         R=((M*2.5)/N)*198;                //輸入模擬量換算并放大500倍;
  80.         /***以下為3位顯示轉(zhuǎn)換***/
  81.         h=R;
  82.         d[3]=R/1000;
  83.         R=R%1000;
  84.         d[2]=R/100;
  85.         R=R%100;
  86.         d[1]=R/10;
  87.         d[0]=R%10;

  88. }
  89. /**********顯示函數(shù)(未優(yōu)化)************************************************/
  90. void xian_shi (void)
  91. {
  92.         if(h>999)
  93.         {
  94.                 d[3]=10;
  95.                 d[2]=10;
  96.                 d[1]=10;
  97.                 d[0]=10;
  98.         }
  99.         if(d[3]==0)       
  100.         d[3]=11;
  101.         dm(d[3]);
  102.         LED3=1;
  103.         delayus(5);
  104.         LED3=0;
  105.         delayus(30);
  106.         dm(d[2]);
  107.         LED2=1;
  108.         delayus(5);
  109.         LED2=0;
  110.         delayus(30);
  111.         dm(12);
  112.         LED2=1;
  113.         delayus(1);
  114.         LED2=0;
  115.         delayus(400);
  116.         dm(d[1]);
  117.         LED1=1;
  118.         delayus(5);
  119.         LED1=0;
  120.         delayus(30);
  121.         dm(d[0]);
  122.         LED0=1;
  123.         delayus(5);
  124.         LED0=0;
  125.         delayus(30);
  126. }


  127. void dm(mz)
  128. {
  129.         switch(mz)
  130.         {
  131.                 case 0:A=0;B_B=0;C=0;D=0;E=0;F=0;G=1;H=1;break;
  132.                 case 1:A=1;B_B=0;C=0;D=1;E=1;F=1;G=1;H=1;break;
  133.                 case 2:A=0;B_B=0;C=1;D=0;E=0;F=1;G=0;H=1;break;
  134.                 case 3:A=0;B_B=0;C=0;D=0;E=1;F=1;G=0;H=1;break;
  135.                 case 4:A=1;B_B=0;C=0;D=1;E=1;F=0;G=0;H=1;break;
  136.                 case 5:A=0;B_B=1;C=0;D=0;E=1;F=0;G=0;H=1;break;
  137.                 case 6:A=0;B_B=1;C=0;D=0;E=0;F=0;G=0;H=1;break;
  138.                 case 7:A=0;B_B=0;C=0;D=1;E=1;F=1;G=1;H=1;break;
  139.                 case 8:A=0;B_B=0;C=0;D=0;E=0;F=0;G=0;H=1;break;
  140.                 case 9:A=0;B_B=0;C=0;D=0;E=1;F=0;G=0;H=1;break;
  141.                 case 10:A=0;B_B=1;C=1;D=0;E=0;F=0;G=1;H=1;break; //C
  142.                 case 11:A=1;B_B=1;C=1;D=1;E=1;F=1;G=1;H=1;break; //不顯示
  143.                 case 12:A=1;B_B=1;C=1;D=1;E=1;F=1;G=1;H=0;break; //小數(shù)點
  144.         }
  145. }


  146. /******************************************************************
  147. 函數(shù)名:主函數(shù)
  148. 調(diào)  用:無
  149. 參  數(shù):無
  150. 返回值:無
  151. 結(jié)  果:程序開始處,無限循環(huán)
  152. 備  注:
  153. ******************************************************************/
  154. void main (void)
  155. {
  156.     P1M0 = 0xC0;               
  157.     P1M1 = 0x19;   
  158.     P3M0=0x00;
  159.     P3M1=0x01;
  160.         LED0=0;
  161.         LED1=0;
  162.         LED2=0;  
  163.         LED3=0;  

  164.         while(1)
  165.         {
  166.                 uint i;
  167.                 i++;
  168.                 if (i==500)
  169.                 {
  170.                         transfer();
  171.                         i=0;
  172.                 }
  173.                 xian_shi();
  174.         }
  175. }
復(fù)制代碼

所有資料51hei提供下載:
STC12C2052AD單片機(jī)0-9.9V電壓表.doc (448.5 KB, 下載次數(shù): 140)


評分

參與人數(shù) 2黑幣 +59 收起 理由
低分局 + 9 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:235691 發(fā)表于 2018-6-11 11:09 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

ID:333907 發(fā)表于 2018-6-26 22:47 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

ID:259035 發(fā)表于 2018-6-27 13:12 | 顯示全部樓層

謝謝分享
回復(fù)

使用道具 舉報

ID:266802 發(fā)表于 2018-7-1 23:41 | 顯示全部樓層
程序直接復(fù)制粘貼到燒錄軟件上后直接燒錄就可以??
回復(fù)

使用道具 舉報

ID:380389 發(fā)表于 2018-7-29 10:18 來自觸屏版 | 顯示全部樓層
謝謝分享,收藏
回復(fù)

使用道具 舉報

ID:343809 發(fā)表于 2018-8-24 10:26 | 顯示全部樓層
謝謝分享 收藏了
回復(fù)

使用道具 舉報

ID:98992 發(fā)表于 2018-9-4 22:02 | 顯示全部樓層
如果我要判斷是多少伏電壓怎么判斷
回復(fù)

使用道具 舉報

ID:325624 發(fā)表于 2018-9-5 10:09 來自觸屏版 | 顯示全部樓層
不錯,量程可以高點就好了
回復(fù)

使用道具 舉報

ID:384413 發(fā)表于 2018-9-12 14:47 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

ID:399205 發(fā)表于 2018-9-17 20:06 來自觸屏版 | 顯示全部樓層
好主意,馬上去實踐
回復(fù)

使用道具 舉報

ID:594214 發(fā)表于 2019-8-21 16:46 | 顯示全部樓層
量電壓正負(fù)接反會怎么樣,是不是量出負(fù)電壓?
回復(fù)

使用道具 舉報

ID:594214 發(fā)表于 2019-8-21 16:56 | 顯示全部樓層
基準(zhǔn)電壓不用設(shè)置嗎,沒看明白 是哪里把P1.7口的431設(shè)為基準(zhǔn)的。
回復(fù)

使用道具 舉報

ID:606160 發(fā)表于 2019-9-1 21:46 | 顯示全部樓層

謝謝分享
回復(fù)

使用道具 舉報

ID:452731 發(fā)表于 2019-9-2 23:56 | 顯示全部樓層
這個程序很實用
回復(fù)

使用道具 舉報

ID:597880 發(fā)表于 2019-9-3 17:19 | 顯示全部樓層
學(xué)習(xí)中
回復(fù)

使用道具 舉報

ID:428400 發(fā)表于 2019-9-23 20:41 | 顯示全部樓層
謝謝分享,學(xué)習(xí)呢!
回復(fù)

使用道具 舉報

ID:619901 發(fā)表于 2019-10-25 22:10 | 顯示全部樓層
謝謝!能不能改12v
回復(fù)

使用道具 舉報

ID:459318 發(fā)表于 2019-10-27 18:37 | 顯示全部樓層
3.0口咋沒接
回復(fù)

使用道具 舉報

ID:440637 發(fā)表于 2019-11-13 17:00 | 顯示全部樓層
感謝你
回復(fù)

使用道具 舉報

ID:13396 發(fā)表于 2019-11-16 17:57 | 顯示全部樓層
謝謝分享.
回復(fù)

使用道具 舉報

ID:159857 發(fā)表于 2020-5-14 21:46 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天操天天射天天 | 久久香蕉精品视频 | 九九久久久 | 色综合天天综合网国产成人网 | 中文字幕免费观看 | 国内精品99| 成人午夜网 | 久久久久国产一区二区三区四区 | 亚洲综合一区二区三区 | 一区二区三区视频免费看 | 国产精品免费在线 | 天天操天天插 | 国产精品久久久久久久久久久久冷 | 成人精品在线视频 | 免费一区| 国产真实精品久久二三区 | 精品久 | 美女黄色在线观看 | 91精品国产综合久久香蕉922 | 91.com在线观看 | 最新中文字幕第一页视频 | 中文字幕亚洲专区 | аⅴ资源新版在线天堂 | av成年人网站 | 中文在线视频观看 | 婷婷福利 | 欧美日韩精品免费 | 欧美91 | 亚洲一区二区三区四区五区中文 | 日韩在线欧美 | 欧美日韩综合一区 | 日韩不卡一二区 | 国产精品久久久久av | 午夜激情在线视频 | 激情影院久久 | 成人18亚洲xxoo| 亚洲国产精品suv | 欧美色综合天天久久综合精品 | 亚洲精品一区二区三区蜜桃久 | 欧美日韩在线观看视频网站 | www.色.com|