找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3752|回復(fù): 7
收起左側(cè)

關(guān)于89c52單片機(jī)地址以及存儲器的問題

[復(fù)制鏈接]
ID:223164 發(fā)表于 2017-11-2 22:31 | 顯示全部樓層 |閱讀模式
如下圖 HURBUF,MINBUF....DISBUF為啥要這樣定義啊直接定義一個(gè)變量不就行了么還有這個(gè)用的是指針,意思就是指向下面圖三中的 可位選址寄存器嘍(只要是這個(gè)
范圍都可以隨意定義吧?)?如果是這樣的話
DISBUF這個(gè)地址0x40 不就和28h這個(gè)重復(fù)了?
還有就是*(DISBUF+1)這個(gè)是指向哪個(gè)?
像書上這樣寫程序值得學(xué)習(xí)么?
還有 非常感謝有這么多大神能回答我的問題。謝謝!
1.JPG    2.JPG 3.JPG


回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2017-11-3 10:12 | 顯示全部樓層
本帖最后由 yzwzfyz 于 2017-11-3 17:04 編輯

看看與這個(gè)章節(jié)的目的就明白了。
回復(fù)

使用道具 舉報(bào)

ID:223164 發(fā)表于 2017-11-14 19:35 | 顯示全部樓層
yzwzfyz 發(fā)表于 2017-11-3 10:12
看看與這個(gè)章節(jié)的目的就明白了。

很仔細(xì)的看了 不然也不會來這里問了
回復(fù)

使用道具 舉報(bào)

ID:223164 發(fā)表于 2017-11-18 20:41 | 顯示全部樓層
沒有人知道么
回復(fù)

使用道具 舉報(bào)

ID:223164 發(fā)表于 2017-11-19 16:25 | 顯示全部樓層
!在線等
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2017-11-19 19:06 | 顯示全部樓層
本帖最后由 zl2168 于 2017-11-19 19:14 編輯

哼!你看這些書,當(dāng)然看不懂!!
介紹你一本書,張志良編著的:《80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學(xué)習(xí)51單片機(jī)原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學(xué),最主要是能解答你的疑問。
回復(fù)

使用道具 舉報(bào)

ID:251155 發(fā)表于 2017-11-19 19:13 | 顯示全部樓層
同求大神指點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2017-11-20 22:22 | 顯示全部樓層
zyfei 發(fā)表于 2017-11-19 19:13
同求大神指點(diǎn)

80C51特殊功能寄存器定義方式
4.2.2 變量及其定義方法
    ……
⒌ 80C51特殊功能寄存器定義方式
80C51片內(nèi)有21個(gè)特殊功能寄存器,在C51的文件夾里,有一個(gè)取名reg51.h庫函數(shù)文件,對80C51片內(nèi)21個(gè)特殊功能寄存器按MCS-51中取的名字(必須大寫)全部作了定義,并賦予了既定的字節(jié)地址。因此,該21個(gè)特殊功能寄存器已不需重復(fù)定義,只需在程序開頭的頭文件部分寫一條預(yù)處理命令:#include <reg51.h>,表示程序可以調(diào)用該庫函數(shù)reg51.h(52系列單片機(jī)應(yīng)用#include <reg52.h>)。但對于不符合MCS-51中特殊功能寄存器名的標(biāo)識符,或未在頭文件中寫入上述預(yù)處理命令的,則應(yīng)重新定義,否則出錯(cuò)。
……
需要注意的是,特殊功能寄存器定義應(yīng)放在函數(shù)外(即作為全局變量)。
需要說明的是,雖然C51允許用關(guān)鍵詞sfrsfr16定義80C51特殊功能寄存器,體現(xiàn)了C51編譯功能的多樣性和完整性,但編者還是建議讀者不要去重新定義,而直接使用預(yù)處理命令,既省事又不易出錯(cuò)。
    ……
⒍ 位變量定義方式
80C51片內(nèi)RAM16字節(jié)128位的可尋址位(字節(jié)地址20H2FH,位地址00H7FH),還有11個(gè)特殊功能寄存器是可位尋址的,C51編譯器擴(kuò)充了關(guān)鍵詞bitsbit,用于定義這些可尋址位。位變量也需先定義,后使用。
……
⑵ 定義11個(gè)特殊功能寄存器可尋址位的位變量
80C51單片機(jī)11個(gè)可尋址位的特殊功能寄存器中,有6個(gè)SFRPSW、TCON、SCONIE、IPP3),它們每一可尋址位有位定義名稱,C51庫函數(shù)reg51.h也已對其按MCS-51中取的位定義名稱(必須大寫)全部作了定義,并賦予了既定的位地址。只要在頭文件中聲明包含庫函數(shù)reg51.h,就可按位定義名稱直接引用。
但是,還有5個(gè)SFRACC、BP0、P1P2),可尋址位沒有專用的位定義名稱,只有位編號,但這些位編號不符合ANSI C標(biāo)識符要求,例如,ACC.0、P1.0等(C51標(biāo)識符規(guī)定不可用小數(shù)點(diǎn)),應(yīng)重新定義。其格式如下:
……

以上摘自張志良編著
80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表