51微控制器IO口使用經驗

2022-08-20 13:45:02 字數 1251 閱讀 9574

按常規,在51埠(p1、p2、p3)某位用作輸入時,必須先向對應的鎖存器寫入1,使fet截止。一般情況是這樣,也有例外。所謂io口內部與電源相連的上拉電阻而非一常規線性電阻,實質上,該電阻是由兩個場效電晶體併聯在一起:

乙個fet為負載管,其阻值固定;另乙個fet可工作在導通或截止兩種狀態(姑且叫可變fet)。使其總電阻值變化近似為0或阻值較大(20千歐--40千歐)兩種情況。當和埠鎖存器相連的fet由導通至截止時,該阻值近似為0,可將引腳快速上拉至高電平;當和鎖存器相連的fet由截止至導通時,該電阻呈現較大阻值,限制了和埠鎖存器相連的fet的導通電流。

51i/o口作為輸入端和外部訊號相連有時必須考慮上述特性,本人在設計ltp1245熱敏列印頭驅動板時,資料上推介熱敏頭「抬頭」和「紙盡」訊號由頭中內嵌檢測電路提供,mcu io口採集該訊號時需加緩衝(如74hc04)。當時本人認為51io口上拉電阻為一較大阻值的固定電阻,對輸入訊號無影響,故未加緩衝電路(為降低成本能省則省)。可到除錯pcba時發現,「抬頭」、「紙盡」狀態變化時,採集訊號只在3.

90v--5.10v之間變化,應為低電平時無低電平輸出。究其原因,列印頭的「抬頭」、「缺紙」訊號輸出為一光敏三極體的集電極輸出,集電極和電源間原有乙個負載電阻,飽和導通設計工作電流僅為450--1100微安,當該集電極直接和mcu io口某位相連時,io口上拉電阻和光敏三極體負載電阻併聯,當io口上拉時,上拉電阻極小致使光敏三極體直流負載線斜率陡然增大,工作狀態進入放大區而非希望的飽和區。

當時在不改硬體的條件下,我幾乎無計可施,甚至想到了準備燒斷io口上拉電阻(前兩天我曾發帖求救怎麼燒斷io口上拉電阻的方法)後來聽網友建議該方法風險較大,所以總想用軟體方法解決。

後來我的解決方法是:取樣訊號前不是先向對應鎖存器寫1,而是先寫入0,再寫入1,延時約10毫秒以上,然後再取樣(當然此法只適應於取樣頻率很低的情況)。這樣作的目的是:

先寫入0迫使io口上拉電阻先為一較大值,此時如果外部光敏三極體本來處於截止狀態,當完成上述一系列鎖存器的寫入過程後光敏管仍為截止態,io口正確取樣到高電平;此時如果外部光敏三極體基極電流足夠大有容許三極體飽和導通的條件(即基極吸收到充分光強),雖然取樣一開始集電極被人為鉗位在低電平,但當下一時隙和io口相連的鎖存器被寫入1時,在io口上拉電阻中的可變fet導通之前,光敏三極體已先進入飽和態而又把引腳鉗位在實際輸出的低電平,此時mcu io口的上拉電阻仍為較大阻值,同時和原光敏三極體集電極負載電阻併聯(考慮併聯後阻值變化,原光敏三極體集電極負載電阻需增大到適當阻值)充當飽和導通後光敏三極體的負載電阻,事實上,io口上拉電阻中的可變fet未來得及導通又被截止了,由此又保證了訊號低電平的正確取樣。

51微控制器IO引腳IO口工作原理

一 p0埠的結構及工作原理 p0埠8位中的一位結構圖見下圖 由上圖可見,p0埠由鎖存器 輸入緩衝器 切換開關 乙個與非門 乙個與門及場效電晶體驅動電路構成。再看圖的右邊,標號為p0.x引腳的圖示,也就是說p0.x引腳可以是p0.0到p0.7的任何一位,即在p0口有8個與上圖相同的電路組成。下面,我們...

微控制器IO口介紹 OK

微控制器i o口的使用 對微控制器的控制,其實就是對i o口的控制,無論微控制器對外界進行何種控制,或接受外部的何種控制,都是通過i o口進行的。51微控制器總共有p0 p1 p2 p3四個8位雙向輸入輸出埠,每個埠都有鎖存器 輸出驅動器和輸入緩衝器。4個i o埠都能作輸入輸出口用,其中p0和p2通...

微控制器IO分時復用技巧

基於中職比賽專案,本技巧不使用8255!簡介 原理分析 實現方法 抗干擾 接線圖 1 at89s52,共有p0 p1 p2 p3四組共32個i o口線。2 我們需要連線的裝置,以常用配置為例,如下表 這些裝置同時使用,遠遠超過了89s52本身的32根i o線數量,通常是要利用8255模組擴充套件才能...