A. 單片機問題:指針是什麼
這個問題。。。
你說的是用c語言開發程序的時候用到的指針吧?
就是一個指向數據地址的變數。通過這個指針可以找到數據,並進行修改。
具體的就要看看c語言基礎知識了。
用c語言開發單片機很簡單的,用c語言中很簡單的功能基本就能實現比較復雜的功能了。
B. 急問!msc-51系列單片機程序地址指針為16位是什麼意思 新手求教!!
51單片機外部RAM的地址空間為64K,地址匯流排為16位,訪問外接RAM可執行如下4條指令:
MOVX A,@DPTR
MOVX @DPTR,A
MOVX A,@RI
MOVX @RI,A
其中DPTR為16位地址寄存器,地址高8位存於DPH,地址低8位存於DPL;Ri(I=0,1)是8位寄存器,作為地址指針時僅存低8位地址。
MCS-51執行上述指令時分為兩個階段:首先,是從外接程序存儲器中取出指令代碼,並進行分析。然後,執行對外接RAM的數據讀/寫操作。在這兩個階段,P0口、P1口上的地址選通是有區別的。
執行「MOVX A,@DPTR」和「MOVX @DPTR,A」指令時,在讀指令代碼階段,由程序計數器(PC)提供A0~A15,低8位地址穩定後,在單片機地址鎖存信號ALE作用下,P0.X口開始讀入MOVX指令代碼。在對缺燃外接RAM讀寫階段,其過程與前述相同伏態虛,只不過低8位地址不是來自程序計數器的低8位PCL,而是來自地址寄存器的高8位 DPH;高8位地址不是來自程序計數器的高8位PCH,而是來自地址寄存器的高8位PCH。當DPL穩定後,由地址鎖存器鎖存,P0.X口上出現的是讀/ 寫外接RAM的數據信息。
執行「MOVX A,@Ri」和「MOVX @RI,A」指令時,取指階段輿「movx a, @ dptr」和「movx @ dptr, a」過程完全相同。但在執行對外部RAM的讀/寫階段,低8位地址來自Ri;高8位地址來自閉知P2口鎖存器(P2 SFR)。
C. mcs-51單片機的數據指針DPTR是一個16位的專用地址指針寄存器,主要用來做什麼
如果是用c語言編程,可以不必注意這些問題,因為編程軟體會自動幫你分配,也不容易出錯!!
數據指針DPTR是80C51中一個功能比較特殊的寄存器。從結構DPTR是一個16位的特殊功能寄存器, 其高位位元組寄存器用DPH表示,低位位元組寄存器用DPL表示,DPTR既可以作為一個16位的寄存器來處理,也可以作為兩個獨立的8位寄存器來使用。主要功能是存放16位地址,作為片外RAM定址用的地址寄存器(間接定址),故稱數據指針。
訪問片外數據存儲器的指令為:
MOVX A,@DPTR 讀
MOVX @DPTR,A 寫
DPTR的另一個作用是變址定址,訪問程序存儲器,做查表指令:如:
以dptr為基址寄存器,將dptr的內容與累加器a的內容相加得到變址地址
movc a, @a+dptr ; (a)<-----((a)+(dptr))
D. 51單片機中MOV A,DPTR能這么使用嗎DPTR是屬於直接定址還是間接定址
它是一個只對A累加器有用的十六位地址指針,也就是可用它可只對A累加器進行間接定址。這DPTR是一個十六位的寄存器,而A累加器是八位的,可它可分成二個八位的分別為DPH和DPL,如你想傳送或何存它時就可分別用傳DPH和DPL用二次分別傳送或用二個八位RAM分別保存。