色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃
電子工程網(wǎng)
標(biāo)題:
KEIL中關(guān)于DBYTE
[打印本頁(yè)]
作者:
左左
時(shí)間:
2010-10-28 01:32
標(biāo)題:
KEIL中關(guān)于DBYTE
這是KEIL C中一個(gè)絕對(duì)地址宏指令DBYTE的講解:
DBYTE[address]
說(shuō)明:在8051內(nèi)部數(shù)據(jù)存儲(chǔ)器里,讀取一個(gè)字節(jié)的內(nèi)容
自變量:內(nèi)部數(shù)據(jù)存儲(chǔ)器的地址(0~0xff)
定義:#define DBYTE((unsigned char volatile data *)0)
例子代碼:
#include "absacc.h"
void IRamSet (unsigned char value);
void Main(void)
{
char val = 0
IRamSet (0xaa);
val = DBYTE [0x0032];
DBYTE [0x0032]—0x1b;
}
unsigned char idata address _at_ 0x20; // 這句定義是什么意思呢?
void IRamSet (unsigned char value)
{
unsigned char idata *index = &address;
unsigned char i;
for (i = 0;i < (0x7f —0x20+0x01);i++) // 這個(gè)循環(huán)的限制條件是什么意思呢?
{
*index = value;
index ++;
}
}
想請(qǐng)教下,這個(gè)程序的大概意思是什么?以及幫我解答下程序中的兩個(gè)問(wèn)題(已經(jīng)注釋出來(lái)了)
作者:
xyj
時(shí)間:
2010-10-28 01:32
沒(méi)看明白。。
看看你包含的頭文件和處理器的說(shuō)明吧。
作者:
老郭
時(shí)間:
2010-11-1 22:50
解決了嗎?
作者:
左左
時(shí)間:
2010-11-2 10:02
沒(méi)有 沒(méi)人回答呀 正糾結(jié)著呢……
作者:
suecollege
時(shí)間:
2010-11-2 19:25
長(zhǎng)定義地址吧,怎么for里面會(huì)有那樣的語(yǔ)句啊
作者:
左左
時(shí)間:
2010-11-2 21:28
恩 是呀 我看的時(shí)候也不懂 ……
回復(fù)
5樓
suecollege
:
作者:
左左
時(shí)間:
2010-11-2 21:30
在Keil C51標(biāo)準(zhǔn)庫(kù)ABSACC.H中定義了一些宏,利用這些宏我們以絕對(duì)地址方式訪問(wèn)51的存儲(chǔ)器。這幾個(gè)宏分別是:
#define CBYTE ((unsigned char volatile code *) 0)
#define DBYTE ((unsigned char volatile data *) 0)
#define PBYTE ((unsigned char volatile pdata *) 0)
#define XBYTE ((unsigned char volatile xdata *) 0)
#define CWORD ((unsigned int volatile code *) 0)
#define DWORD ((unsigned int volatile data *) 0)
#define PWORD ((unsigned int volatile pdata *) 0)
#define XWORD ((unsigned int volatile xdata *) 0)
以DBYTE為例,((unsigned char volatile data *) 0)定義了一個(gè)值為零的指針,該指針指向data內(nèi)部RAM存儲(chǔ)區(qū)的一個(gè)易變無(wú)符號(hào)單字節(jié)變量。
當(dāng)我們以DBYTE[0x20]這樣類似于數(shù)組的方式使用它時(shí),根據(jù)C語(yǔ)言中對(duì)指針?biāo)饕慕忉尫绞,它訪問(wèn)的是*(((unsigned char volatile data *) 0) + 0x20),簡(jiǎn)化為*(0 + 0x20),即*(0x20),就是data內(nèi)部RAM存儲(chǔ)區(qū)0x20地址處的單字節(jié)變量。
?WORD宏和?BYTE的區(qū)別在于起始地址。以DWORD為例,如果我們?cè)L問(wèn)DWORD[0x20],由于unsigned int在C51中為兩字節(jié)長(zhǎng),因此DWORD[0x20]其實(shí)訪問(wèn)的是data存儲(chǔ)區(qū)0x40地址開(kāi)始的兩字節(jié)無(wú)符號(hào)整形變量。
code/data/pdata/xdata在C51中分別代表代碼區(qū)/內(nèi)部RAM/按頁(yè)訪問(wèn)的外部RAM/外部RAM四種存儲(chǔ)區(qū)訪問(wèn)方式。
這是另一個(gè)論壇中對(duì)我的解答
作者:
wyoh
時(shí)間:
2010-12-23 18:06
謝謝分享
作者:
孤獨(dú)小行星
時(shí)間:
2011-3-26 16:10
沒(méi)看明白!
歡迎光臨 電子工程網(wǎng) (http://www.54549.cn/)
Powered by Discuz! X3.4