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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1652|回復: 1
打印 上一主題 下一主題
收起左側

請教各位大神,單片機ADC0804測電壓,輸出數據為一直為255?

[復制鏈接]
跳轉到指定樓層
樓主
ID:814785 發表于 2020-8-17 09:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
程序如下!
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit w1=P2^0;
sbit w2=P2^1;
sbit w3=P2^2;
sbit _CS=P2^4;                        //ADC0804片選位定義
sbit _RD=P2^5;                        //ADC0804讀信號輸入位定義
sbit _WR=P2^6;                        //ADC0804寫信號輸入位定義
uchar code dula1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};                //數碼管顯示0~9數組(不帶小數點)
uchar code dula2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xed,0x87,0xff,0xef};                //數碼管顯示0~9數組(帶小數點)
uchar a,A1,A2,A3,num;

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void display()                                        //數碼管顯示子函數,將ADC0804得到的電壓顯示在數碼管上面
{
        w1=0;
        w2=1;
        w3=1;
        P0=dula2[A1];
        delay(10);
        w1=1;
        w2=0;
        w3=1;
        P0=dula1[A2];
        delay(10);
        w1=1;
        w2=1;
        w3=0;
        P0=dula1[A3];
        delay(10);
}

void Adc_0804()
{
        _WR=0;                //啟動ADC0804進行ADC采集
        _nop_();                //延時片刻
        _WR=1;               
        delay(10);
        P1=0xff;
        _RD=1;
        _nop_();
        _RD=0;
        _nop_();
        num=P1;
        _RD=1;
        A1=num/100;
        A2=num%100/10;
        A3=num%10;
        display();
}
main()
{
        _CS=0;                        //ADC0804置零,以后就不用再管ADC0804選擇位了
        while(1)
        {
                Adc_0804();
        }
}


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

使用道具 舉報

沙發
ID:814785 發表于 2020-8-17 10:51 | 只看該作者
解決了,寫程序手誤整錯了端口!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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