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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4630|回復: 1
收起左側

基于adc0809和51單片機檢測電源電壓并顯示(4位數碼管)

[復制鏈接]
ID:466137 發表于 2019-1-13 11:09 | 顯示全部樓層 |閱讀模式
0.png

單片機源程序如下:
  1. //程序頭函數
  2. #include <reg52.h>

  3. //宏定義
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. #define Data_ADC0809 P1

  7. //ADC0809
  8. sbit ST=P3^2;
  9. sbit EOC=P3^3;
  10. sbit OE=P3^1;

  11. sbit DIAN = P0^5;                        //小數點
  12. /*******************************定義全局變量********************************/
  13. unsigned char dis[3];       //顯示數值
  14. unsigned int sum=0;
  15. unsigned int temp=0;
  16. unsigned int dat=0;
  17. /*******************************共陰LED段碼表*******************************/

  18. unsigned char code tab[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0x5e/*字母U*/};        //gc.debfa

  19. /****************************************************************************
  20. 函數功能:AD轉換子程序
  21. ****************************************************************************/
  22. //ADC0809讀取信息
  23. uchar ADC0809()
  24. {
  25.         uchar temp_=0x00;
  26.         //初始化高阻太
  27.         OE=0;
  28.         //轉化初始化
  29.         ST=0;
  30.         //開始轉換
  31.         ST=1;
  32.         ST=0;
  33.         //外部中斷等待AD轉換結束
  34.         while(EOC==0)
  35.         //讀取轉換的AD值
  36.         OE=1;
  37.         temp_=Data_ADC0809;
  38.         OE=0;
  39.         return temp_;
  40. }
  41. /****************************************************************************
  42. 函數功能:延時子程序
  43. 入口參數:
  44. 出口參數:
  45. ****************************************************************************/
  46. void delay(unsigned int x)
  47. {
  48.     unsigned int i,j;
  49.     for(i=0;i<x;i++)
  50.         for(j=0;j<121;j++);
  51. }
  52. //=====================================================================================
  53. //=====================================================================================
  54. //=====================================================================================

  55. /****************************************************************************
  56. 函數功能:將0-255級換算成0.00-5.00的電壓數值
  57. 入口參數:i
  58. 出口參數:
  59. ****************************************************************************/
  60. void convdata(unsigned char dat1)
  61. {
  62.         unsigned int Vo;
  63.         Vo=dat1*1.96;         
  64.     dis[0] = Vo/100;       //十位
  65.     dis[1] = Vo%100/10;      //個位         
  66.     dis[2] = Vo%100%10;     //小數點后第1位
  67. }
  68. /****************************************************************************
  69. 函數功能:數碼管顯示子程序
  70. 入口參數:
  71. 出口參數:
  72. ****************************************************************************/
  73. void display(void)
  74. {  
  75.     P0=~tab[dis[0]];      
  76.     P2=0xfe;                  //11011111
  77.         DIAN=0;
  78.     delay(1);   
  79.     P2=0xff;

  80.     P0=~tab[dis[1]];      
  81.     P2=0xfb;                //10111111
  82.     delay(1);
  83.     P2=0xff;

  84.     P0=~tab[dis[2]];      
  85.     P2=0xef;              //01111111  
  86.     delay(1);
  87.     P2=0xff;

  88.         P0=~tab[10];      
  89.     P2=0xbf;              
  90.     delay(1);
  91.     P2=0xff;
  92. }
  93. /****************************************************************************
  94. 函數功能:主程序
  95. 入口參數:
  96. 出口參數:
  97. ****************************************************************************/
  98. void main(void)
  99. {
  100.         unsigned char p=0;
  101.     while(1)       //主循環                  
  102.     {
  103.                 for(p=0;p<20;p++)
  104.                 {      
  105.                         sum=sum+ADC0809();
  106.                         display();
  107.                 }
  108. //                dat=((sum/20)+dat)/2;
  109.                 dat=sum/20;
  110.                 convdata(dat);      //數據轉換
  111.                 sum=0;
  112.                 display();      //顯示數值
  113.     }
  114. }

復制代碼

全部資料51hei下載地址:
原理圖.docx (49.81 KB, 下載次數: 24)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1001575 發表于 2022-1-13 20:26 | 顯示全部樓層
問一下能不能測量交流電電壓值
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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