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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用C51單片機把只帶的ADC(12bit)轉換為RS232輸出

[復制鏈接]
ID:115923 發表于 2020-2-21 17:11 | 顯示全部樓層 |閱讀模式
  1. #include "reg51.h"         // STC8G1K08A-SOP8  
  2. #include "intrins.h"

  3. /*
  4.   STC8G1K08A-SOP8
  5.   讀取 VCC值 ,先發送出去
  6.   然后 循環開始 讀取ch4的 (P55 ,第3腳)值 發送出去
  7. */

  8. sfr     ADC_CONTR   =   0xbc;
  9. sfr     ADC_RES     =   0xbd;
  10. sfr     ADC_RESL    =   0xbe;
  11. sfr     ADCCFG      =   0xde;
  12. sbit    EADC        =   IE^5;

  13. sfr P3M1=0xb1;
  14. sfr P3M0=0xb2;
  15. sfr P5M1=0xc9;
  16. sfr P5M0=0xca;

  17. sfr AUXR =0x8e;

  18. unsigned int myADC;
  19. bit bFlag;
  20. int *BGV;
  21. bit busy;  
  22. #define BRT (65536-11059200UL/115200/4)

  23. void ADC_Isr() interrupt 5
  24. {
  25.     ADC_CONTR &= ~0x20;                         //清中斷標志
  26.    
  27.         ADCCFG=0x20;        //右對齊

  28.         myADC= (ADC_RES<<8) + ADC_RESL ;
  29. //        P0 = ADC_RES;   //High 2bit
  30. //  P2 = ADC_RESL;   //Low 8bit

  31.         ADC_CONTR |= 0x40;
  32.         bFlag=1;
  33. }

  34. void UartISR() interrupt 4
  35. {
  36.         if(TI)
  37.         {
  38.                 TI=0;
  39.                 busy=0;
  40.         }
  41.         if(RI)
  42.                 RI=0;

  43. }

  44. void UartInit()
  45. {
  46.         SCON=0x50;
  47.         TMOD=0x0;
  48.         TL1= BRT;
  49.         TH1= BRT>>8;
  50.         TR1=1;
  51.         AUXR=0x40;
  52.         busy=0;
  53. }
  54. void UartSend( char dat)
  55. {
  56.         while(busy);
  57.         busy=1;
  58.         SBUF=dat;
  59. }
  60. void ADCInit()
  61. {
  62.    ADCCFG=0x2f;
  63.    ADC_CONTR=0x8f;// Bandgap voltage
  64. }
  65. int ADCRead()
  66. {
  67.    int res;
  68.    ADC_CONTR|=0x40;
  69.    _nop_();
  70.    _nop_();
  71.    while(!(ADC_CONTR & 0x20));
  72.    ADC_CONTR &=~0x20;
  73.    res=(ADC_RES<<8)|ADC_RESL;
  74.    return res;
  75. }


  76. void main()
  77. {
  78.         int res,vcc,adc,i;
  79.    
  80.         P5M0=0;
  81.         P5M1=0;
  82.        
  83.         BGV=(int idata*)0xef;
  84.         ADCInit();
  85.         UartInit();

  86.         ES=1;
  87.         EA=1;

  88.                 ADCRead();
  89.                 ADCRead();
  90.                 res=0;
  91.                 for(i=0;i<8;i++)
  92.                         res+=ADCRead();
  93.                 res>>=3;
  94.                 vcc=(int)(4095L**BGV/res);

  95.                 UartSend(vcc>>8);UartSend(vcc);          //這里先輸出VCC電壓


  96.         ADCCFG = 0x0f;                          //set sysCLk
  97.     ADC_CONTR = 0x84;          //使能并啟動ADC模塊 0x84讀通道4(P55 ,第3腳),        0x8f讀通道F:BGV值
  98.     EADC = 1;                 //使能ADC中斷                 //0x85讀通道5(P54 ,第1腳)
  99.     EA = 1;                                                                                 //0x83讀通道3(P33 ,第8腳)
  100.         ADC_CONTR |= 0x40;                 //Run ADC change         //0x82讀通道2(P32 ,第7腳)
  101.                                                                                                  //P30,P31為程序下載口Rx,Tx
  102.         res=0;

  103.     while (1)
  104.         {
  105.            if(bFlag)
  106.            {
  107.                    i++;
  108.                    res+=myADC;
  109.                    bFlag=0;
  110.            }
  111.            if(i>=8)
  112.            {
  113.                     res>>=3;
  114.                         adc=(int)(4095L**BGV/res);
  115.                         UartSend(adc>>8);UartSend(adc);         //這里 循環 輸出 ADC的電壓,
  116.                         res=0;
  117.                         i=0;
  118.            }
  119.         }



  120. }

復制代碼

mA 232.rar

27.24 KB, 下載次數: 7, 下載積分: 黑幣 -5

用C51 把只帶的ADC12bit)轉換為RS232輸出

回復

使用道具 舉報

ID:465279 發表于 2020-2-27 00:00 來自觸屏版 | 顯示全部樓層
來學習的,謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区在线 | 一区二区福利视频 | 日韩亚洲欧美一区 | 亚洲福利一区 | 国产午夜精品视频 | 91在线免费观看 | 中文字幕在线观看www | 日韩美女在线看免费观看 | 国产清纯白嫩初高生在线播放视频 | 国产日韩在线观看一区 | 成人午夜 | 欧美久久一区二区三区 | 黄色一级电影在线观看 | 国产有码| 婷婷激情在线 | 国产高清在线观看 | 荷兰欧美一级毛片 | 欧美精品国产精品 | 国产免费拔擦拔擦8x高清 | 国产精品午夜电影 | 91视频在线网站 | 中文字幕一区在线 | 中文字幕精品视频 | 奇米影视首页 | 网站国产 | 国产女人叫床高潮大片免费 | 欧美综合一区 | 99在线资源| www亚洲精品 | 色噜噜狠狠色综合中国 | 亚洲精品一区二区在线观看 | 91久久久久久久久久久久久 | 99精品久久久 | 久久国产精99精产国高潮 | 国产精品一区二区av | 91大神在线资源观看无广告 | 亚洲精品片 | 国产精品美女久久久久久久久久久 | 日韩国产欧美在线观看 | 国产国语精品 | 亚洲精品在线视频 |