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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2812|回復: 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;
          }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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位數據,然后再運算,否則只能是零
回復

使用道具 舉報

5#
ID:469589 發表于 2021-4-4 17:50 | 只看該作者
{float dat=ADCRead(7);    float  dat1=dat*100/249;  ba=0;}
回復

使用道具 舉報

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

評分

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

查看全部評分

回復

使用道具 舉報

7#
ID:213173 發表于 2021-4-4 20:36 | 只看該作者
wanli2018 發表于 2021-4-4 14:33
為什么轉換不出來ADC數值呢 是哪里沒有打開嗎請問有沒有神

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

使用道具 舉報

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

使用道具 舉報

9#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久鲁视频 | 91 久久| 国产精品久久久久一区二区 | 国产精品视频一二三 | 日一区二区 | 91在线电影| 99视频在线播放 | 国产精品亚洲综合 | 黄色毛片在线观看 | 亚洲国产精品久久 | 成人福利在线视频 | 午夜男人天堂 | 五月激情婷婷在线 | 亚洲久在线 | 精品久久久久久亚洲精品 | 欧美激情一区二区三区 | 亚洲精品日韩综合观看成人91 | 欧美一区二区三区在线 | 欧美日韩精品一区二区天天拍 | 国产精品九九九 | www.日韩| 日韩欧美中文字幕在线观看 | 黑人巨大精品欧美一区二区免费 | 玖草资源 | www.久草.com | 亚洲欧美日韩精品久久亚洲区 | www亚洲一区| 91日b| 久久久久久久国产 | 人人干免费 | 国产专区在线 | 亚洲国产精品久久久久久 | 91久久| 成年人在线电影 | 免费在线a视频 | 国产高清在线观看 | www.一级毛片| 欧美视频福利 | 青青99 | 亚洲欧美一区二区在线观看 | 国产成人午夜高潮毛片 |