1. 程式人生 > >微控制器知識總結(一)

微控制器知識總結(一)

1、什麼是微控制器?

微控制器是指一個整合在一塊晶片上的完整計算機系統。完整的計算機系統包括:CPU、記憶體、內部和外部匯流排系統,同時整合諸如通訊介面、定時器、實時時鐘等外圍裝置,

2、Keil C51儲存區關鍵字

    (1)內部資料儲存區----分三種不同的儲存型別data、idata和bdata

data:儲存型別識別符號通常指低128位元組的內部資料區,儲存的變數直接定址

idata:儲存型別識別符號指內部的256個位元組的儲存區,但是隻能間接定址,而且速度比直接定址慢

bdata:儲存型別識別符號指內部可定址的16位元組儲存區,20H到2FH可以在本區域宣告可定址位的資料型別

    (2)外部資料儲存區

外部資料區可讀寫訪問外部資料區比內部資料區慢,因為外部資料區是通過一個數據指標載入一個地址間接訪問的,編輯器提供兩種不同的儲存型別訪問外部資料xdata和pdata

xdata:儲存型別識別符號指外部資料,64K位元組內的任何地址(STC89C52RC)

pdata:儲存型別識別符號僅指1頁或者256位元組的外部資料區

    (3)程式儲存區

程式儲存區是隻讀的,最多可以有64K位元組的程式儲存區,程式程式碼包括所有的函式和庫儲存在程式區,常數變數也是儲存在程式儲存區,C51編輯器可以使用code關鍵字識別符號訪問程式儲存區

3、sbit使用

    sbit P0_1 = P0^1;  //說明:其中P0必須先用sfr定義好

因此這裡用 sbit P0_7 = P0^7;就是定義用符號P0_7來表示P0.7引腳

4、中斷系統

    中斷服務函式:當出現中斷時,程式執行轉移到標記有“interrupt”關鍵字的函式內進行相關中斷資訊的處理

keil開發環境中,中斷服務函式是以函式的方式來實現的,中斷服務函式格式如下:

void 函式名(void) interrupt 中斷號 using 工作組

{

    //中斷服務函式內容

}

例如:  

void Timer0IRQ(void) interrupt 1 using  0   //中斷服務函式

{

    TH0 = (65536-50000)/256;   //計數器暫存器高8位重新載入

    TL0 = (65536-50000)%256;   //計數器暫存器低8位重新載入

    P2 = 1<<i;  //進行移位操作

    i++;  //自加

}

注意:using 工作組可以忽略不寫,而暫存器工作組有4個(0-3);預設使用暫存器工作組0

void Time0IRQ(void) interrupt 1

{

}