找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2615|回復: 12
收起左側

stc89c52rc單片機內(nèi)存問題請教

[復制鏈接]
ID:73992 發(fā)表于 2022-10-27 23:36 來自觸屏版 | 顯示全部樓層 |閱讀模式
我寫1602寫指令程序,
…… rs
……rw
mov p0,0x7f;0x7f存放1602指令
……en
使用00h單元到0x7f存放指令都可以正常工作。
用80h到ffh內(nèi)存單元存放指令,就顯示錯誤。
比如b寄存器地址是f0h,那么我使用f1h到ffh內(nèi)存單元存放指令,1602就顯示不了。
我想問一下,特殊功能寄存器后面的剩余內(nèi)存單元是什么情況
回復

使用道具 舉報

ID:123289 發(fā)表于 2022-10-28 08:29 | 顯示全部樓層
特殊功能寄存器的范圍是:80H-FFH。
同是51系列的CPU,型號不同各單元的功能略有不同,但盡可能地統(tǒng)一,以最大可能的讓程序通用。
雖然該區(qū)域使用的是RAM地址,但硬件結構上與RAM結構還是有區(qū)別的。
對于該區(qū)域未使用的單元,是禁止使用的(不建議使用),因為它是為后續(xù)的CPU的功能擴展預留的。
在你未了解的情況下,使用這些單元,極可能產(chǎn)生不可預期的結果。特別是STC系列的。
STC系列基于標準51,但在特殊功能寄存器區(qū)域下足了功夫,例如:擴展了串口2,DPTR指針,CPU運行速率,PWM……。甚至擴充到80H-8FH都不夠用了,又借用了部分XRAM區(qū)域。
所以STC系列功能遠大于標準51。
這也是不同型號CPU之間,程序不能通用的主要原因!
同樣一個51系列的C語言程序,燒錄到不同的STC系列CPU中,大概率不能通用。
所以編譯時,也要告訴編譯器,用的是哪種型號的CPU。
回復

使用道具 舉報

ID:1038726 發(fā)表于 2022-10-28 10:07 | 顯示全部樓層
樓主的程序有點沒不懂,0x80以上要用間接尋址。聽說STC是一對一技術服務,你直接聯(lián)系廠家技術咨詢效率會更高
回復

使用道具 舉報

ID:624769 發(fā)表于 2022-10-28 10:37 | 顯示全部樓層
首先, 寄存器(通常意義上的"內(nèi)存") 和 特殊功能寄存器, 不是同一個概念. 也不是同一個東西。
特殊功能寄存器并不是“內(nèi)存”, 之所以說 在 0x80~0xff 這個直接地址,是給你一個 訪問路徑, 讓你可以用 MOV指令 對0x80 這個直接地址的讀寫操作,作用到 P0 總線上,并不是說這個地址的背后,是一個“內(nèi)存”,你可以把這個直接地址當作是一個電話號碼,當特殊寄存器列表沒有 列出最終目標,比如 0xf1~0xff  時,它極大的概率是空號。對這些地址的讀寫是一個無效操作。即無法保存你寫入的值,也無法取回你以為已經(jīng)寫入的值。
而正因為給了特殊寄存器“占用”了0x80~0xff的直接地址。 因此,有256字節(jié)標準寄存器的51系列單片機對于高位的 80~ff 地址的“內(nèi)存”,只能使用間接地址@R1方式訪問。
回復

使用道具 舉報

ID:1034262 發(fā)表于 2022-10-28 10:53 | 顯示全部樓層
LZ可能還不了解51的結構,0x80以上的內(nèi)存要用簡介尋址訪問。
回復

使用道具 舉報

ID:1039954 發(fā)表于 2022-10-28 11:20 | 顯示全部樓層
memcpy函數(shù)?
回復

使用道具 舉報

ID:88256 發(fā)表于 2022-10-28 11:55 | 顯示全部樓層
樓主去了解一下51單片機4組I/O口的地址,就會有所明白了
回復

使用道具 舉報

ID:73992 發(fā)表于 2022-10-29 14:18 來自觸屏版 | 顯示全部樓層
感謝大家
回復

使用道具 舉報

ID:1042619 發(fā)表于 2022-11-1 16:51 | 顯示全部樓層
樓主這個問題需要注意不同地址空間的訪問方式不一樣。
11.jpg.png
回復

使用道具 舉報

ID:73992 發(fā)表于 2022-12-24 21:07 | 顯示全部樓層
請問用MOV A,@RI 對80H到FFH尋址的時候,與片外ram的地址是否沖突
回復

使用道具 舉報

ID:883242 發(fā)表于 2022-12-25 19:50 | 顯示全部樓層
lyonkon 發(fā)表于 2022-12-24 21:07
請問用MOV A,@RI 對80H到FFH尋址的時候,與片外ram的地址是否沖突

片外RAM要用MOVX語句訪問,你用MOV語句想訪問片外,做夢呢?
回復

使用道具 舉報

ID:996773 發(fā)表于 2022-12-27 09:40 | 顯示全部樓層
看樓主的幼兒園級別的問題所寫的程序也不是很大,30H到80H這么多的地址也夠用了,干嘛非得去自己不知道80H以上的地方踩雷呢,如果真想用,還是多看看51單片機的硬件結構
回復

使用道具 舉報

ID:1042619 發(fā)表于 2022-12-28 09:40 | 顯示全部樓層
STC89C52是絕對的經(jīng)典、絕對的主流,現(xiàn)在的 STC8H8K64U / STC32G12K128 已是 8051世界 的主流!永遠的經(jīng)典!STC8H8K64U-45I-TSSOP20,@1.9,硬件USB直接仿真,硬件USB直接下載!速度快、抗干擾強。32位8051,STC32G12K128,兩組CAN,三組LIN,4組串口,3組SPI, I2C!
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表