C51語言程式設計基礎

2021-10-25 12:15:55 字數 2238 閱讀 5975

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指令系統的微控制器的統稱...