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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機io口如何通過電阻分壓電路檢測外部電壓?

[復制鏈接]
跳轉到指定樓層
樓主
我想讓這個單片機P1端口能檢測外部電壓從而判斷高低電平,但是這樣接上以后,電壓就側成4.99v了,求大神告知問題在哪里?

TIM圖片20190318200114.png (9.73 KB, 下載次數: 41)

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

使用道具 舉報

沙發
ID:493618 發表于 2019-3-18 22:47 來自觸屏版 | 只看該作者
單片機IO口要設置成輸入,你現在P1
回復

使用道具 舉報

板凳
ID:493618 發表于 2019-3-18 22:48 來自觸屏版 | 只看該作者
單片機IO口要設置成輸入,你現在P1全部為輸出高電平,當然是檢測不了外部電壓的。
回復

使用道具 舉報

地板
ID:234075 發表于 2019-3-19 00:16 | 只看該作者
你通過掃描P1.0端口,來查詢外部電路是高電平還是低電平,這種分壓方式檢測是不對的,因為89C52單片機的IO口不能檢測模擬量,只能檢測到高電平(1)、低電平(0),這個兩個值是相對的。應該將R2換成按鍵,按鍵沒有按下時,在R11的上拉作用下,掃描P1.0端口的結果為1,按鍵按下后,掃描P1.0端口的結果為0
回復

使用道具 舉報

5#
ID:493480 發表于 2019-3-19 10:32 | 只看該作者
zhb2004xp 發表于 2019-3-19 00:16
你通過掃描P1.0端口,來查詢外部電路是高電平還是低電平,這種分壓方式檢測是不對的,因為89C52單片機的IO ...

您好,我并不像知道具體電壓多少,我這個設計其實就是想讓單片機判斷電壓0/1,比如分壓0.2V時不應該判斷為0嗎?
回復

使用道具 舉報

6#
ID:493480 發表于 2019-3-19 10:33 | 只看該作者
這個是我程序代碼,圖上R11最后要換成光敏電阻,意思是我無光的時候,分壓很低,P1口能判斷為低電平即可。
#include<AT89X52.h>
     #define KeyPort P1
     unsigned char High,Low;         //定時器預裝高低八位
     sbit SPK=P3^7;                                 //蜂鳴器
     sbit ps=P0^0;                                 //蜂鳴器
     sbit RS=P2^0;                                 //暫時無用
     sbit RW=P2^1;                                 //暫時無用
     unsigned char code freq[][2]={                 //音階頻率
     0xD8,0XF7,
     0xBD,0XF8,
     0x87,0xF9,
     0xE4,0xF9,
     0x90,0xFA,
     0x29,0xFB,
     0xB1,0xFB,
     0xEF,0xFB,
     };
     unsigned char Time;
     unsigned char code YINFU[9][1]={{'0'},{'1'},{'2'},{'3'},{'4'},{'5'},{'6'},{'7'},{'8'}};
     unsigned char MUSIC[]={6,2,3, 5,2,1, 3,2,2 , 5,2,2, 1,3,2, 6,2,1, 5,2,1,
     6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
     6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
     5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
     2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0};
     unsigned char code FREQH[ ]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
     0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,
     0xFC,0xFD,0xFD,0xFD,0xFD,0xFD,0xFE,
     0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
     };
     unsigned char code FREQL[ ]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
     0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,
     0xEE,0x44,0x6B,0xB4,0xF4,0x2D,
     0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
     };
     void Init_timer0(void);           //定時器初始化
     void delay2xus(unsigned char z)         //延時
     {
     while(z--);
     }
     void delayms(unsigned char x)           //延時
     {
     while(x--)
     {
     delay2xus(245);
     delay2xus(245);
     }
     }
     void delaytips(unsigned char t)         //延時
     {
     unsigned char i;
     for(i=0;i<t;i++)
    {
    delayms(250);
}
TR0=0;
}

void PlaySong()
{
TH0=High;
TL0=Low;
TR0=1;
delaytips(Time);
}

void Init_Timer0(void)                         //定時器初始化
{
TMOD |=0x01;
EA=1;
ET0=1;                                                  
}
void Timer0_isr(void)interrupt 1         //定時中斷
{
TH0=High;
TL0=Low;
SPK=!SPK;
}

int main(void)                                                //主函數
{
unsigned char num,k,i;
Init_Timer0();
SPK=0;
while(1)
{
switch(KeyPort)                                         //P1口判斷,是否有低電平
{
case 0xfe:num=1;break;
case 0xfd:num=2;break;
case 0xfb:num=3;break;
case 0xf7:num=4;break;
case 0xef:num=5;break;
case 0xdf:num=6;break;
case 0xbf:num=7;break;
case 0x7f:num=8;break;
default:num=0;break;
}
P2=KeyPort; //暫時無用
if(num==0)
{
TR0=0;
SPK=0;
}
else
{
High=freq[num-1][1];
Low=freq[num-1][0];
TR0=1;
}
if(ps==0)
{
delayms(10);
if(ps==0)
{
i=0;
while(i<100)
{
k=MUSIC[i]+7*MUSIC[i+1]-1;
High=FREQH[k];
Low=FREQL[k];
Time=MUSIC[i+2];
i=i+3;
if(P1!=0xff)
{
delayms(10);
if(P1!=0xff)
i=101;
}
PlaySong();
}
TR0=0;
}
}
}
}
回復

使用道具 舉報

7#
ID:493480 發表于 2019-3-19 10:34 | 只看該作者
meihua 發表于 2019-3-18 22:48
單片機IO口要設置成輸入,你現在P1全部為輸出高電平,當然是檢測不了外部電壓的。

代碼里沒有對P1口進行設置呀,不知道哪里有錯誤?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费在线日韩 | 在线看av网址 | 户外露出一区二区三区 | 在线观看中文字幕 | 日韩欧美网 | 久久91 | 亚洲综合色自拍一区 | 欧美国产日韩一区二区三区 | 日韩精品一区二区三区老鸭窝 | 在线观看亚洲欧美 | 国产精品毛片久久久久久久 | 国产精品视频在线播放 | 精品久久ai电影 | 欧美一区视频 | 精品国产乱码久久久久久牛牛 | 精品自拍视频 | 精品国产一区二区三区久久狼黑人 | 亚洲综合色丁香婷婷六月图片 | 香蕉视频91 | 视频一区二区在线观看 | 日韩一区二区在线视频 | 国产精品久久免费观看 | 精品乱码一区二区三四区视频 | 久久99这里只有精品 | 99精品国自产在线观看 | 国产亚洲精品精品国产亚洲综合 | 亚洲欧洲视频 | 久久久久中文字幕 | 国产高清视频一区 | 狠狠入ady亚洲精品经典电影 | 国产精品久久久久久婷婷天堂 | 黄色国产区 | av资源网站| 日韩激情在线 | 亚洲精品乱码久久久久久按摩观 | 欧美性久久 | 国产精品久久二区 | 午夜一区 | 国产在线看片 | 亚洲97 | 天天综合日日夜夜 |