1. 程式人生 > >51微控制器——硬體基礎

51微控制器——硬體基礎

微控制器——硬體基礎知識

宗旨:技術的學習是有限的,分享的精神是無限的。

1、微控制器內部資源

STC89C52:8KFLASH、512位元組RAM、32個IO口、3個定時器、1個UART、8箇中斷源

(1)Flash(硬碟)——程式儲存空間 —— 擦寫10萬次,斷電資料不丟失,讀寫速度慢

(2)RAM(記憶體)——資料儲存空間 —— 斷電資料丟失,讀寫速度快,無限次使用

(3)SFR  —— 特殊功能暫存器

2、微控制器最小系統


最小系統:最少元件組成微控制器可以工作的系統。

三要素:

(1)、 電源電路:5V

(2)、 晶振電路:11.0592MHZ、兩個30PF

(3)、 復位電路:

P0:開漏輸出,必須加上拉電阻

準雙向口:

強推輓輸出:電流驅動能力強

高阻態

上下拉電阻:上拉電路就是將不確定的訊號通過一個電阻拉到高電平,同時限流作用。下拉電阻就是下拉到低電平。

上下拉電阻選取:從降低功耗方面考慮應該足夠大,因為電阻越大,電流越小;驅動能力來看,小電阻

3、硬體基礎知識

(1)、電磁干擾(EMI)——靜電放電(ESD)、快速瞬間脈衝群(EFT)、浪湧(Surge)

(2)、去耦電容的使用

低頻濾波電容,平常應用最多的事鉭電容,電解電容,陶瓷電容,起到去除電源低頻紋波,穩定電源的作用。

高頻濾波電容,電容附近,通常用104電容來進行去除高頻干擾。

(3)、三極體(PNP,NPN) b,c,e  --- 電壓驅動

    控制應用

    驅動應用

4LED發光二極體 ——電流驅動


通常紅色貼片LED, 靠電流驅動,電壓1.8V~2.2V,電流1~20mA,在1~5mA亮度有所變化,5mA以上亮度基本不變。

VCC 電壓是 5V,發光二極體自
身壓降大概是 2V,那麼在右邊 R34 這個電阻上承受的電壓就是 3V。

R = U/I  —— 1~20mA —— R:150~3K

5C語言基礎

(1)、基本運算子

+  -   *   /   %   ++   --    =  ==   !=   +=   -=   <<   >>  &&   ||   !   &   |   ~   ^

(2)、迴圈(c語言以;表示一條語句)

for/while/do...while

for(表示式1;表示式2;表示式3)

{

       語句;//可以為空

}

while(表示式)//表示式為真,執行語句

{

        語句;//可以為空

}

do

{

        語句;//可以為空

}while(表示式);

(3)、函式 (模組化的思想)

型別  函式名(引數型別 引數)

{

    函式體;

}

(4)、陣列

      <1>、具有相同資料型別

      <2>、具有相同的型別

      <3>、在儲存器中連續儲存

(5)、51微控制器常用延時辦法——迴圈、定時器

(P0 = ~(1 << i++);)

5、流水燈

給IO口一個低電平即可點亮LED燈。

注:微控制器對外設的操作其實就是對IO口電平的控制。

#include <reg52.h>   //包含特殊功能暫存器定義的標頭檔案

typedef unsigned int  uint;
typedef unsigned char uchar;

int  main(void)
{
  uint i = 0; // 定義迴圈變數i,用於軟體延時
  uchar j = 0; // 定義計數變數j,用於移位控制

  while(1)  // 主迴圈,程式無限迴圈執行該迴圈體語句
  {
    P0 = ~(1 << j++); // P0等於1左移j位,控制8個LED

    for(i = 0; i < 20000; ++i);  //軟體延時

    if(j >= 8)   //移位計數超過7後,再重新從0開始
    {
      j = 0;
    }
  }

  return 0;
}