微控制器C語言程式設計

2021-06-25 12:29:07 字數 1931 閱讀 2306

一、首先我們先了解一下51微控制器的標頭檔案#include

為了能看懂reg51.h標頭檔案,下面需了解keil c51編譯器擴充套件的關鍵字:

關鍵字用途

說明bit

位標量宣告

宣告乙個位標量或位型別

sbit

位變數宣告

宣告乙個可位定址變數

sfr特殊功能暫存器宣告

宣告乙個特殊功能暫存器(8位)

sfr16

特殊功能暫存器宣告

宣告乙個特殊功能暫存器(16位)

data

儲存器型別說明

直接定址的8051內部資料儲存器

bdata

儲存器型別說明

可位定址的8051內部資料儲存器

idata

儲存器型別說明

間接定址的8051內部資料儲存器

pdata

儲存器型別說明

分頁定址的8051外部資料儲存器

xdata

儲存器型別說明

8051外部資料儲存器

code

儲存器型別說明

8051程式儲存器

interrupt

中斷函式宣告

定義乙個中斷函式

reetrant

再入函式宣告

定義乙個再入函式

using

暫存器組定義

定義8051工作暫存器組

reg51.h檔案主要定義了特殊功能暫存器和可位定址變數:

如sfr    p3     = 0xb0;

sbit  rxd  = 0xb0;

等.二、多個工程檔案連線的基本方法

多個函式在多個c原始檔中,可使用檔案包含其它c原始檔或在本檔案中使用extern關鍵字。

三、資料型別的隱式轉換:

bit -> char -> int -> long -> float

signed -> unsigned

四、變數的定義

在c51中對變數定義的格式:[儲存種類] 資料型別 [儲存器型別] 變數名錶;

儲存種類包括auto、extern、static和register,其中auto為預設值。其作用:

data

訪問速度最快

直接訪問內部資料儲存器(128b)

bdata

允許位與位元組混合訪問

可位訪問內部資料儲存器(16b)

idata

允許訪問全部內部位址

間接訪問內部資料儲存器(256b)

pdata

movx @ri指令訪問

分頁訪問外部資料儲存器(256b)

xdata

movx @dptr指令訪問

外部資料儲存器(64k)

code

movc @dptr指令訪問

程式儲存器(64k)

若忽略儲存器型別,則按編譯模式small、compact或large所規定的預設儲存器型別確定變數的儲存器型別。

1.small時,變數被定義在80c51微控制器的內部資料儲存器(data區)中。

2.compact時,變數被定義在分頁外部資料儲存器(pdata區)中。

3.large時,變數被定義在外部資料儲存器(xdata區)中。

五、可位定址物件定義

1.sbit 位變數 = 位位址;

sbit  rxd  = 0xb0;

2.sbit 位變數 = 特殊功能暫存器名^位位置;

sbit rxd = p3^0;

3.sbit 位變數 = 位元組位址^位位置;

sbit rxd = 0xb0^0;

同理,當物件為c51內部資料儲存器的可定址區(bdata)時:

int bdata num = 1234;

sbit num_bit15 = num^15;

位位置取決於資料型別在記憶體中占用的位數。

微控制器程式設計

1 data idata pdata和xdata的區別 2 微控制器中的位 bit 位元組 byte 字 word stc89c52 共有 512 位元組的 ram 是用來儲存資料的,比如我們定義的變數都是直接存在 ram 裡邊的。但是微控制器的這 512 位元組的 ram在地位上並不都是平等的,而...

51微控制器C語言

使用c語言已成為微控制器應用系統開發的趨勢。include 包含微控制器暫存器的標頭檔案這個檔案對微控制器內部各種暫存器進行了定義。如果將 sfr p0 0x80 語句中的 p0 改為其他名字,如 q0 那麼在程式設計時,使用第一行的 檔案包含 處理命令後,微控制器以後就不再認識 p0 而是只認識 ...

微控制器程式語言的比較

微控制器又稱單片微控制器,它是把乙個計算機系統,包括cpu ram rom 定時 計數器和多種i o介面整合到乙個晶元上。由於微控制器的種種優點和特性,其應用領域極其廣泛。微控制器系統同樣也由硬體系統和軟體系統構成,因此涉及到程式的編寫問題。微控制器的程式語言很多,大致分成三類 機器語言 組合語言 ...