国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
XBYTE的使用

XBYTE的使用 收藏

XBYTE

The XBYTE macro accesses individual bytes in the external data memory of the 8051. You may use this macro in your programs as follows:

 

#include <absacc.h>    /* Include Macro Definitions */

.

.

.

rval = XBYTE [0x0002];

XBYTE [0x0002] = 57;

.

.

.This example reads and writes the contents of the byte in external data memory at address 0002h.

 

The range of valid index values for this macro is 0-65535.

 

 

 

http://www.keil.com/support/man/docs/c51/c51_xbyte.htm

 

 

 

        上面的是在keilhelpctrl+c來的,以前在論壇里看到過有人問如何用c語言實現(xiàn)定位存儲,呵呵,當時還說不可能呢!現(xiàn)在在查找using的時候,無意中看到了XBYTE,點中看看,居然有大發(fā)現(xiàn)?。?/span>

 

 

 

        百度結果:這個主要是在用C51P0,P2口做外部擴展時使用,其中XBYTE [0x0002],P2口對應于地址高位,P0口對應于地址低位。一般P2口用于控制信號,P0口作為數(shù)據(jù)通道。

 

        如:P2.7WR,P2.6RD,P2.5CS,那么就可以確定個外部RAM的一個地址,想往外部RAM的一個地址寫一個字節(jié)時,地址可以定為XBYTE [0x4000],其中WR,CS為低,RD為高,那就是高位的4,當然其余的可以根據(jù)情況自己定,然后通過

XBYTE [0x4000] = 57。這賦值語句,就可以把57寫到外部RAM0x4000處了,此地址對應一個字節(jié)。

 

 

 

一下摘自論壇網(wǎng)友的問答:

 

問:

 

在一般的讀寫外部RAM的程序中,經??吹竭@樣的句子:

 

    XBYTE[address]=data   寫數(shù)據(jù)

 

    data=XBYTE[address]   讀數(shù)據(jù)

 

但是我想問的是,為什么用了XBYTE后,就不用顧及其時序了呢?

 

就是說,讀寫數(shù)據(jù)的時候,WRRD怎么都不用用程序去控制了呢?

 

參考了很多讀寫外部RAM的程序,都找不到其控制WRRD控制線的語句

 

哪位大俠能幫忙解釋一下這是為什么嘛?

 

最好還能說說XBYTE具體的用法.....

答:

外部總線,

 

1外部總線由3組總線組成,數(shù)據(jù) 地址 控制,我們常常一般就叫他外部總線,既然是有3組不同的信號,那么他們是怎么協(xié)調工作的呢?一般情況CPU有特殊的外部數(shù)據(jù)訪問指令如你這里講51的MOVX指令(在C語言中他會編譯成這個指令)在執(zhí)行這個指令的時候3組線是協(xié)調工作

 

mov dptr,#1000h

 

mov a,#55h

 

movx @dptr,a

 

上面3調語句的C語言可以表示如下

 

#define  W_DATA  XBYTE[0x1000]

 

W_DATA=0X55;

 

在使用外部總線的時候,數(shù)據(jù) 地址和控制信號是直接按照規(guī)定的時序輸出高低電平的,所以不用你管,當然你必須要滿足時序工作

 

一下摘自網(wǎng)友博客文章:

如何理解#define XBYTE ((unsigned char volatile xdata *

8051 特有的內存型態(tài)

 

code    MOVC @A+DPTR 讀取的程序內存

data    可以直接存取的內部數(shù)據(jù)存儲器

idata    Mov @Rn 存取的內部數(shù)據(jù)存儲器

bdata    可以位尋址(Bit Addressable)的內部存儲器

xdata    MOVX @DPTR 存取的外部數(shù)據(jù)存儲器

pdata    MOVX @Rn 存取的外部數(shù)據(jù)存儲器

 

特殊資料型態(tài)

 

bit    一般位(bit)變量

sbit    絕對尋址的位(bit)變量

語法

sbit    my_flag    =    location;    location 范圍從 0x00 ~ 0x7F

范例

sbit    EA =    0xAF;

或是配合 bdata 宣告的位(bit)變量

char    bdata        my_flags;

sbit    flag0 =      my_flags ^ 0;

(注意 sbit 前不可以加 static

 

sfr    特殊功能緩存器(Special Function Register

語法

sfr    my_sfr    =    location;    location 范圍從 0x80 ~ 0xFF

范例

sfr    P0    =    0x80;

指定絕對地址的變量

在單一模塊內可以使用下面的語法宣告

[memory_space]    type    variable_name    _at_    location

范例

pdata        char    my_pdata    _at_    0x80;

如果該變量必須為多個模塊所使用(Global Variable)則以

抽象指針(Abstract Pointer)的方式在標頭檔(Header File)定義較為方便。

 

#define    variable_name    *((data_type *)        location)

范例

#define    my_pdata    *((char pdata *)    0x80)

(注意 char pdata 的順序)

ABSACC.H 提供了下列方便的宏(Macro)定義。

#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)

 

隱藏的初始化程序

80C51 在電源重置后(Power On Reset)所執(zhí)行的第一個程序模塊并不是使用者的主程序

main(),而是一個隱藏在 KEIL-C51 標準鏈接庫中稱為 startup.a51 的程序模塊。

startup.a51 的主要工作是把包含 idataxdata、pdata 在內的內存區(qū)塊清除為 0,并

且初始化遞歸指針。接著 startup.a51 被執(zhí)行的仍然是一個隱藏在 KEIL-C51 標準鏈接庫

中稱為 init.a51 的程序模塊。而 init.a51 的主要工作則是初始化具有非零初始值設定的

變量。

在完成上述的初始化程序之后,80C51 的控制權才會交給 main() 開始執(zhí)行使用者的程序。

#define XBYTE ((unsigned char volatile xdata *) 0)

定義    XBYTE 指向 xdata 地址空間unsigned char 數(shù)據(jù)類型的指針,指針值為0

這樣,可以直接用XBYTE[0xnnnn]*(XBYTE+0xnnnn)訪問外部RAM

 

 

 

糊弄了半天,還是有點不懂,百度了許多資料回來,慢慢研究!

 

 

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/xb_crazyman/archive/2008/10/15/3081731.aspx

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
單片機c語言XBYTE的使用
51單片機同時外擴RAM,ROM的具體實現(xiàn)及Keil的具體設置
C51絕對地址訪問[單片機]
C51_單片機開發(fā)_XBYTE的使用
SDCC
庫函數(shù)absacc.h的介紹
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服