找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3627|回復(fù): 17
收起左側(cè)

STC8G 8pin單片機(jī)P3.0和P3.1口不能檢測(cè)高電平?

[復(fù)制鏈接]
ID:959051 發(fā)表于 2021-11-23 21:27 | 顯示全部樓層 |閱讀模式
我程序是當(dāng)P3.0或者P3.1檢測(cè)到高電平 做其他事情,但是發(fā)現(xiàn)無法檢測(cè)外部高電平,程序初始化把P3.0和P3.1 都置0了。然后通過外部高電平檢測(cè)。結(jié)果發(fā)現(xiàn)他們無法檢測(cè)外部高電平,只能檢測(cè)低電平,就是拉低能檢測(cè),拉高就檢測(cè)不了。

單片機(jī)源程序如下:
  1. void main(void)
  2. {        

  3.         GPIO_config();
  4.         P54 = 1;
  5.         P55 = 1;
  6.         P30 = 0;
  7.         P31 = 0;
  8.         while(1)
  9.         {
  10.         //        out1 ();
  11.         //        out2 ();
  12.         if(P30 == 1)
  13.                 {P32 = 0;}
  14.         else P32 = 1;
  15.                                 
  16.         }
  17. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-11-23 21:43 | 顯示全部樓層
你要檢測(cè)外部電平,前提就是  IO = 1  
你IO=0 永遠(yuǎn)只能是0
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-23 21:48 | 顯示全部樓層
188610329 發(fā)表于 2021-11-23 21:43
你要檢測(cè)外部電平,前提就是  IO = 1  
你IO=0 永遠(yuǎn)只能是0

我IO=0  是想通過外部高電平檢測(cè)進(jìn)來。我也試了去掉IO =0,但是還是不行。
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2021-11-23 22:26 | 顯示全部樓層
若IO口為高電平,則可以被拉低,否則就短路了。
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-24 08:07 | 顯示全部樓層

RE: STC8G 8pin單片機(jī)P3.0和P3.1口不能檢測(cè)高電平?

npn 發(fā)表于 2021-11-23 22:26
若IO口為高電平,則可以被拉低,否則就短路了。

我的問題是 P3.0和P3.1 能檢測(cè)外部的低電平,也就是說只有外部給低電平的時(shí)候 單片機(jī)能檢測(cè)到,我上面的程序是示范檢測(cè)外部高電平的。
回復(fù)

使用道具 舉報(bào)

ID:752974 發(fā)表于 2021-11-24 08:36 | 顯示全部樓層
注意看看IO口的初始化,若不是準(zhǔn)雙向IO口,則要配置成輸入。
回復(fù)

使用道具 舉報(bào)

ID:70035 發(fā)表于 2021-11-24 08:59 | 顯示全部樓層
P3.1、P3.0作為輸入?那直接配置成輸入就行了。
回復(fù)

使用道具 舉報(bào)

ID:314246 發(fā)表于 2021-11-24 09:17 | 顯示全部樓層
要檢測(cè)外部輸入,必須 P30 = 1;   P31 = 1;否則無法檢測(cè),如平時(shí)一定要低電平,可以考慮增加合適的下拉電阻,但是必須 P30 = 1;   P31 = 1;
回復(fù)

使用道具 舉報(bào)

ID:25310 發(fā)表于 2021-11-24 11:40 | 顯示全部樓層
   P0M1 = 0;   P0M0 = 0;   //設(shè)置為準(zhǔn)雙向口     P1M1 = 0;   P1M0 = 0;   //設(shè)置為準(zhǔn)雙向口     P2M1 = 0;   P2M0 = 0;   //設(shè)置為準(zhǔn)雙向口     P3M1 = 0;   P3M0 = 0;   //設(shè)置為準(zhǔn)雙向口     P4M1 = 0;   P4M0 = 0;   //設(shè)置為準(zhǔn)雙向口
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-11-24 13:00 | 顯示全部樓層
guoqiang881245 發(fā)表于 2021-11-23 21:48
我IO=0  是想通過外部高電平檢測(cè)進(jìn)來。我也試了去掉IO =0,但是還是不行。

有幾個(gè)關(guān)鍵概念必須要掌握:
1)你要檢測(cè)外部"高"電平,  首先要滿足的條件是:  當(dāng)外部不是"高"電平的時(shí)候, 外部必須得要是“低” 電平。
2)老生常談的問題,IO電平只能被拉低不能被拉高,所以檢測(cè)外部不管是“高電平”還是“低電平”,內(nèi)部都必須是高電平, 檢測(cè)的只是,IO電平被拉低,還是沒有被拉低。 來推導(dǎo)出:外部是高電平還是低電平的結(jié)論。

