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
{
}
新聞熱點
疑難解答