單片機簡介

2021-02-08 鎮上寶塔

單片機簡介

數字電路簡介

在一個控制系統中, 單片機是電路的一部分, 單片機中的程序是針對其所在的電路編寫

的。因此,要對單片機編程並實現一定的功能,必須了解整個系統的電路圖。單片機編程是

針對某個特定的電路進行的單片機編程是針對某個特定的電路進行的, 這一點和普通的編程不一樣。 編程時很可能要經常參照電路圖。與單片機直接相關的電路大都是數字電路。 數字電路各部分的功能十分明確, 因此相對比較容易掌握。

簡單地說,數字電路就是只有「0」和「1」兩種信號的電路。判別信號究竟是「0」還

是「1」是通過電壓的大小(常稱作「電平」 )來判斷的。不同的數字器件的電平判斷標準是

不一樣的。常用的數字器件以高電平(超過某一閾值的電平)作為邏輯「1」 ,以低電平(低於某一閾值的電平)作為邏輯「0」 。其中高電平閾值大於低電平閾值,處於高電平閾值與低

電平閾值之間的電壓是無效的。 高電平閾值與低電平閾值的具體值與數字器件的供電電壓有

關,如 AT89S51 單片機的高電平閾值為(0.2Vcc+0.9)V,低電平閾值為(0.2Vcc-0.1)V,

其中 Vcc 為單片機的供電電壓。 早年常用的數字器件的額定供電電壓為 5V, 現在 3.3V、 1.8V

等電壓的數字器件已經大量使用了。在 Easy 51 Kit Pro 中,我們仍使用 5V 供電的單片機。

另外,還有一種 RS-232 電平標準,以-12V~-5V 作為邏輯「1」 ,以 5V~12V 作為邏輯「0」 。

電腦上的串口都符合 RS-232 標準。還有一個「地」的概念。在電路中「地」並不是通常意義中的地,而是指電路中的一點,這一點的電壓被人為地規定為 0V。

MCS-51 單片機簡介

目前生產單片機產品的公司非常多, 當中較有影響力的有 intel 公司推出的 MCS-51 系

列等。很多公司的產品都是與 MCS-51 架構兼容(MCS-51 compatible)的。本資料中採用的

atmel 公司的 AT89C51/52 或 AT89S51/52 單片機,就是兼容 MCS-51 架構的單片機。

Atmel 公司的 AT89C51( 以後簡稱「C51」)、AT89C52( 以後簡稱「C52」)、AT89C2051

( 以後簡稱「C2051」)以及 C51、C52 的換代產品 AT89S51( 以後簡稱「S51」)、AT89S52

( 以後簡稱「S52」)容易上手、價格低廉(不超過 10 元/片)、資料豐富,是初學者入門

時廣泛採用的單片機。

C51 擁有 4096 字節(1 字節=8 位)的片內程序存儲器、128 字節的 RAM、32 個 I/O 口、

兩個定時器、6 個中斷源、一個串口等。C52、C2051 的資源與 C51 差別不大,其中 C52 的片

內程序存儲器為 8192 字節、RAM 為 256 節、定時器有 3 個,其它與 C51 一樣; C2051 的片

內程序存儲器為 2048 字節、I/O 口只有 15 個,另比 C51 多了一個模擬比較器,工作電壓範

圍比較寬,為 2.7V~6V(C51/52、S51/52 為 4.5~5.5V),其它與 C51 一樣。

I/O、 定時器、 中斷、 串口等資源的用法在後面有詳細介紹。 這裡只對程序存儲器與 RAM

作一下說明。單片機程序代碼經過編譯(C 程序)或彙編(彙編程序)後,要把編譯或彙編

得到的代碼文件(一般來說編譯得到 hex 格式文件、彙編得到 bin 格式文件)燒寫到單片機

內,存放這個程序的地方就是程序存儲器。顯而易見,單片機的程序存儲器越大,我們就可

以把越大、越複雜的程序放進去。如果我們編寫的程序太大,那麼單片機的程序存儲器就有

可能會放不下這個程序。這時,解決辦法就只有精簡代碼、外接程序存儲器(前提是所用的單片機支持使用外部程序存儲器)或採用程序存儲器容量更大的單片機。RAM 是單片機程序

運行時存放變量的地方,常量也可以放在 RAM 中。C51 中的 RAM 大小為 128 字節,這就是說

單片機程序中最多只能同時存在 128 個 unsigned char 型的變量或 64 個 unsigned int 型的

變量(在 Keil 環境中,int 型變量的長度為 16 位,這與 VC 的 32 位不一樣)或者是相應的

