資料介紹
單片機片外程序存儲器數據存儲器操作命令與通常所說的存儲器不同,和I2C總線的AT24C02不同,SPI協議的也不同,是指采用專用接口電路,應用P0口P2口地址總線和控制線的“三總線”方式訪問的。關于編程的時候,和訪問內部程序存儲器,數據存儲器不同是:1對外部程序存儲器,和內部一樣,程序不用改。2,。對片外的數據存儲器,匯編要用MOVX DPTR什么的,我也不懂,C語言相關的部分比如:變量關鍵字:pdata xdata是片外數據存儲器類型。輸送的片外數據的寄存器地址也要按實際輸送,其他沒什么區別。沒有說要特意操作特殊寄存器。。
在設計片外程序存儲器之前,首先要決定EA引腳的電平。
EA=0,單片機只訪問外部程序存儲器,對于8031單片機此引腳必須接地。EA=1,單片機訪問內部程序存儲器,對于內部有程序存儲器的8XX51單片機,此引腳應接高電平,但若地址值超過4KB范圍,單片機將自動訪問外部程序存儲器。
設定好EA后,單片機自動按程序所設定的次序執行。
在編程中不需要專門的語句指定調用的是外部程序存儲器。比如設定EA接高電平,則程序在執行完片內的程序存儲器指令后自動轉入片外程序存儲器,而無需特殊命令。這就是所謂的程序存儲器是片內外統一編址,而數據存儲器則用Mov和Movx分別對待的。
但樓主要知道程序在讀取片外指令代碼時的過程:先尋址,再取數。單片機會根據PC的值先給P2和p0送一個選通地址(PC的值),接下來從片外程序存儲器讀取代碼。因為PC的值一般是連續的,這就要求片外的程序存儲器空間要連續分布,這和數據存儲器不同。如果不連續分布,就要用特殊的行號改變PC的值,使它和片外程序存儲器分布能夠對應
總之,記住三總線傳遞的方式,先尋址,再傳數,由控制總線控制
存儲器一般都有WR,RD,CS線以及地址端口、數據端口,有些數據地址端口復用,有些分開。看這些存儲器的datasheet就會明白如何訪問他們內部的數據。例如讀出外部ram地址為0x0001里的數據(假設有這個地址),那么就WR置高,CS置低,地址線上輸出0x0001,那么CPU的數據線就可以等到需要的數據了,這種情況下CPU的I/O只是做普通的I/O口。但是一般單片機和ARM都能夠把I/O選擇作為外部存儲器的訪問口,這時只要根據datasheet里的說明,把相應的線連上,CPU就能夠根據你的指令自動在時序上配合,使得訪問外部設備就像訪問內部ram一樣,這樣做的好處就是節省CPU時間。
把地址0x0001置為0x55的C語言指令為
(*(unsigned char*)0x0001)=0x55; //(這里假設數據寬度為8bit)
假如I/O口選擇的功能是外部數據地址總線,并且硬件上接好,那么這條指令也就是對外部存儲器相應地址的讀寫。
值得一提的是,各種類型的存儲器件的訪問速度都不一樣,因此如果把程序放在外部器件里執行,執行時間就會有比較大的差別,例如一個for循環放在外部ram和外部flash中執行速度可能會差到3倍。
第一,單片機采用三總線結構傳遞數據。地址總線、數據總線、控制總線。傳遞數據的過程是先尋址,再傳遞數據。即先送一個地址信息(由單片機向總線寫地址信息),由寄存器(程序存儲器或數據存儲器)根據這個地址,把微處理器要讀取的數據寫到總線上,微處理器再讀取這個數據。整個過程由控制總線控制。所以每次讀的數據是針對那個地址對應的寄存器操作的,不會發生混亂。寫數據時一樣,先尋址,再寫數據,數據就寫入剛才尋址時的地址對應的那個寄存器里去了。
第二、程序存儲器、數據存儲器有不同的選通信號,在一個指令周期里,是不同的時間選通的,所以不會混亂。
第三、選通的引腳不同。拿片外數據存儲器來說,是P3的第6和第7引腳做選通信號,程序存儲器是PSEN做選通信號,他們接在各自器件的選通引腳上,所以不會混亂。
第四,指令不同。拿匯編指令來說。MOV是程序存儲器傳遞數據用,MOVX是數據存儲器傳遞數據用(對片外而言)。
總之,記住三總線傳遞的方式,先尋址,再傳數,由控制總線控制,這個模式,你就容易理解這個了。
單片機的p2和p0分別傳遞地址的高八位和低八位。同時p0還傳遞數據。在時序信號的ALE高電平期間,鎖定地址信息。/PSEN是選通程序存儲器的。在/PSEN低電平期間是向程序存儲器傳遞程序代碼,/WR和/RD是選通數據存儲器的,即在/WR和/RD低電平期間把數據傳遞給數據寄存器。而/PSEN和/WR及/RD是在不同時間變為低電平的,沒有重疊的部分。也就是說,當/WR及/RD變成低電平時,/PSEN已經恢復高電平了,由P0口傳出的數據信息當然只會傳到數據存儲器里,因為程序存儲器已經不再處于選通狀態了!從表面看,都是從p0口傳出的,但因為選通器件的時間不同而不會發生混亂。當然我說的是片外程序存儲器和數據存儲器的的情況,其實對片內也一樣,還是三總線的這種控制方式,使它們在不同的時間被選通,而不至于發生沖突。
看看單片機的一個電路圖。你會發現p0既跟74LS373連,又跟8155或8255或鍵盤或數模轉換器等連接。而8155或8255或鍵盤或數模轉換器等對單片機而言是當做數據存儲器處理的。74LS373連的多半是程序存儲器。那么p0送出的信號不是兩者都接受了嗎?注意看ALE接74LS373的G接口,鎖存地址用,PSEN有時用有時不用。WR和RD接數據存儲器的選通接口。因為WR和RD跟ALE的信號在時間上沒有重疊部分,所以p0的信號不會被程序存儲器和數據存儲器同時收到。這是一個舉例說明,具體情況要具體分析。
?
在設計片外程序存儲器之前,首先要決定EA引腳的電平。
EA=0,單片機只訪問外部程序存儲器,對于8031單片機此引腳必須接地。EA=1,單片機訪問內部程序存儲器,對于內部有程序存儲器的8XX51單片機,此引腳應接高電平,但若地址值超過4KB范圍,單片機將自動訪問外部程序存儲器。
設定好EA后,單片機自動按程序所設定的次序執行。
在編程中不需要專門的語句指定調用的是外部程序存儲器。比如設定EA接高電平,則程序在執行完片內的程序存儲器指令后自動轉入片外程序存儲器,而無需特殊命令。這就是所謂的程序存儲器是片內外統一編址,而數據存儲器則用Mov和Movx分別對待的。
但樓主要知道程序在讀取片外指令代碼時的過程:先尋址,再取數。單片機會根據PC的值先給P2和p0送一個選通地址(PC的值),接下來從片外程序存儲器讀取代碼。因為PC的值一般是連續的,這就要求片外的程序存儲器空間要連續分布,這和數據存儲器不同。如果不連續分布,就要用特殊的行號改變PC的值,使它和片外程序存儲器分布能夠對應
總之,記住三總線傳遞的方式,先尋址,再傳數,由控制總線控制
存儲器一般都有WR,RD,CS線以及地址端口、數據端口,有些數據地址端口復用,有些分開。看這些存儲器的datasheet就會明白如何訪問他們內部的數據。例如讀出外部ram地址為0x0001里的數據(假設有這個地址),那么就WR置高,CS置低,地址線上輸出0x0001,那么CPU的數據線就可以等到需要的數據了,這種情況下CPU的I/O只是做普通的I/O口。但是一般單片機和ARM都能夠把I/O選擇作為外部存儲器的訪問口,這時只要根據datasheet里的說明,把相應的線連上,CPU就能夠根據你的指令自動在時序上配合,使得訪問外部設備就像訪問內部ram一樣,這樣做的好處就是節省CPU時間。
把地址0x0001置為0x55的C語言指令為
(*(unsigned char*)0x0001)=0x55; //(這里假設數據寬度為8bit)
假如I/O口選擇的功能是外部數據地址總線,并且硬件上接好,那么這條指令也就是對外部存儲器相應地址的讀寫。
值得一提的是,各種類型的存儲器件的訪問速度都不一樣,因此如果把程序放在外部器件里執行,執行時間就會有比較大的差別,例如一個for循環放在外部ram和外部flash中執行速度可能會差到3倍。
第一,單片機采用三總線結構傳遞數據。地址總線、數據總線、控制總線。傳遞數據的過程是先尋址,再傳遞數據。即先送一個地址信息(由單片機向總線寫地址信息),由寄存器(程序存儲器或數據存儲器)根據這個地址,把微處理器要讀取的數據寫到總線上,微處理器再讀取這個數據。整個過程由控制總線控制。所以每次讀的數據是針對那個地址對應的寄存器操作的,不會發生混亂。寫數據時一樣,先尋址,再寫數據,數據就寫入剛才尋址時的地址對應的那個寄存器里去了。
第二、程序存儲器、數據存儲器有不同的選通信號,在一個指令周期里,是不同的時間選通的,所以不會混亂。
第三、選通的引腳不同。拿片外數據存儲器來說,是P3的第6和第7引腳做選通信號,程序存儲器是PSEN做選通信號,他們接在各自器件的選通引腳上,所以不會混亂。
第四,指令不同。拿匯編指令來說。MOV是程序存儲器傳遞數據用,MOVX是數據存儲器傳遞數據用(對片外而言)。
總之,記住三總線傳遞的方式,先尋址,再傳數,由控制總線控制,這個模式,你就容易理解這個了。
單片機的p2和p0分別傳遞地址的高八位和低八位。同時p0還傳遞數據。在時序信號的ALE高電平期間,鎖定地址信息。/PSEN是選通程序存儲器的。在/PSEN低電平期間是向程序存儲器傳遞程序代碼,/WR和/RD是選通數據存儲器的,即在/WR和/RD低電平期間把數據傳遞給數據寄存器。而/PSEN和/WR及/RD是在不同時間變為低電平的,沒有重疊的部分。也就是說,當/WR及/RD變成低電平時,/PSEN已經恢復高電平了,由P0口傳出的數據信息當然只會傳到數據存儲器里,因為程序存儲器已經不再處于選通狀態了!從表面看,都是從p0口傳出的,但因為選通器件的時間不同而不會發生混亂。當然我說的是片外程序存儲器和數據存儲器的的情況,其實對片內也一樣,還是三總線的這種控制方式,使它們在不同的時間被選通,而不至于發生沖突。
看看單片機的一個電路圖。你會發現p0既跟74LS373連,又跟8155或8255或鍵盤或數模轉換器等連接。而8155或8255或鍵盤或數模轉換器等對單片機而言是當做數據存儲器處理的。74LS373連的多半是程序存儲器。那么p0送出的信號不是兩者都接受了嗎?注意看ALE接74LS373的G接口,鎖存地址用,PSEN有時用有時不用。WR和RD接數據存儲器的選通接口。因為WR和RD跟ALE的信號在時間上沒有重疊部分,所以p0的信號不會被程序存儲器和數據存儲器同時收到。這是一個舉例說明,具體情況要具體分析。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 51單片機(2)硬件結構(2)存儲器
- 51匯編(一):存儲器結構
- 51單片機:存儲器結構
- 單片機學習筆記二(單片機的存儲結構)
- 51單片機之存儲器
- 51單片機存儲器結構
- 51單片機的運行過程詳細圖文詳解
- 單片機的片內存儲器和片外存儲器到底有什么區別
- 51單片機存儲器結構的詳細資料說明
- 單片機入門程序之發光二極管的流水燈實驗和應用片外數據存儲器程序 1次下載
- 單片機教程之單片機總線與存儲器的擴展資料說明 27次下載
- 8位PIC單片機上的閃存程序存儲器分區的詳細中文資料概述
- 單片機片外數據存儲器擴展設計技巧簡介pdf文檔 6次下載
- 單片機存儲器擴充與程序下載技巧 14次下載
- 單片機存儲器擴充與程序下載技巧
- 單片機與閃速存儲器的軟硬件設計的注意事項 1179次閱讀
- PIC單片機的各種內部硬件功能及用法介紹 3400次閱讀
- 51單片機存儲器的結構和原理解析 2.2w次閱讀
- 8051單片機數據存儲器的擴展設計 4142次閱讀
- 單片機執行程序的全過程介紹 1.4w次閱讀
- 一文詳解51單片機的存儲器組織結構 1w次閱讀
- 單片機片內存儲器如何燒寫 幾種燒寫方式介紹 2.4w次閱讀
- 淺談外部程序存儲器數據存儲器操作命令 5258次閱讀
- MCS-51單片機存儲空間的介紹以及劃分 2.6w次閱讀
- 解析80C51單片機中的cpu、存儲器配置以及并行輸入/輸出口 2.6w次閱讀
- STC單片機燒寫程序步驟說明 7.2w次閱讀
- 基于單片機存儲器的配置的詳細分析 6007次閱讀
- MCS-51單片機的原理及其存儲器的配置特點 1.8w次閱讀
- 51單片機存儲程序和數據 9597次閱讀
- 51單片機存儲器內存的講解 1844次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多