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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2240|回復: 0
打印 上一主題 下一主題
收起左側

STC8G1K08-TSSOP20單片機 數碼管顯示ADC電壓

[復制鏈接]
跳轉到指定樓層
樓主
ID:796012 發表于 2023-5-24 15:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /*10位就是10位二進制數的意思,即0000000000-1111111111等于10進制的0-1023*/
  2. /*ADC轉換結果右對齊: ADC_RES (高2位寄存器),ADC_RESL (低8位寄存器)*/
  3. //ADC被轉換通道的輸入電壓Vin=MCU工作電壓或參考源電壓*10位ADC轉換結果/1024
  4. //分壓前最高輸入電壓=MCU工作電壓或參考源電壓/[對地電阻阻值/(對地電阻阻值+串接電阻阻值)]
  5. //分壓倍率=分壓前最高輸入電壓/MCU工作電壓   分壓前輸入電壓(方法一)=ADC管腳輸入電壓*分壓倍率(精確到小數點)
  6. //分壓前輸入電壓(方法二,會有很多位小數)=ADC管腳輸入電壓/[對地電阻阻值/(對地電阻阻值+串接電阻阻值)]
  7. #include "STC8G.h"
  8. #include "intrins.h"
  9. unsigned char q,b,s,g;/*位選*/
  10. unsigned char code dm[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};/*共陰段碼*/
  11. void delayms(unsigned int i){while(i--);}/*延時函數*/
  12. void display()/*數碼管掃描*/
  13. {
  14.         unsigned char i;
  15.         for(i=0;i<4;i++)
  16.         {
  17.                 switch(i)/*選擇顯示位置*/
  18.         {
  19.                 case(0):P34=0;P35=1;P36=1;P37=1;break;/*千位*/
  20.                 case(1):P34=1;P35=0;P36=1;P37=1;break;/*百位*/
  21.                 case(2):P34=1;P35=1;P36=0;P37=1;break;/*十位*/
  22.           case(3):P34=1;P35=1;P36=1;P37=0;break;/*個位*/
  23.         }
  24.    if(i==0){P1=dm[q];}     /*千位*/
  25.          if(i==1){P1=dm[b];}     /*百位*/ //用作ADC十位
  26.          if(i==2){P1=dm[s]+0x80;}/*十位*/ //用作ADC個位固定小數點
  27.          if(i==3){P1=dm[g];}     /*個位*/ //用作ADC小數點后一位
  28.          delayms(50); /*間隔一段時間掃描*/
  29.          P1=0x00;                /*消隱*/
  30.         }
  31. }
  32. void main()
  33. {
  34.           unsigned int dy;unsigned char i;
  35.     P1M0=0xff; P1M1=0;
  36.           P3M0=0;    P3M1=0x01;                       /*設置P3.0為ADC口*/
  37.           P5M0=0;    P5M1=0;
  38.     P_SW2 |= 0x80;
  39.     ADCTIM = 0x3f;                              /*設置ADC內部時序*/
  40.     P_SW2 &= 0x7f;ADCCFG = 0x0f;                /*設置ADC時鐘為系統時鐘/2/16*/
  41.     ADC_CONTR = 0x88;                           /*使能ADC模塊 設置P30ADC8*/
  42.           q=b=s=g=0;
  43.     while (1)
  44.     {
  45.                         dy=0;
  46.                         for(i=0;i<8;i++)                          //讀取8次數據
  47.                         {        
  48.         ADC_CONTR |= 0x40;                      /*啟動AD轉換*/
  49.         _nop_();
  50.         _nop_();
  51.         while (!(ADC_CONTR & 0x20));            //查詢ADC完成標志
  52.         ADC_CONTR &= ~0x20;                     //清完成標志               
  53.                           ADCCFG = 0x20;                          //設置結果右對齊                        
  54.                           dy+=ADC_RES<<8|ADC_RESL;
  55.                         }
  56.                           dy>>=3;                                 //取平均值
  57.                                 //g=dy%10;s=dy/10%10;b=dy/100%10;q=dy/1000%10;/*ADC轉換結果0-1023*/
  58.                           dy=5000*(long)dy/1024;/*強制轉換數據類型(32位)運算,得到管腳電壓毫伏(mV)*/
  59.                           dy=dy*7.06;/*分壓倍率*/               
  60.                           //dy=dy/(3.3/(3.3+20));/*方法二*/               
  61.                           g=dy/100%10;
  62.                     s=dy/1000%10;
  63.                     b=dy/10000%10;
  64.                     q=0;
  65.                           display();/*數碼管掃描*/
  66.     }
  67. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂中文字幕av | 伊人国产精品 | 精品国产视频 | 欧美舔穴 | 久草视频2 | 中文字幕一区二区视频 | 久久久久亚洲精品国产 | 中文字幕在线观看一区 | 日韩精品1区2区3区 成人黄页在线观看 | 日韩精品视频中文字幕 | 日韩一级黄色片 | 91亚洲国产成人精品一区二三 | 亚洲视频一 | 一a一片一级一片啪啪 | 美女天堂在线 | 日韩欧美三区 | 美女视频一区 | 欧美成人a| 国产成人精品一区二 | 亚洲一区二区精品视频在线观看 | 国产精品久久久久久久久 | 久草.com| 欧美v在线观看 | 国内精品视频 | 手机看黄av免费网址 | www.久久国产精品 | 精品国产乱码久久久久久中文 | 日本精品一区二区三区在线观看 | 久久五月婷 | 又爽又黄axxx片免费观看 | 天堂在线免费视频 | 99精品在线 | 国产精品成人一区二区三区 | 91视频免费观看 | 日韩免费在线观看视频 | 正在播放亚洲 | 久久久精 | 国产精品久久福利 | 毛片久久久 | 九色视频网站 | 亚洲性视频 |