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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2897|回復: 8
收起左側

STC8單片機的AD電壓數碼管顯示轉換不出來

[復制鏈接]
ID:265485 發表于 2021-4-4 14:32 | 顯示全部樓層 |閱讀模式
/********************************************************************
                         AD轉換初始化程序
*********************************************************************/
void InitADC()
{
   P1ASF = 0x80;          //設置P1.7口AD轉換,必須加
   P1M0=0X80;
   P1M1=0X80;        //設置P1.7口為開漏模式,使用AD功能
    ADC_RES = 0;                   //AD數據寄存器清空
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;//打開AD電源,轉換周期210
    _nop_();                        //延時一個機器周期
    _nop_();
        _nop_();                        //延時一個機器周期
}
/********************************************************************
                         AD轉換控制程序
*********************************************************************/
uchar ADCRead(uchar px)          //轉換輸出的數據 (PX為通道口)
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//開始轉換
    _nop_();                        //延時一個機器周期
    _nop_();                                                //延時一個機器周期
    _nop_();                                                //延時一個機器周期
    _nop_();                                                //延時一個機器周期
    while (!(ADC_CONTR & ADC_FLAG));//等待轉換結束
    ADC_CONTR &= ~ADC_FLAG;         //關閉AD轉換
    return ADC_RES;                //返回數據
}

if(ba==1){dat=((ADCRead(7)*51)/255);dat1=dat*2;ba=0;} //51是單片機的工作電壓,單片機的工作電壓是多少這個就是多少
//          if(ba==1){dat=ADCRead(7);dat1=dat*100/249;ba=0;}
          if((y==0)&&(z==0)){zs=1;led(dat1);} //zs標志位控制小數點
          if(y==1){zs=0;led(s1);}
          if(y==2){zs=0;led(s2);}
          if(y==3){zs=1;z=0;led(s);}
          if(dat1>s){out=0;}else{out=1;}
          KeyRead(); //按鍵掃描
          key_1();
          key_2();
          if(k==1)
          {
             Sector_Erase(0);
                 Byte_Program(0x0001,s1);  //寫入扇區
                 Byte_Program(0x0002,(s2/10));  //寫入扇區
                 k=0;
          }
回復

使用道具 舉報

ID:265485 發表于 2021-4-4 14:33 | 顯示全部樓層
為什么轉換不出來ADC數值呢 是哪里沒有打開嗎請問有沒有神
回復

使用道具 舉報

ID:265485 發表于 2021-4-4 15:56 | 顯示全部樓層
請問一下是哪里設置得有問題嗎為什么 轉換不出來呢
回復

使用道具 舉報

ID:469589 發表于 2021-4-4 17:40 | 顯示全部樓層
沒看見你關于DTA1核DATA的數據格式定義,是浮點數嗎,如果是定點的,應該做量程轉化是擴大成16位數據,然后再運算,否則只能是零
回復

使用道具 舉報

ID:469589 發表于 2021-4-4 17:50 | 顯示全部樓層
{float dat=ADCRead(7);    float  dat1=dat*100/249;  ba=0;}
回復

使用道具 舉報

ID:814525 發表于 2021-4-4 19:56 | 顯示全部樓層
看你的相關ADC程式,是STC15系列用法。如果使用的是STC8,ADC相關寄存器和STC15不同,參考資料進行修改并調用STC8頭文件。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:213173 發表于 2021-4-4 20:36 | 顯示全部樓層
wanli2018 發表于 2021-4-4 14:33
為什么轉換不出來ADC數值呢 是哪里沒有打開嗎請問有沒有神

STC8沒有P1ASF寄存器
使用模擬輸入要設置端口高阻模式不是開漏模式。
STC8有官方示例,可以參考。
回復

使用道具 舉報

ID:430492 發表于 2022-4-13 16:34 | 顯示全部樓層
   P1M0=0X80;
   P1M1=0X80;        //設置P1.7口為開漏模式,使用AD功能
這樣的寫法其實不太規范,建議改為:
   P1M0 &=0X7f;        //0x01111111;
   P1M1 |=0X80;        //0x10000000,設置P1.7口為高阻模式,使用AD功能
這樣的好處就是除了要設定位外,其余位不受影響。
回復

使用道具 舉報

ID:975054 發表于 2022-4-23 00:15 | 顯示全部樓層
P1ASF = 0x80;          //設置P1.7口AD轉換,必須加
   P1M0=0X80;
   P1M1=0X80;        //設置P1.7口為開漏模式,使用AD功能

一開頭就錯的太多了.....
按總工程師的意見辦就好!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品区二区三区日本 | 一区在线观看 | 国产传媒视频在线观看 | 免费永久av| 久久久久99 | 操久久 | 欧美一级片在线观看 | 欧美小视频在线观看 | 国产福利在线 | 国户精品久久久久久久久久久不卡 | 91精品国产色综合久久 | 国产99久久精品一区二区永久免费 | 国产精品成人av | 国产精品一区二区视频 | 国产精品久久久久久久久久久久 | 色综合一区二区 | 91精品久久久久久久久99蜜臂 | 精品国产一区二区在线 | 国产成人在线视频免费观看 | 国产精品成人一区 | 久久999 | 亚洲精选一区 | 亚洲www | 日韩一区二区免费视频 | 日韩国产在线 | 一区二区三区欧美大片 | 在线观看www视频 | 久久精品国产一区二区电影 | 在线一区 | 免费九九视频 | 亚洲成人av | av乱码| 秋霞电影院午夜伦 | 国产成人精品av | 国产一区二区久久 | 在线欧美日韩 | 自拍在线 | 欧洲色综合| 久久久久国产一区二区三区四区 | 农村妇女毛片精品久久久 | 亚洲视频www |