91嫩草国产线免费观看_欧美日韩中文字幕在线观看_精品精品国产高清a毛片_六月婷婷网 - 一级一级特黄女人精品毛片

請(qǐng)教51單片機(jī)的高低電平范圍

首頁 > 知識(shí)產(chǎn)權(quán)2021-09-07 02:55:12

51單片機(jī)高低電平問題

程序中令P3.4為0,為什么我按下0鍵后P3.4變成高電平,而不是P3.0變成低電平呢,我像弄個(gè)4*4鍵盤,用的是掃描法,也就是說先令P3.4為低,加入0鍵按下后,那P3.0也就低了,然后通過判斷P3的值來判斷按鍵值,怎么回事呢,請(qǐng)達(dá)人指點(diǎn)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}
給你個(gè)建議,把下拉電阻換成10K以下的,你現(xiàn)在的是47K吧!!
我這里有一個(gè) 是已經(jīng)用PROTUES7.1 測(cè)試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個(gè)鍵植

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;
}
你的編程思想沒有錯(cuò),真 有這種情況出現(xiàn)的話,一般是你的硬件引起的
第一你的下拉電阻可以不用
第二,估計(jì)你的P3.0接到電源5V上了
粗心大意或概念錯(cuò)誤造成的問題,看看你是怎么移位的~~首先從0xef移位到0xfe,也就是說從P3.4開始,一直到P3.0,都有被單片機(jī)置0的情況,正確的做法應(yīng)該是P3.7-P3.4依次置0,從0x7f移位到0xef結(jié)束(把你switch語句中case條件數(shù)值的高4位轉(zhuǎn)成二進(jìn)制你就知道了),do。。while只循環(huán)4次,低4位永遠(yuǎn)不執(zhí)行寫0操作,只用來返回鍵值!
另外。樓上兩位看清楚,那個(gè)是上拉電阻,雖然做實(shí)驗(yàn)可以不用(AT89C51除了P0口,其它口內(nèi)部都有上拉電阻),但是實(shí)際應(yīng)用中這4個(gè)上拉電阻是必要的,作用表現(xiàn)在抗干擾能力的加強(qiáng)上。
這問題我以前也碰到過 直接把電阻和電源都去掉 利用電路的線與特性就可以了

51單片機(jī)中高低電平問題

如下圖,開關(guān)閉合之前將p1.1置1,p1.7置0,使得p1.1口是高電平,p1.7是低電平,通過開關(guān)將兩個(gè)口鏈接起來,當(dāng)開關(guān)閉合時(shí),為什么p1.7口的電平由原來的低電平變成了高電平,我怎么感覺此時(shí)的p1.7應(yīng)該還是低電平……求解!

電阻太小,高電流強(qiáng)制拉高了IO口

單片機(jī)IO灌電流能力只有10-20mA


解決辦法:

加大電阻R1到1k-10k即可


通過PNP三極管放提高IO灌電流能力(50mA直接加在三極管上會(huì)導(dǎo)致發(fā)熱)

你沒有看到下拉電阻被屏蔽了嗎?開關(guān)接通后P1.1高電位直接接通了P1.7他們類似有共同的負(fù)極,也就是說,開關(guān)接通后他們并聯(lián)了。
上拉電阻太小了,換成1k的再試試。
100Ω的話上拉電流達(dá)到50mA了,而我記得P1口的灌電流能力應(yīng)該只有10mA左右,因此P1.7被外部強(qiáng)制拉高。

請(qǐng)教一個(gè)有關(guān)51單片機(jī)IO口高低電平的問題

我的程序運(yùn)行到某一時(shí)刻,將某一IO口Px,x清零,保持低電平。然后斷電,如果用示波器檢測(cè)Px.x的電平變化,會(huì)發(fā)現(xiàn)斷電瞬間,突然有個(gè)尖頂脈沖發(fā)出來,很短暫。我覺得這算是個(gè)單片機(jī)硬件上的Bug吧?這個(gè)尖頂脈沖發(fā)出來肯定是被5V供電的斷開觸發(fā)的,可是5V既然已經(jīng)斷了,那這個(gè)尖頂?shù)拿}沖的電位電源是來自哪里呢,好像很矛盾。這個(gè)尖頂脈沖雖然很短暫,但是在我的實(shí)踐工程中卻造成了很大的故障。我不明白既然程序運(yùn)行到最后時(shí)刻IO口是0,為什么斷電瞬間還會(huì)瞬間置位1.有人懂嗎?
你好!工程經(jīng)驗(yàn)需要長(zhǎng)期積累,這也是財(cái)富。現(xiàn)在與你分享我的財(cái)富。其實(shí)你注意觀察,上電瞬間也會(huì)有一個(gè)尖脈沖,這不是硬件BUG問題,這是單片機(jī)復(fù)位機(jī)制問題。大多數(shù)單片機(jī)默認(rèn)復(fù)位時(shí)所有端口輸出高電平,等復(fù)位完成執(zhí)行到你的對(duì)端口操作指令才會(huì)低電平。那斷電瞬間的脈沖是怎么來的呢?良好的設(shè)計(jì)需要在電路中放置退藕和濾波電容,它是會(huì)儲(chǔ)能的(廢話不然就沒用了),而多數(shù)單片機(jī)具有電壓跌落復(fù)位功能,你關(guān)掉電源電壓就下降,單片機(jī)復(fù)位出現(xiàn)前面說的情況,當(dāng)然電容儲(chǔ)能有限所以這個(gè)脈沖很短。怎么解決呢?對(duì)于慢速控制信號(hào)可以采取阻容網(wǎng)絡(luò)延時(shí)控制,對(duì)于快速信號(hào),加電子開關(guān),通過阻容網(wǎng)絡(luò)使電子開關(guān)延時(shí)開通。希望幫助到你。
單片機(jī)在掉電過程中,一旦電源電壓不滿足運(yùn)行條件,會(huì)進(jìn)入復(fù)位狀態(tài),直至掉電徹底完成。51單片機(jī)的復(fù)位狀態(tài)下,IO處于弱上拉高電平狀態(tài)。 這個(gè)是你對(duì)單片機(jī)不了解導(dǎo)致,可以通過反邏輯設(shè)計(jì)外部電路解決問題。

