01單片機——基礎知識

一、單片機概述

 1、什麼是單片機

      單片機就是在一塊硅片上集成了微處理器(類比CPU)、存儲器(類比硬盤和內存)及各種輸入/輸出接口的芯片(類比鍵盤鼠標控制芯片),這樣一塊芯片就具有了計算機的屬性,因而被稱爲單片型微型計算機,簡稱單片機。

2、單片機引腳描述

     單片機引腳分爲三類:①電源和時鐘引腳。如VCC、GND、XTAL1、XTAL2;②編程控制引腳。如RST,PSEN_n、ALE/PROG_n、EA_n/VPP;③I/O口引腳。如P0、P1、P2、P3,4組8位I/O口。

    VCC、GND——單片機電源引腳,不同型號單片機接入對應的電壓電源,常壓位+5V,低壓位+3.3V。

    XTAL1、XTAL2——外接時鐘引腳。XTAL1爲片內振盪電路的輸入端,XTAL2爲片內振盪電路的輸出端。8051的時鐘有兩種方式,一種是片內時鐘振盪方式,需在這兩個引腳外接石英晶體和振盪電容;另一種是外部時鐘方式,即將XTAL1接地,外部時鐘信號從XTAL2腳輸入。

    RST——單片機的復位引腳。當輸入連續兩個機器週期以上高電平時爲有效,用來完成單片機的復位初始化操作,復位後程序計數器PC=0000H,即復位後將從程序存儲器的0000H單元讀取第一條指令碼,通俗來講,就是單片機從頭開始執行程序。

    PSEN_n——程序存儲器允許輸出控制端。在讀外部程序存儲器時PSEN_n低電平有效,以實現外部程序存儲器單元的讀操作,由於現在我們使用的單片機內部已經有足夠大的ROM,所以幾乎沒有人再去擴展外部ROM,因此這個引腳只需瞭解即可。①內部ROM讀取時,PSEN_n不動作。②外部ROM讀取時,在每個機器週期會動作兩次。③外部RAM讀取時,兩個PSEN_n脈衝被跳過不會輸出。④外接ROM時,與ROM的OE腳相接。

    ALE/PROG_n——在單片機擴展外部RAM時,ALE用於控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實現低位地址和數據的複用。在沒有訪問外部存儲器器件,ALE以1/6振盪頻率輸出(即6分頻),當訪問外部存儲器時,以1/12振動週期輸出(12分頻),從這裏可以看出,當系統沒有進行擴展時,ALE會以1/6振盪週期固定頻率輸出,因此可以作爲外部時鐘,或作爲定時脈衝使用。PROG_n位編程脈衝的輸入端,單片機的內部有程序存儲器(ROM),它的作用時用來存放用戶需要執行的程序,那麼我們怎樣才能將寫好的程序存入這個ROM中?實際上,我們是通過編程脈衝輸入才寫進去的,這個脈衝的輸出端口就是PROG_n。現在有很多單片機都已經不需要編程脈衝引腳往內部寫程序了,比如我們用的STC單片機,它可以直接通過串口往裏面寫程序,只需要三個線與計算機相連即可。而且現在的單片機內部都已經帶有豐富的RAM,所以也不需要再擴展RAM 了。因此ALE/PROG_n這個引腳的用處已經不太大。

    EA_n/VPP——EA_n接高電平時,單片機讀取內部程序存儲器。當擴展有外部ROM時,當讀取完ROM後自動讀取外部ROM。EA_n接低電平時,單片機直接讀取外部ROM。8031單片機內部是沒有ROM的,所以使用8031單片機時,這個引腳是一直低電平的。8751單片機燒寫內部EPROM時,利用此引腳輸入21V的燒寫電壓。因爲現在我們用的單片機都有內部的ROM,所以再設計電路時此引腳始終接高電平。

    I/O口引腳——P0口、P1口、P2口和P3口;