這兩個(gè)基本概念你搞清楚了,你現(xiàn)在的問題自然就不是問題。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-11-24 13:53 | 顯示全部樓層
STC的老總把STC視為"國貨之光"單片機(jī)
一個(gè)國貨之光單片機(jī)竟然不能檢測(cè)高電平,怎么可能嘛
前面幾個(gè)網(wǎng)友已經(jīng)給你正確的答案了
1,單片機(jī)必需要先設(shè)置端口的IO模式,雖然你用的P3.0和P3.1不用設(shè)置,但最好是要先設(shè)置,因?yàn)镾TC8G系列的都要先設(shè)置,不然就是高阻狀態(tài),
2,P3=0xff;
這個(gè)語句是一定要的
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-24 18:33 | 顯示全部樓層
188610329 發(fā)表于 2021-11-24 13:00
有幾個(gè)關(guān)鍵概念必須要掌握:
1)你要檢測(cè)外部"高"電平,  首先要滿足的條件是:  當(dāng)外部不是"高"電平的時(shí) ...

謝謝你,按你說的搞定了。確實(shí)明白了你說的這兩點(diǎn),問題就迎刃而解了。
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-24 18:34 | 顯示全部樓層
188610329 發(fā)表于 2021-11-23 21:43
你要檢測(cè)外部電平,前提就是  IO = 1  
你IO=0 永遠(yuǎn)只能是0

感謝回答。
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-24 18:34 | 顯示全部樓層
munuc_w 發(fā)表于 2021-11-24 08:36
注意看看IO口的初始化,若不是準(zhǔn)雙向IO口,則要配置成輸入。

感謝回答,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-24 20:59 | 顯示全部樓層
pcbboy 發(fā)表于 2021-11-24 11:40
P0M1 = 0;   P0M0 = 0;   //設(shè)置為準(zhǔn)雙向口     P1M1 = 0;   P1M0 = 0;   //設(shè)置為準(zhǔn)雙向口     P2M1 =  ...

感謝大佬幫忙,謝謝
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-24 21:23 | 顯示全部樓層

大佬 設(shè)置準(zhǔn)雙向口能設(shè)置某個(gè)pin嗎?你上面設(shè)置的是P0  P1 P2 P3 的所有口都是準(zhǔn)雙向嗎?
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-11-24 21:33 | 顯示全部樓層
guoqiang881245 發(fā)表于 2021-11-24 21:23
大佬 設(shè)置準(zhǔn)雙向口能設(shè)置某個(gè)pin嗎?你上面設(shè)置的是P0  P1 P2 P3 的所有口都是準(zhǔn)雙向嗎?

說來話長(zhǎng)……

最新版STC8G 手冊(cè) P.229 頁 內(nèi)容不多,自己看吧……
回復(fù)

使用道具 舉報(bào)

ID:959051 發(fā)表于 2021-11-26 09:11 | 顯示全部樓層
188610329 發(fā)表于 2021-11-24 21:33
說來話長(zhǎng)……

最新版STC8G 手冊(cè) P.229 頁 內(nèi)容不多,自己看吧……

已經(jīng)搞明白了,謝謝大佬!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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