51單片機高低電平問題
程序中令P3.4為0,為什么我按下0鍵后P3.4變成高電平,而不是P3.0變成低電平呢,我像弄個4*4鍵盤,用的是掃描法,也就是說先令P3.4為低,加入0鍵按下后,那P3.0也就低了,然后通過判斷P3的值來判斷按鍵值,怎么回事呢,請達人指點rn keysaomiao(void) rn{rn unsigned char k,j,v;rn P3 = 0x0f;rn // delay();rn k = P3;rn if(k!=0x0f)rn {rn delay();rn j = P3;rn if(k == j)rn {rn v = 0xef;rn dorn {rn P3 = v;rn if(v!=P3)rn {rn switch(P3)rn {rn case 0xee:{return 0;break;}rn case 0xed:{return 4;break;}rn case 0xeb:{return 8;break;}rn case 0xe7:{return 12;break;}rn case 0xde:{return 1;break;}rn case 0xdd:{return 5;break;}rn case 0xdb:{return 9;break;}rn case 0xd7:{return 13;break;}rn case 0xbe:{return 2;break;}rn case 0xbd:{return 6;break;}rn case 0xbb:{return 10;break;}rn case 0xb7:{return 14;break;}rn case 0x7e:{return 3;break;}rn case 0x7d:{return 7;break;}rn case 0x7b:{return 11;break;}rn case 0x77:{return 15;break;}rn }rn }rn elsern {rn v =_crol_(v,1);rn }rn }rn while(v!=0xfe);rn }rn }rn}給你個建議,把下拉電阻換成10K以下的,你現在的是47K吧!!
我這里有一個 是已經用PROTUES7.1 測試OK的
#include<reg51.h>
unsigned char code tab[4][4]={{'1','4','7','#'},
{'2','5','8','0'},
{'3','6','9','*'},
{'A','B','C','D'}}; //0到F的16個鍵植
void delay(unsigned char a)
{
unsigned char i;
while(a--)
for(i=100;i>0;i--)
;
}
char kbscan() //鍵盤掃描
{
unsigned char hang,lie;
if(P3!=0x0f)
delay(5);
if(P3!=0x0f)
{
switch(P3&0xf0)
{
case 0x10:hang=0;break;
case 0x20:hang=1;break;
case 0x40:hang=2;break;
case 0x80:hang=3;break;
}
P3=0xf0;
P3=0xf0;
switch(P3&0x0f)
{
case 1:lie=0;break;
case 2:lie=1;break;
case 4:lie=2;break;
case 8:lie=3;break;
}
P3=0x0f;
while(P3!=0x0f);
return (tab[hang][lie]);
}
return 0;
}
你的編程思想沒有錯,真 有這種情況出現的話,一般是你的硬件引起的
第一你的下拉電阻可以不用
第二,估計你的P3.0接到電源5V上了
粗心大意或概念錯誤造成的問題,看看你是怎么移位的~~首先從0xef移位到0xfe,也就是說從P3.4開始,一直到P3.0,都有被單片機置0的情況,正確的做法應該是P3.7-P3.4依次置0,從0x7f移位到0xef結束(把你switch語句中case條件數值的高4位轉成二進制你就知道了),do。。while只循環4次,低4位永遠不執行寫0操作,只用來返回鍵值!
另外。樓上兩位看清楚,那個是上拉電阻,雖然做實驗可以不用(AT89C51除了P0口,其它口內部都有上拉電阻),但是實際應用中這4個上拉電阻是必要的,作用表現在抗干擾能力的加強上。
這問題我以前也碰到過 直接把電阻和電源都去掉 利用電路的線與特性就可以了
51單片機中高低電平問題
如下圖,開關閉合之前將p1.1置1,p1.7置0,使得p1.1口是高電平,p1.7是低電平,通過開關將兩個口鏈接起來,當開關閉合時,為什么p1.7口的電平由原來的低電平變成了高電平,我怎么感覺此時的p1.7應該還是低電平……求解!
電阻太小,高電流強制拉高了IO口
單片機IO灌電流能力只有10-20mA
解決辦法:
加大電阻R1到1k-10k即可
通過PNP三極管放提高IO灌電流能力(50mA直接加在三極管上會導致發熱)
你沒有看到下拉電阻被屏蔽了嗎?開關接通后P1.1高電位直接接通了P1.7他們類似有共同的負極,也就是說,開關接通后他們并聯了。
上拉電阻太小了,換成1k的再試試。
100Ω的話上拉電流達到50mA了,而我記得P1口的灌電流能力應該只有10mA左右,因此P1.7被外部強制拉高。
請教一個有關51單片機IO口高低電平的問題
我的程序運行到某一時刻,將某一IO口Px,x清零,保持低電平。然后斷電,如果用示波器檢測Px.x的電平變化,會發現斷電瞬間,突然有個尖頂脈沖發出來,很短暫。我覺得這算是個單片機硬件上的Bug吧?這個尖頂脈沖發出來肯定是被5V供電的斷開觸發的,可是5V既然已經斷了,那這個尖頂的脈沖的電位電源是來自哪里呢,好像很矛盾。這個尖頂脈沖雖然很短暫,但是在我的實踐工程中卻造成了很大的故障。我不明白既然程序運行到最后時刻IO口是0,為什么斷電瞬間還會瞬間置位1.有人懂嗎?你好!工程經驗需要長期積累,這也是財富。現在與你分享我的財富。其實你注意觀察,上電瞬間也會有一個尖脈沖,這不是硬件BUG問題,這是單片機復位機制問題。大多數單片機默認復位時所有端口輸出高電平,等復位完成執行到你的對端口操作指令才會低電平。那斷電瞬間的脈沖是怎么來的呢?良好的設計需要在電路中放置退藕和濾波電容,它是會儲能的(廢話不然就沒用了),而多數單片機具有電壓跌落復位功能,你關掉電源電壓就下降,單片機復位出現前面說的情況,當然電容儲能有限所以這個脈沖很短。怎么解決呢?對于慢速控制信號可以采取阻容網絡延時控制,對于快速信號,加電子開關,通過阻容網絡使電子開關延時開通。希望幫助到你。
單片機在掉電過程中,一旦電源電壓不滿足運行條件,會進入復位狀態,直至掉電徹底完成。51單片機的復位狀態下,IO處于弱上拉高電平狀態。 這個是你對單片機不了解導致,可以通過反邏輯設計外部電路解決問題。
關于51單片機的輸入輸出,以及高、低電平的問題~
原理圖如上,最重要的兩步是:
先將P1.0、P1.1、P1.2都設為低電平輸出,使C1放電至放完。
2.將P1.1、P1.2設置為輸入狀態,P1.0設為高電平輸出,通過RK電阻對C1充電,單片機內部計時器清零并開始計時,檢測P1.2口狀態,當P1.2口檢測為高電平時,即C1上的電壓達到單片機高電平輸入的門嵌電壓時,單片機計時器記錄下從開始充電到P1.2口轉變為高電平的時間T1。
有幾個問題:
51單片機需不需要設置輸入輸出?
如果需要的話,如何設置?如果不需要的話,那么單片機如何區分?
如果賦值的哈所賦的值到底是表示一種輸入輸出的狀態還是端口所存儲的值?
具體到這個題目,要怎么設置(或者C要怎么寫):低電平輸出,高電平輸出?設置為輸入狀態?
謝謝啦!
作為輸出的時候只要將對應的管腳寫1或者是寫0,對應著51輸出高電平或者是低電平,作為輸入的時候,要先將對應的管腳寫1,然后接收輸入的的信號!
個人感覺普通的51單片機是不可以的,因為它的I/O口無法設置成高阻態
第一:你問的51要不要設置輸入輸出,不知道你問的是不是定義51 的引腳作為輸入還是輸出引腳?是這個意思么?如果是,那么51單片機不需要對其引腳定義為輸入引腳還是輸出引腳。
第二:單片機區分引腳作為什么引腳功能的話可以通過你的軟件語句來判斷,比如,你主動讓單片機引腳輸出高電平,那么對于我們操作者來說引腳為輸出。當你寫語句不斷檢測單片機引腳狀態的時候,那么對于操作者來說引腳就是用其輸入功能。
第三:對引腳賦值的話,普通I/o就是輸出的高地電平。
希望對你有幫助!
kanbudong...........
51單片機的各個引腳輸出高低電平的時候電壓和電流是多少?能夠帶動4個或者是8個ttl負載是什么意思?
當外部有輸入的時候多大的電壓或者電流是高電平什么時候是低電平外部輸入電壓一般到了接近4不到四的時候就是高電平了,低于3的都是低電平。 高電平5v 低電平輸出0v, 單片機的引腳輸出電流有限,所負載能力有限。4 個 8個指的是帶負載能力
51單片機輸出低電平驅動能力很強,至少可達20mA~50mA。高電平驅動能力很弱,電流在5mA以下。
帶動4~8個TTL負載是指一個輸出類的IO口可與4~8個TTL的輸入引腳相連。主要是受高電平驅動能力限制。
一般4V以上高電平,1V以下低電平比較可靠。實際基本上以2.5V為閥值。但是2.5V附近不可靠。
3.3以上算高,0.7下算低 ttl。。。這個不知道
相關推薦:
專利申請日如何確定(2023專利法規定專利申請日怎樣確定的)
商標的國外注冊途徑(如何在國外注冊商標)
申請專利需要哪些資料(申請專利要準備什么材料)
編輯作品著作權歸屬規定(百度百科的著作權歸屬問題)
商標終止有那些類型(商標權終止情形主要有哪些)