51基礎知識——51單片機小結(一)

本文最後編輯於2020-2-3學習

概述

51單片機是比較適合新手入門的一款單片機,結構簡單,易於學習。本博客爲筆者自學完單片機後進行的小總結。
單片機我也是學學放放,中間遇到了不少挫折(固然如今也是),我是自學了C語言以後,在大一下學期開始接觸51的,因此,個人51系列blog比較淺顯,由於用單片機的時間較少,因此,也並不全面,僅供參考。若有錯誤,敬請指正。.net

正文

51單片機的結構(基於MCS-51)

單片機也叫單片微控制器,能夠簡單的理解爲:一種集成在芯片上的微型計算機系統。通用計算機採用馮諾依曼結構(不徹底是馮諾依曼結構)而51單片機屬於哈佛結構。
blog

爲何51單片機要使用哈佛結構?

(這裏之說馮諾依曼結構與哈佛結構的差別)馮諾依曼結構認爲程序是特殊的數據,因此將程序與數據一塊兒存儲,而哈佛結構將程序與數據分離存儲。單片機通常用於控制領域,我的電腦,死機的話能夠重啓,而單片機通常工做時無人看管,若是跑飛,可能會形成極大的損失。在馮諾依曼結構中,數據與程序一塊兒儲存,程序跑飛,可能會對原有的程序片斷進行修改,而在哈佛結構中程序片斷與數據分離,即便跑飛,程序也不會被修改,(且跑飛後規律很明顯,程序區不變,數據區的數據不斷變化),相對馮諾依曼結構,哈佛結構的單片機跑飛的概率會變低。get

存儲器結構

既然講到了哈佛結構是程序與數據分開來存儲的,那就說一說51存儲器的結構
ROM:程序存儲器
RAM:數據存儲器
對於51單片機來講__ROM__是必備的,沒有ROM單片機就不能工做,當單片機工做時,指令是從ROM去除來一條一條的執行的。
ROM又有內部ROM和外部ROM之分,內部ROM是在單片機內部的,而外部ROM,是經過地址總線來和單片機通信的。博客

單片機是如何來判斷該從內部ROM開始讀取程序仍是從外部RAM開始讀取程序?

這裏引出單片機的第一個比較重要的引腳EA(EA要加上劃線,取反),當EA爲高電平(5v)時,單片機從內部存儲器開始讀取程序,當EA爲低電平時,單片機從外部存儲器開始讀取程序。io

高電平與低電平

在數字電路中高電平表明1,低電平表明0,通常規定低電平爲0~0.25V,高電平爲3.5~5V。入門

爲何單片機有一些引腳要加上劃線(如 EA引腳)?

加上劃線的引腳表明低電平有效,如EA引腳,加低電平的話,單片機才從外部ROM開始讀取指令執行(這樣說不嚴謹,能夠簡單的這樣記)。原理

引腳

51單片機一共有40個引腳:P0、P一、P二、P三、VCC、GND、RST、EA(反)、ALE、PSEN(反)、XTAL一、XTAL2.
P0到P3爲輸入輸出口。
VCC、GND是主電源引腳。
RST、EA(反)、ALE、PSEN(反)爲控制引腳。
XTAL一、XTAL2爲震盪電路引腳。程序

爲何須要震盪電路?

震盪電路通常使用晶振和電容組成、能夠產生標準的正弦波信號,至關於單片機的心臟,震盪電路震盪一次,產生一個脈衝信號,單片機執行一次或屢次指令。im

關於控制引腳

RST就至關於重啓
EA(反) 至關於要不要從u盤中啓動

其餘待補充。。。(目前尚未用到)

I/O口

P一、P二、P3 做爲 準雙向I/O口 來使用,P0做爲 雙向I/O口 使用。

準雙向I/O口

準雙向I/O口在做爲輸入口使用時,應先寫1,再使用。
其中
1.在有外部存儲器或拓展I/O口時P0分時複用爲低八位地址總線或雙向數據總線、P2做爲高八位地址總線或雙向數據總線。
2.P0口做爲I/O口輸入時,不須要上拉電阻但須要先置1而後再使用
3.P0口輸出時,因爲內部沒有上拉電阻,故要外接上拉電阻
4.只有P0口沒有內接上拉電阻,其餘口都有上拉電阻

工做週期和時序

復位方式

在時鐘電路工做之後,當外部電路使得RST端出現2個機器週期以上的高電平,系統內部自動復位(重啓)。復位方式有兩種,手動復位和自動復位。


機器週期和指令週期

機器週期

一個機器週期有六個狀態分別爲S1-S6.每一個狀態下有兩拍 P一、P2,而一個時鐘週期(震盪週期)爲一拍

指令週期

計算機取一條指令至執行完該指令須要的時間爲指令週期,不一樣指令,週期不一樣,大部分指令由一個指令週期或兩個指令週期完成,只有乘法、除法指令須要4個指令週期。

以12M的晶振爲例,其時鐘週期爲 1/12M = 1/12us,機器週期爲時鐘週期X12, 爲1us

爲什麼會出現11.0592MHz的晶振?

按照上文所述,12M的晶振應該是比較適合單片機選用的晶振,計算出的機器週期正好爲1us方便使用,但爲什麼會出現11.0592M的晶振?,緣由是通訊時使用的波特率,11.0592能夠被較好的分頻,而12M每次分頻後會產生偏差,偏差慢慢積累會致使數據愈來愈不許確,故有11.0592M的晶振。

參考資料
單片機原理及應用
分析單片機晶振大多爲11.0592的緣由
爲何單片機的晶振會有 11.0592MHz 這個數字?

相關文章
相關標籤/搜索