中國科學技術大學業餘無線電協會 各種不同類型變量的組合。 可以看出, 單片機程序所允許的規模比 Windows 或其它作業系統環境下的程序要小得多。編寫單片機程序時一定要注意不要濫用資源。

S51 與 S52 分別是 C51、C52 的換代產品。從用戶的角度看,S5x 單片機比相對應的 C5x

單片機多了看門狗與在線編程 (ISP) 功能, 另外最高運行速度有所增加 (C5x 最高支持 24MHz最高支持 24MHz 的時鐘頻率)。看門狗的使用在後面會有詳細介紹,我們來看看單片機的在線編程(ISP)功能。要把程序燒寫到 AT89C 系列單片機中, 最常用的做法是把單片機插入專用的編程器中, 通過編程器把程序燒到單片機裡。 這樣做的麻煩之處是在調試程序時, 編程者對程序作出的每次修改,都要把單片機從電路中拔出來,插到編程器,燒好後又要把單片機重新插回電路板。可以想

的時鐘頻率, 而 S5x 最高支持 33MHz 的時鐘頻率, 但市面上比較容易買到的 S5x 單片機仍只

象,這種工作是吃力不討好的。利用 S5x 單片機的 ISP 功能,我們就無須來回插拔單片機,

只要在電路中把單片機的 ISP 編程引腳接出來, 並且這幾個引腳所接的外圍電路對 ISP 沒有

影響,就可以用 ISP 編程器對單片機進行燒寫了。另外,支持 AT89C 系列單片機的編程器成

本要比 ISP 下載線高最少幾倍。一根並口 ISP 下載線的成本僅幾元錢。

除了 S 系列、C 系列外,atmel 公司的 MCS-51 兼容產品也有其它系列,它們的主要區

別在於供作電壓範圍,在此就不作介紹了。

值得注意的是,一片單片機可以反覆擦寫的次數是有限的,atmel 的 C 系列、S 系列單

片機的聲稱可重複擦寫次數為 1000 次。

下面以 S52 為例,對其引腳功能一一作出說明。C51、C52 以及 S51 的引腳功能與 S52

大致相同,如有遇到不同的地方會用 粗斜體字 特別說明。

單片機程序指令的執行是以振蕩器的振蕩來驅動的。在MCS-51架構中,每12個振蕩器

周期組成一個指令周期(或稱機器周期)。單片機執行指令的時間是以指令周期為單位的。

不同指令的執行時間可能是不同的,一條指令的執行時間最短為一個指令周期。

在MCS-51架構中,每12個振蕩器

周期組成一個指令周期(或稱機器周期)。單片機執行指令的時間是以指令周期為單位的。

不同指令的執行時間可能是不同的,一條指令的執行時間最短為一個指令周期。因此,單

片機所接的振蕩器頻率越高,它執行指令的速度就越快。

型號同樣為AT89S52的晶片,在其後面還有頻率編號,有24MHz和33MHz等可選。讀者在

購買和選用時要注意了。 如AT89S52 24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯

片。單片機晶片後綴的詳細含義可見相應單片機數據手冊的Ordering Information。

復位 RST 9

復位

在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現在此引腳時,將

使單片機復位,只要這個引腳保持高電平,單片機便一直處於復位狀態。復位後P0~P3口均

置1,引腳表現為高電平,程序計數器和特殊功能寄存器SFR全部清零。當復位引腳由高電平

變為低電平時,晶片從ROM的00H處開始運行程序。復位操作不會對內部RAM有所影響。常用

的復位電路如圖2.4所示。當單片機上電時,由於電容的作用,RST引腳會處於短暫的高電平

狀態,直到電容充電到一定程度時,RST引腳的電平會被8.2K的電阻拉低,單片機開始運行

程序。圖中的按鍵為手動復位按鍵,當按下復位按鍵後,RST引腳會被1K的電阻上拉至高電

平, 單片機復位, 按鍵鬆開後, RST恢復低電平, 單片機重新從程序存儲器的00H處運行程序。

手動復位按鍵在單片機的最小系統中並不是必須的,但對單片機的復位控制會方便些。

常用的復位電路

儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數據存儲器時,P2口

送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。

(4)P3埠[P3.0~P3.7] P2是一個帶有內部上拉電阻的8位雙向I/0埠。 輸出時可驅

動4個TTL。 埠置1時,內部上拉電阻將埠拉到高電平,作輸入用。對內部Flash程序存

儲器編程時,接控制信息。除此之外P3埠還用於一些專門功能,

其它的控制或復用引腳

(1)ALE/-PROG 30 訪問外部存儲器時,ALE(地址鎖存允許)的輸出用於鎖存地址的

