www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]Data Types數(shù)據(jù)類型數(shù)據(jù)類型位數(shù)字節(jié)數(shù)值域bit10-1Signed char81-128-+127Unsigned char810-255enum8/161or 2-128-+127 or -32768-+32767Signed short162-32768-+32767Unsigned short1620-65535Signed int162-32768-

Data Types數(shù)據(jù)類型

數(shù)據(jù)類型

位數(shù)

字節(jié)數(shù)

值域

bit

1

0-1

Signed char

8

1

-128-+127

Unsigned char

8

1

0-255

enum

8/16

1or 2

-128-+127 or -32768-+32767

Signed short

16

2

-32768-+32767

Unsigned short

16

2

0-65535

Signed int

16

2

-32768-+32767

Signed long

32

4

-2147483648 to 2147483647

unsigned long

32

4

0 to 4294967295

float

32

4

±1.175494E-38 to ±3.402823E+38

Sbit

1

0 to 1

sfr

8

1

0 to 255

sfr16

16

2

0 to 65535

Bit Types位類型

描述(略)

位變量和位聲時(shí)存在以下限缺制:

l 禁止中斷的函數(shù)(用#pragma disable),和使用usigng聲明寄存器組(usigng n)的函數(shù)不能返回一個(gè)位變量。如果這樣使用時(shí),Cx51編譯器就會(huì)報(bào)錯(cuò)。

l 位變量不能聲明為指針:bit *ptr /*錯(cuò)誤的聲明*/

l 不能使位變量數(shù)組:bit ware [5]; /*錯(cuò)誤的聲明*/

Bit-addressable Objects可位尋址的對(duì)象

可位尋址的對(duì)象就是可以位尋址也可以字節(jié)尋址的對(duì)象。只有占有位尋址空間的數(shù)據(jù)可以歸為這一類。Cx51把用idata聲明的變量放在可位尋址區(qū)域。

int bdata ibase; /* Bit-addressable int */

char bdata bary [4]; /* Bit-addressable array */

上面兩個(gè)變量都是可位尋址的變量。所以這單獨(dú)地訪問(wèn)這兩個(gè)變量的每一位。使用關(guān)鍵字sbit可以定義新的位變量來(lái)訪問(wèn)用badata定義的變量,如:

sbit mybit0 = ibase ^ 0; /* bit 0 of ibase */

sbit mybit15 = ibase ^ 15; /* bit 15 of ibase */

sbit Ary07 = bary[0] ^ 7; /* bit 7 of bary[0] */

sbit Ary37 = bary[3] ^ 7; /* bit 7 of bary[3] */

注意:不可以聲明float變量的某一位為位變量。但是可以通過(guò)共同體來(lái)訪問(wèn)一個(gè)float變量的某一位。

位變量的地址是物理地址。位地址0指第一個(gè)可位尋址的字節(jié)的最低位。整型在內(nèi)存中的存放是高位字節(jié)在前的,所以,整型的第最低位是就是第二個(gè)可位尋址字節(jié)的最低位,也就是位址的第8位。

Special Function Registers特殊功能寄存器

8051系列微處理器為特殊功能寄存器的存取提供了一個(gè)獨(dú)立的內(nèi)存區(qū)域。它位于地址0x80—0xFF,可以按位,字節(jié),字的方式存取。

在8051系列微處理器中,,SFR的個(gè)數(shù)和類型是不同的,所以Cx51編譯器并沒(méi)有預(yù)定義這些SFR的名字。預(yù)定義這些特殊功能寄存器名字的聲時(shí)文件在包含文件中。每個(gè)含文件包括可用的特殊功能寄存器的聲明。

Cx51為存取SFR提供了sfr, sfr16,和sbit數(shù)據(jù)類型。下面解釋這幾種數(shù)據(jù)類型。

sfr

SFR的聲明方法與其他C語(yǔ)言變量的聲明方法相同。如:

sfr P0 = 0x80; /* Port-0, address 80h */

sfr P1 = 0x90; /* Port-1, address 90h */

sfr P2 = 0xA0; /* Port-2, address 0A0h */

sfr P3 = 0xB0; /* Port-3, address 0B0h */

sfr16

許多新型的8051變種使用兩個(gè)連續(xù)的SFR字節(jié)來(lái)聲明一個(gè)16bit的值。例如,8052使用地址0XCC和0XCD來(lái)做為定時(shí)器2的低字節(jié)和高字節(jié)。Cx51使用sfr16把2個(gè)字節(jié)的SFR做為一個(gè)16bit的SFR來(lái)訪問(wèn)。

一個(gè)SFR16的兩個(gè)字節(jié)必須連在一起,并且低字節(jié)在前,在使用的時(shí)候把低字節(jié)的地址做為整個(gè)SFR16的地址使用。

sbit

在8051的經(jīng)典應(yīng)用中,經(jīng)常會(huì)用到特殊功能寄存器的某一個(gè)單獨(dú)的位。Cx51編譯器使用不著sbit來(lái)聲明這種變量。

注意:并不是所有的SFR都是可以位尋址的,只有那些地址可以被8整除的地址是可以位尋址的,也就是說(shuō)它的地址的最低位必須是0或者是8。計(jì)算SFR位地址的方法是把位在特殊功能寄存器字節(jié)中的位置加上這一字節(jié)的地址。也就是說(shuō),訪問(wèn)在SFR地址0XC8第6位的時(shí)候,這一位的地址應(yīng)該是0XCE(0XC8+6)

聲時(shí)位變量的方法有以下三種:

1:sfr_name ^ int_constant

sfr PSW = 0xD0;

sbit OV = PSW ^ 2;

2。:int_constant ^ int_constant

sbit OV = 0xD0 ^ 2;

3:int_constant

sbit OV = 0xD2;

注意:特殊功能位是一個(gè)獨(dú)立的類聲明,不能和其他的位聲時(shí)相互交換。

用sbit聲明的變量不能訪問(wèn)用bdata數(shù)據(jù)類型定義的變量。

Absolute Variable Location變量的絕對(duì)地址

使用并鍵詞_at_可以使變量定位于內(nèi)存中的一個(gè)絕對(duì)地址。使用方法:

[memory_space]type variable_name_at_constant;

這里:

memory_space變量的內(nèi)存的空間。如果不聲明這一項(xiàng),使用缺省的內(nèi)存空間。參見:內(nèi)存模式。

Type變量類型

variable_name變量名

constant變量所要存儲(chǔ)的地址

在關(guān)鍵詞_at_后的地址必須在內(nèi)存的特理邊界以內(nèi)。Cx51會(huì)檢測(cè)變量地址聲明的正確性

絕對(duì)地址變量聲時(shí)須遵守以下規(guī)則:

1. 絕對(duì)地址變量不能初始化(在聲明時(shí))

2. Bit類型的變量和函數(shù)不能放在絕對(duì)地址中

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在C語(yǔ)言編程中,結(jié)構(gòu)體內(nèi)存對(duì)齊是一個(gè)容易被忽視卻影響深遠(yuǎn)的關(guān)鍵問(wèn)題。它不僅關(guān)乎程序性能,更直接影響到內(nèi)存占用效率,尤其在嵌入式系統(tǒng)等資源受限環(huán)境中顯得尤為重要。本文將深入探討結(jié)構(gòu)體內(nèi)存對(duì)齊的原理,并分享手動(dòng)調(diào)整與編譯器優(yōu)...

關(guān)鍵字: C語(yǔ)言 內(nèi)存對(duì)齊 編譯器

編譯器不僅是連接硬件與軟件的橋梁,還直接影響MCU的性能優(yōu)化與功能安全。面對(duì)汽車行業(yè)對(duì)高可靠性、低功耗和高算力的需求,編譯器需在確保ASIL-D等嚴(yán)格標(biāo)準(zhǔn)的同時(shí),最大化發(fā)揮RISC-V芯片的潛力。

關(guān)鍵字: 車規(guī)MCU RISC-V 編譯器 HighTec

國(guó)內(nèi)電子信息產(chǎn)業(yè)內(nèi)的廠商正在全球嵌入式系統(tǒng)的發(fā)展浪潮中扮演著越來(lái)越重要的角色,但隨之而來(lái)的是國(guó)內(nèi)嵌入式系統(tǒng)和相關(guān)芯片企業(yè)在出海時(shí)也面臨越來(lái)越多的合規(guī)要求,尤其是在保障用戶、設(shè)備和周邊人與物安全的功能安全領(lǐng)域內(nèi)的合規(guī)要求。...

關(guān)鍵字: 嵌入式系統(tǒng) 智能網(wǎng)聯(lián) 編譯器

【2025年4月11日, 德國(guó)慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)推出用于AURIX?、TRAVEO?和PSOC?的可擴(kuò)展軟件包產(chǎn)品組合...

