找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1497|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于我的單片機+ad0809模塊 EOC一直處于低電平

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:917576 發(fā)表于 2021-5-8 15:20 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
做學校的電子設(shè)計競賽要做一個電壓測量器,想使用ad0809模塊去做,ad0809的IN0口外接了一個ne555信號發(fā)生器,單片機使用的是STC89C52RC,輸入地址位使用模塊上的跳線帽選擇了IN0,設(shè)備的其余部分還沒有加上去,但是測試的時候發(fā)現(xiàn)程序一直卡在“while(EOC==0)”這個地方無法繼續(xù)運行,想請求各位大佬看看可能是什么問題,萬分感謝!

以下是單片機代碼部分
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint volt=0; //電壓值測定值
sbit CLK=P2^7; //時鐘信號
sbit START=P2^4; //轉(zhuǎn)換啟動開關(guān)
sbit EOC=P2^5;        //轉(zhuǎn)換結(jié)束標志
sbit OE=P2^6;//定義ADC0809各腳
void delay(uint x)
{
        uchar y,z;
        for(y=x;y>0;y--)
                for(z=250;z>0;z--);
                }




void ADC()
{
        EA=1;//開中斷
  OE=0;
        //確保進入正常AD轉(zhuǎn)換狀態(tài)
        START=0;
        delay(10);
        START=1;
delay(10);
        START=0;//ad開始轉(zhuǎn)換               
        while(EOC==0);
      OE=1;
        EA=0;//關(guān)中斷
        volt=P0;//獲取轉(zhuǎn)換值保存到volt中,(P0為轉(zhuǎn)換后數(shù)據(jù))
        volt=volt*196;
        
        OE=0;//輸出轉(zhuǎn)換結(jié)束 (要在獲取轉(zhuǎn)換值之后)
}






void timer() interrupt 1
{
        TH0=(65536-2)/256;   //重裝計數(shù)初值
TL0=(65536-2)%256;   //重裝計數(shù)初值
CLK=!CLK;     //取反
}


void main()
{
  TMOD=0X01;  
CLK=0;   
TH0=(65536-2)/256;  
TL0=(65536-2)%256;

        ET0=1;//開定時器0中斷
        TR0=1;//開啟定時器0*/
        while(1)
        {
                ADC();//調(diào)用模數(shù)轉(zhuǎn)換程序        
}
}




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

使用道具 舉報

沙發(fā)
ID:917576 發(fā)表于 2021-5-8 18:43 來自手機 | 只看該作者
求求各位大佬幫助(οο)
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表