低位字節。 即使不訪問外部存儲器, ALE端仍以不變的頻率輸出脈衝信號(此頻率是振蕩器頻

率的1/6)。在訪問外部數據存儲器時,出現一個ALE脈衝。對Flash存儲器編程時,這個引腳

用於輸入編程脈衝PROG。

(2)PSEN 29 該引腳是外部程序存儲器的選通信號輸出端。 當S52由外部程序存儲器取

指令或常數時,每個機器周期輸出2個脈衝即兩次有效。但訪問外部數據存儲器時,將不會

有脈衝輸出。

(3)-EA/Vpp 31 外部訪問允許端。當該引腳訪問外部程序存儲器時,應輸入低電平。

要使S52隻訪問外部程序存儲器(地址為0000H-FFFFH),這時該引腳必須保持低電平。當使

用內部的程序存儲器時,此引腳應與Vcc相連。當使用內部的程序存儲器時,此引腳應與Vcc相連。對Flash存儲器編程時,用於施加Vpp編程電壓。

C2051 的引腳功能與 C51 相仿,在此不另外介紹了

相關焦點

  • ARM7單片機輕鬆入門與實踐 — 暢學單片機
    巧妙地將單片機原理與應用和單片機C語言編程的知識點融入各個實例中,不僅開闢了單片機應用的視野,又充實了對單片機從基礎到應用所需要的知識。使廣大學者可一邊學單片機結構理論知識一邊用C語言編程實現各種功能,既能高效地系統學習知識,又能提高編程思維能力。      在多角度、多方面的實例化講解中,讀者不僅掌握了單片機系統開發的基本技能,還開闊了單片機流行應用的視野。
  • 【技術經典】MSP430單片機超級經典資料大合集
    MSP430單片機自學筆記簡介:《MSP430單片機自學筆記》以Tl公司的MSP430系列16位超低功耗單片機為核心,介紹了MSP430系列單片機的特點和選型,詳細講述了MSP430系列單片機的結構和指令系統,對MSP430
  • Keil uVision4單片機
    今天也是第一次接觸到了單片機技術 想和大家分享關於Keil uVision4的一些問題和經驗Keil uVision4免費版是一款非常專業且權威的單片機開發工具。在學習單片機,微型計算機控制等課程,或者在protuse軟體上,Keil uVision4免費版會給你很大幫助。軟體簡介      keil 4可以幫你編寫程序,檢測程序,簡單的說就是通過這款軟體將高級語言翻譯成單片機能識別的語言,Keil uVision4可以用在彙編語言、C語言等等。
  • 單片機科普:單片機的IO口不夠用了怎麼辦?如何擴展單片機的IO口
    同樣的功能,每個人、每個團隊所做的技術方案都不會相同,但是單片機加外設的構架不會變。足可以看出單片機在電子設計中的重要性。1-華為榮耀體脂秤電路板-芯海的單片機在設計單片機電路的過程中,往往會遇到這種情況:單片機的GPIO口不夠用,但是又不是缺很多,如果要更換更多引腳的單片機可能會貴一些
  • 單片機小白系列(十) 單片機程序下載相關知識
    同樣是51單片機,Atmel的產品分為兩種,一種是早期的89Cxx系統,這種型號的單片機下載程序時,需要把單片機取下來,使用專用的編程器燒寫程序,非常麻煩;另一種是後來推出的支持ISP的89Sxx系列(ISP = In System Programming,在線編程),只需要幾根線連接單片機和下載器,就能輕鬆下載程序。
  • 單片機的燒寫原理
    而是,電腦在通過接口向單片機燒寫時(此時單片機 內沒有程序),電腦是如何通過接口訪問內部rom的??對應p口怎麼就會指向單片機內部rom(就像單片機是一個rom?有三種方式:1、把單片機當做一個ROM晶片,早期的單片機都是如此。將單片機放在通用編程上編程時,就像給28C256這樣的ROM中寫程序的過程一樣。
  • 單片機編程軟體大佬:明確單片機編程軟體編寫單片機程序步驟
    單片機用什麼軟體編程?單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。機器彙編是通過彙編軟體將源程序變為機器碼,用於MCS-51單片機的彙編軟體有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用彙編語言到逐漸使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最流行開發MCS-51系列單片機的軟體,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。
  • 單片機初學者必看
    但是沒有51單片機知識作為基礎,其他一切都是空中樓閣。必不能達到預期效果。51單片機作為入門級產品,現在更多的體現在教學意義上了。雖然大部分的產品,已經淘汰51,使用高級晶片或者增強型51晶片,但是奉勸初學者,還是要從底層、基礎、即51開始單片機的學習。學好、學會、精通51單片機再學習其他單片機也能很快入門。
  • Avr單片機和Stm32區別,Avr單片機選型技巧
    單片機的發展相當的迅速,現在各個廠商們也在速度、內存、功能上此起彼伏,競爭激烈,同時湧現出一大批擁有代表性單片機的廠商:Atmel
  • 單片機入門製作
    單片機也可以用這樣的方法,雖然這不是唯一的方法,但這較適合一般的單片機學習,好而不貴。ISP下載線就是一個設計有簡單電路的單片機程序下載工具,它就像塑造生命的天使,配上小巧的 ISP下載軟體就可以施與單片機靈魂。雖然我們不是上帝,但在後文我們先要親手塑造它,先做好心理準備。  實驗板:這是一年半載也玩不膩的傢伙,因為這是在學習中不斷擴展的。
  • 單片機程式語言的比較
    引言  單片機又稱單片微控制器,它是把一個計算機系統,包括cpu、ram、rom、定時/計數器和多種i/o接口集成到一個晶片上。提供的庫包含許多標準子程序,具有較強的數據處理能將已編好程序可容易的植入新程序,因為它具有方便的模塊化編程技術。  功能強而有彈性,提供的庫包含許多標準子程序,具有較強的數據處理能力,能將已編好程序容易的植入新程序,因為它具有方便的模塊化編程技術。
  • 單片機擴展技術
    數據線:片外ROM的8位數據線直接與單片機的P0口相連。ALE管腳與鎖存器的鎖存使能端G相連,用於單片機從片外ROM在讀指令時給出低8位地址的鎖存信號。片外程序存儲器的選用控制信號EA:當EA引腳接高電平時,CPU只訪問單片機內部的程序存儲器並執行內部程序存儲器中的指令,但當程序存儲量超過內部程序存儲器的最大容量時,將自動轉去執行單片機外部程序存儲器內的程序。當輸入信號引腳接低電平(接地)時,CPU只訪問外部程序存儲器並執行外部程序存儲器中的指令。
  • 閒說各家單片機的優缺點
    經常會在網上看到各家推廣單片機的人員宣傳他們代理的單片機,比如pic,avr,c8051等,當然從宣傳推廣的角度,總是要多說些他說宣傳推廣的單片機的優點,這樣才能讓眾多不是專家的工程師,學生,公司採購人員,老闆對其感興趣,進而受到誘惑而使用他們的單片機。
  • 單片機學習之二:單片機軟體使用簡明教程
    在我們開始單片機學習之前,我們有必要先來介紹一下單片機編程開發環境。我們現在常用的2種編程開發環境是:偉福WAVE和KEIL C軟體。我們這裡以大家最常用的KEIL C軟體為例,簡單介紹一下編程環境。
  • 單片機到底是不是嵌入式?
    只要符合上面定義,硬體上有以CPU為首的幾大件,軟體上能運行程序他就是計算機。而單片機是一種計算機,這種計算機的特點就是「單片」。如果你見過電腦主板,就知道這東西核心是一塊PCB板,上面焊接了眾多的晶片。而每一個晶片其實就是一個「單片」,所以電腦這臺計算機就是個「多片機」。而單片機就是只有一個晶片(本質上是晶片內只有一個半導體chip)的計算機系統。
  • 單片機時鐘電路原理
    ↑ 點擊上方「電子工程專輯」輕鬆關注時鐘電路就是一個振蕩器,給單片機提供一個節拍,單片機執行各種操作必須在這個節拍的控制下才能進行
  • 單片機keil 常見問題
    51單片機相關文章:51單片機教程 c語言相關文章:c語言教程 單片機相關文章:單片機教程
  • 單片機機器周期的計算
    8051系列單片機的一個機器周期同6個 S周期(狀態周期)組成。前面已說過一個時鐘周期定義為一個節拍(用P表示),二個節拍定義為一個狀態周期(用S表示),8051單片機的機器周期由6個狀態周期組成,也就是說一個機器周期=6個狀態周期=12個時鐘周期。
  • 單片機最小系統
    51單片機要復位只需要在第9引腳接個高電平持續2us就可以實現,那這個過程是如何實現的呢?在單片機系統中,系統上電啟動的時候覆位一次,當按鍵按下的時候系統再次復位,如果釋放後再按下,系統還會復位。所以可以通過按鍵的斷開和閉合在運行的系統中控制其復位。     1.開機的時候為什麼為復位在電路圖中,電容的大小是10uf,電阻的大小是10k。
  • 單片機學習,從入門到放棄?
    單片機的寄存器非常多,不知道該怎麼使用,也記不住哪些寄存器是幹什麼用的,這個其實也不難,一般的單片機完成一個具體的功能涉及到哪些寄存器,都會有例子給出,有些單片機,生產廠家也會給出相關的子程序,你只需要調用就可以了。