關(guān)于51單片機(jī)的輸入輸出,以及高、低電平的問題~

原理圖如上,最重要的兩步是:

  1. 先將P1.0、P1.1、P1.2都設(shè)為低電平輸出,使C1放電至放完。

  2. 2.將P1.1、P1.2設(shè)置為輸入狀態(tài),P1.0設(shè)為高電平輸出,通過RK電阻對(duì)C1充電,單片機(jī)內(nèi)部計(jì)時(shí)器清零并開始計(jì)時(shí),檢測(cè)P1.2口狀態(tài),當(dāng)P1.2口檢測(cè)為高電平時(shí),即C1上的電壓達(dá)到單片機(jī)高電平輸入的門嵌電壓時(shí),單片機(jī)計(jì)時(shí)器記錄下從開始充電到P1.2口轉(zhuǎn)變?yōu)楦唠娖降臅r(shí)間T1。


有幾個(gè)問題:

  1. 51單片機(jī)需不需要設(shè)置輸入輸出?

    如果需要的話,如何設(shè)置?如果不需要的話,那么單片機(jī)如何區(qū)分?

    如果賦值的哈所賦的值到底是表示一種輸入輸出的狀態(tài)還是端口所存儲(chǔ)的值?


  2. 具體到這個(gè)題目,要怎么設(shè)置(或者C要怎么寫):低電平輸出,高電平輸出?設(shè)置為輸入狀態(tài)?


謝謝啦!

作為輸出的時(shí)候只要將對(duì)應(yīng)的管腳寫1或者是寫0,對(duì)應(yīng)著51輸出高電平或者是低電平,作為輸入的時(shí)候,要先將對(duì)應(yīng)的管腳寫1,然后接收輸入的的信號(hào)!
個(gè)人感覺普通的51單片機(jī)是不可以的,因?yàn)樗腎/O口無法設(shè)置成高阻態(tài)
第一:你問的51要不要設(shè)置輸入輸出,不知道你問的是不是定義51 的引腳作為輸入還是輸出引腳?是這個(gè)意思么?如果是,那么51單片機(jī)不需要對(duì)其引腳定義為輸入引腳還是輸出引腳。
第二:?jiǎn)纹瑱C(jī)區(qū)分引腳作為什么引腳功能的話可以通過你的軟件語句來判斷,比如,你主動(dòng)讓單片機(jī)引腳輸出高電平,那么對(duì)于我們操作者來說引腳為輸出。當(dāng)你寫語句不斷檢測(cè)單片機(jī)引腳狀態(tài)的時(shí)候,那么對(duì)于操作者來說引腳就是用其輸入功能。
第三:對(duì)引腳賦值的話,普通I/o就是輸出的高地電平。
希望對(duì)你有幫助!
kanbudong...........

51單片機(jī)的各個(gè)引腳輸出高低電平的時(shí)候電壓和電流是多少?能夠帶動(dòng)4個(gè)或者是8個(gè)ttl負(fù)載是什么意思?

當(dāng)外部有輸入的時(shí)候多大的電壓或者電流是高電平什么時(shí)候是低電平
外部輸入電壓一般到了接近4不到四的時(shí)候就是高電平了,低于3的都是低電平。 高電平5v 低電平輸出0v, 單片機(jī)的引腳輸出電流有限,所負(fù)載能力有限。4 個(gè) 8個(gè)指的是帶負(fù)載能力
51單片機(jī)輸出低電平驅(qū)動(dòng)能力很強(qiáng),至少可達(dá)20mA~50mA。高電平驅(qū)動(dòng)能力很弱,電流在5mA以下。
帶動(dòng)4~8個(gè)TTL負(fù)載是指一個(gè)輸出類的IO口可與4~8個(gè)TTL的輸入引腳相連。主要是受高電平驅(qū)動(dòng)能力限制。
一般4V以上高電平,1V以下低電平比較可靠。實(shí)際基本上以2.5V為閥值。但是2.5V附近不可靠。
3.3以上算高,0.7下算低 ttl。。。這個(gè)不知道

相關(guān)推薦:

專利權(quán)的定義(知識(shí)產(chǎn)權(quán)包括什么)

知識(shí)產(chǎn)權(quán)問題(知識(shí)產(chǎn)權(quán)保護(hù)中存在的問題)

音樂版權(quán)保護(hù)(音樂版權(quán)是50年嗎)

域名注冊(cè)程序(網(wǎng)絡(luò)域名域名注冊(cè)步驟)

專利轉(zhuǎn)讓稅費(fèi)(專利轉(zhuǎn)讓的稅費(fèi)是多少)

熱門標(biāo)簽