3、電平特性

     單片機是一種數字集成芯片,數字電路中只有兩種電平:高電平和低電平。

     常用的邏輯電平有TTL、CMOS、LVTTL、ECL、PECL、GTL、RS-232、RS-422、RS-485、LVDS等。其中TTL和CMOS的邏輯電平按典型電壓可分爲4類:5V系列、3.3V系列、2.5V系列和1.8V系列。

     5V TTL和5V CMOS是通用的邏輯電平。3.3V及以下的邏輯電平被稱爲低電壓邏輯電平,常用的爲LVTTL電平。低電壓邏輯電平還有2.5V個1.8V兩種。ECL/PECL和LVDS是差分輸入/輸出。RS-422/485和RS-232是串口的接口標準,RS-422/485是差分輸入/輸出,RS-232是單端輸入/輸出。

4、進制與邏輯運算

   進制包括二進制、8進制、10進制和16進制。

   邏輯運算包括與(&、&&)、或(|、||)、非(!)、同或(C語言中沒有同或運算符,異或的非爲同或)、異或(^)。

5、C51中的基本數據類型

                    

    在C語言書記中還能看到short int,long int,signed short int等數據類型,在單片機的C語言中我們默認的規則如下:short int即爲int,long int即爲long,前面若無unsigned符號則一律認爲是signed型。

6、C51數據類型擴充定義

     單片機內部有很多的特殊功能寄存器,每個寄存器在單片機內部都分配有唯一的地址,一般我們會根據寄存器功能的不同給寄存器賦予各自的名稱,當我們需要在程序中操作這些特殊功能寄存器時,必須要在程序的最前面將這些名稱加以聲明,聲明的過程實際上就是將這些個寄存器在內存中的地址編號賦給這個名稱,這樣編譯器在以後的程序中才可認知這些名稱所對應的寄存器。實際上這些寄存器的聲明已經完全被包含在51單片機的特殊功能寄存器聲明頭文件“reg51.h”中了。

       sfr——特殊功能寄存器的數據聲明,聲明一個8位的寄存器。

       sfr16——16位特殊功能寄存器的數據聲明。

       sbit——特殊功能位聲明,也就是聲明某一個特殊功能寄存器中的某一位。

       bit——位變量聲明,當定義一個位變量時可使用此符號。

       例如:sfr SCON = 0x98;SCON時單片機的串行口控制寄存器,這個寄存器在單片機內存中的地址位0x98,這樣聲明後,我們以後要操作這個控制寄存器時,就可以直接對SCON進行操作,這時編譯器也會明白,我們實際上要操作的單片機內部0x98地址處的這個寄存器,而SCON僅僅時這個地址的一個代號或者名稱而已。當然,我們也可以定義成其他的名稱。

       例如:sfr16 T2 = 0xCC;聲明一個16位的特殊功能寄存器,它的起始地址位0xCC。

       例如:sbit TI = SCON^1;SCON是一個8位寄存器,SCON^1表示這個8位寄存器的次低位,最低位是SCON^0;SCON^7表示這個寄存器的最高位。該語句的功能是將SCON寄存器的次低位聲明爲TI,以後若要對SCON寄存器的次低位操作,則可直接操作TI。

7、C51中常用的頭文件

      通常由reg51.h,reg52.h,match.h,ctype.h,stdio.h,stdlib.h,absacc.h,intrins.h。但常用的卻只有reg51.h或reg52.h,match.h。

      reg51.h和reg52.h是定義51單片機或52單片機特殊功能寄存器和位寄存器的,這兩個頭文件中的大部分內容是一樣的,52單片機比51單片機多了一個定時器T2,因此reg52.h中就比reg51.h中多幾行定義T2寄存器的內容。

     match.h是定義數學運算的,比如求絕對值,求方根,求正餘弦等,該頭文件中包含有各種數學運算函數,當我們需要使用時可以直接調用它的內部函數。

8、C51中的運算符

                        

9、C51中的基礎語句

                           

10、學習單片機應該掌握的內容

  1)、掌握單片機最小系統能夠運行的必要條件:電源、晶振、復位電路。

  2)、掌握對單片機任意I/O口的操作:輸出控制電平高低、輸入檢測電平高低。

  3)、定時器:重點掌握最常用的方式2.

  4)、中斷:掌握外部中斷、定時器中斷、串口中斷。

  5)、串口通信:掌握單片機之間通信、單片機與計算機之間的通信。



參考《新概念51單片機C語言教程入門、提高、開發》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章