keil c51語言基礎知識
關鍵字用途
說明bit
位標量宣告
宣告乙個位標量或位型別的函式
sbit
位標量宣告
宣告乙個可位定址變數
sfr特殊功能暫存器宣告
宣告乙個特殊功能暫存器
sfr16
特殊功能暫存器宣告
宣告乙個16位的特殊功能暫存器
data
儲存器型別說明
直接定址的內部資料儲存器
bdata
儲存器型別說明
可位定址的內部資料儲存器
idata
儲存器型別說明
間接定址的內部資料儲存器
pdata
儲存器型別說明
分頁定址的外部資料儲存器
xdata
儲存器型別說明
外部資料儲存器
code
儲存器型別說明
程式儲存器
interrupt
中斷函式說明
定義乙個中斷函式
reentrant
再入函式說明
定義乙個再入函式
using
暫存器組選擇
選擇微控制器的工作暫存器組
_at_
絕對位址
為非位變數指定儲存空間絕對位址
small
儲存模式選擇
引數及區域性變數放入可直接定址的內部ram
compact
儲存模式選擇
引數及區域性變數放入分頁外部資料儲存區(256位元組)
large
儲存模式選擇
引數及區域性變數放入分頁外部資料儲存區(64kb)
不允許在bdata區中宣告float和double型變數
資料型別
資料型別
位數位元組數
取值範圍
bit1
0sfr81
0~255
sfr16162
0~65535
sbit
1可進行位定址的sfr的某位的絕對位址
c51語言的特殊功能暫存器以及位變數定義
sfr scon = 0x98; /*序列口控制暫存器位址98h*/
若要訪問16位sfr,16位sfr的低位元組位址必須作為sfr16的定義位址。
sbit 位名 = 特殊功能暫存器^位置
sbit cy = psw^7; /*定義cy位為psw.7*/
sbit 位名 = 位元組位址^位置sbit cy = 0xd0^7; /*cy位位址為0xd7*/
sbit 位名 = 位位址sbit cy = 0xd7; /*cy位位址為0xd7*/
定義位變數bit bit_name;
函式可以包含型別為bit的引數,也可以將其作為返回值bit func(bit b0,bit b1)
位變數不能用來定義指標和陣列
c51的絕對位址訪問
#include#deifine porta xbyte[0xffc0] //將porta口定義為外部i/o口,位址為0xffc0
void main(void)
中斷服務函式
**void 函式名()[interrupt 中斷號][using n]
中斷號中斷源
0外部中斷0
1定時/計數器0
2外部中斷1
3定時/計數器1
4序列口
using:選擇微控制器的工作暫存器組,可以不選用。
編寫中斷程式時,應遵循的原則:
中斷函式不能進行引數傳遞。
中斷函式沒有返回值。
在任何情況下都不能直接呼叫中斷函式。
如果在中斷函式中在呼叫其他函式,則被呼叫的函式所使用的暫存器區必須與中斷函式使用的暫存器區不同。
微控制器C語言C51的函式
函 數 1.函式的定義 函式定義的一般格式如下 函式型別 函式名 形式參數列 reentrant interrupt m using n 形式引數說明 前面部件稱為函式的首部,後面稱為函式的尾部,格式說明 1 函式型別 函式型別說明了函式返回值的型別。2 函式名 函式名是使用者為自定義函式取的名字以...
c51為啥要巨集定義時鐘 c51時鐘
程式效果 時鐘,包括時間可調,定時到了鬧鐘響,用蜂鳴器,本程式已經除錯通過 喇叭接在p2.0上.埠均可自行更改.include 標頭檔案 include define uchar unsigned char 巨集定義 define uint unsigned int sbit key1 p3 5 位...
51微控制器與C51
微控制器又稱單片微控制器,是在一塊晶元中整合了cpu 處理器 ram 資料儲存器 rom 程式儲存器 定時器 計數器和多種功能的i o 輸入 輸出 介面等一台計算機所需要的基本功能部件,從而可以完成複雜的運算 邏輯控制 通訊等功能。51微控制器是對所有相容intel 8031指令系統的微控制器的統稱...