微控制器知識總結(一)
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
{
}