關(guān)鍵字: PSOC 物聯(lián)網(wǎng) 編譯器

瑞典烏普薩拉,2025年3月11日 — 全球領(lǐng)先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應(yīng)商IAR在德國(guó)紐倫堡舉辦的embedded world 2025展會(huì)上重磅發(fā)布全新云端平臺(tái)。該平臺(tái)為嵌入式軟件開發(fā)人員提供前所未有的自由度與...

關(guān)鍵字: 編譯器 嵌入式 RISC-V

該統(tǒng)一解決方案為Microchip編譯器產(chǎn)品線提供靈活且經(jīng)濟(jì)高效的許可選項(xiàng)

關(guān)鍵字: 編譯器 嵌入式

當(dāng)安全標(biāo)準(zhǔn)相互契合:意法半導(dǎo)體 (ST) Stellar MCU取得了風(fēng)險(xiǎn)管理安全標(biāo)準(zhǔn)等級(jí)最高的ISO 26262 ASIL D 級(jí)認(rèn)證,現(xiàn)在更有達(dá)到同等安全級(jí)別的 HighTec Rust 編譯器的加持

關(guān)鍵字: 微控制器 編譯器

在STM32的開發(fā)過(guò)程中,開發(fā)者可能會(huì)遇到各種編譯錯(cuò)誤,其中“Program file does not exist”是一個(gè)較為常見且可能由多種原因引起的錯(cuò)誤。這個(gè)錯(cuò)誤通常意味著編譯器在預(yù)期的路徑下沒(méi)有找到可執(zhí)行文件(如...

關(guān)鍵字: STM32 編譯器

基于ARM內(nèi)核的芯片在我們的世界中無(wú)處不在,從簡(jiǎn)單的MCU到高端的應(yīng)用處理器,各行各業(yè)中都有它們的身影。 如今ARM生態(tài)系統(tǒng)非常繁榮,在這繁榮的背后編譯器的作用功不可沒(méi)。

關(guān)鍵字: ARM 編譯器

臺(tái)灣新竹-2024 年 11 月 5 日-新唐科技正式推出免費(fèi)版 Arm? Keil? MDK Nuvoton Edition,成為全球首家提供 Keil MDK 完整版的公司。此專業(yè)工具適用于開發(fā)基于Arm Corte...

關(guān)鍵字: 編譯器 微控制器 嵌入式
關(guān)閉