劉海波 付 偉 卿向東 白 晶
北華大學 吉林 吉林 132021
在單片機教學的過程中,發(fā)現(xiàn)很多學生對單片機的存儲器理解不到位,導致分析尋址方式和調試程序時產生大量錯誤。
目前的講授過程中,通常直接聲明2種存儲器組織結構Harvard Architecture(簡稱 HARC)和Princeton architecture(簡稱PARC),學生并不清楚為什么有這兩種結構,自然無法理解單片機為什么使用HARC。
如果從單片機的設計初衷來分析存儲架構,就能令學生容易理解了。
根據(jù)存儲器存儲內容,主要包括數(shù)據(jù)和指令。這兩種信息怎樣存儲?
方式1:PARC,即普林斯頓結構,是指程序存儲器(以后簡稱ROM)和數(shù)據(jù)存儲器(以后簡稱RAM)共用一個存儲空間,使用同一組地址總線,在8086微處理器中,數(shù)據(jù)總線也是用同一組。因此訪問ROM和RAM單元的時候,可以使用同樣的指令,即MOV OPRD1,OPRD2。但正因為二者使用了相同的地址及數(shù)據(jù)總線,當編程人員訪問即ROM的時候,就不能再訪問RAM,同理訪問即RAM的時候,就不能再訪問ROM,二者不能同時訪問,不能同時實現(xiàn)取數(shù)據(jù)和取指令,只能采用分時復用的方式完成上述操作。地址與存儲單元一一對應。
從上面的表述可以得知,指令和數(shù)據(jù)都存放在同一個存儲空間,所以二者寬度相同。以8086微處理器為例,數(shù)據(jù)和指令的寬度都是16位的。
PARC結構缺點:不能同時完成ROM單元和RAM單元的信息訪問,執(zhí)行效率不高。
PARC結構優(yōu)點:外部結構簡單,成本低。
方式2:HARC,即哈佛結構,是指ROM和RAM各有獨立的存儲空間。使用不同的指令,訪問ROM和RAM單元。以89C51單片機為例,訪問片外RAM單元,使用指令MOVX A,@DPTR,訪問片外RAM單元,使用指令MOVC A,@A+DPTR,訪問ROM單元。一個地址,可能同時對應了ROM和RAM的一個單元。根據(jù)復雜程度不同,總線也有多種組織形式。
51單片機的存儲結構是一種特殊的哈佛結構,其特點如下:ROM和RAM各有獨立的存儲空間,使用同樣數(shù)據(jù)總線和地州總線,為了區(qū)分當前訪問的是哪一種存儲空間,使用了不同的控制總線。訪問RAM區(qū)間,使用控制總線/RD和/WR。訪問ROM區(qū)間,使用控制總線/PSEN。因為數(shù)據(jù)區(qū)和程序區(qū)使用了同樣的數(shù)據(jù)總線和地址總線,所以不能同時訪問數(shù)據(jù)區(qū)和程序區(qū)。
3.1 RAM區(qū)
3.1.1 片內RAM區(qū)講解方法 89C51在芯片內部集成了128字節(jié)的RAM,其地址范圍。針對這部分區(qū)間,又根據(jù)功能特性的不同,分成了三個部分。
首先應該聲明,片內RAM所有單元均可以用于數(shù)據(jù)存儲。
1)第一部分,通用寄存器區(qū)。地址范圍00H-1FH。為了充分利用內部資源,單片機的片內RAM低32字節(jié)被設計成通用寄存器,供4組,每組8個,都命名為R0~R7,共32個。0組通用寄存器地址范圍是00H-07H,1組通用寄存器地址范圍是08H-0FH,2組通用寄存器地址范圍是10H-17H,3組通用寄存器地址范圍是18H-1FH。
2)第二部分,位尋址區(qū)。地址范圍20H-2FH。每個單元都可以位尋址。16個單元,共128位。每1位都設定了1個位地址,位地址的范圍是00H-7FH。在這里,學生非常容易混淆位地址和字節(jié)地址的關系。我們可以通過指令,分辨當前使用的是字節(jié)地址和位地址。
3)第三部分,普通的數(shù)據(jù)區(qū)。地址范圍30H-2FH。通常棧區(qū)設定在這里。
3.1.2 片外RAM區(qū)講解方法 89C51片外RAM區(qū),最大可用為64K存儲單元,地址范圍0000H-FFFFH。
3.2 ROM區(qū)
3.2.1 片內ROM區(qū)講解方法 89C51片內集成了4K字節(jié)的EEPROM單元,地址范圍0000H-03FFH。當引腳/EA=1,使用這部分ROM存儲器,程序超過4K字節(jié),放在片外ROM區(qū)。
3.2.2 片內ROM區(qū)講解方法 89C51片外ROM區(qū),最大可用為64K存儲單元,地址范圍0000H-FFFFH。
在這里應將其分成低4K字節(jié)和高60K字節(jié)兩部分講解。4K字節(jié)ROM空間,地址范圍也是0000H-03FFH,與片內ROM區(qū)相同,因此學生也容易混淆。應聲明,當/EA=0時,使用這部分空間。
微處理器的存儲組織結構,對于初學者還是有難度的。只有充分理解了哈佛結構,才能理解51單片機的存儲系統(tǒng),進而理解數(shù)據(jù)和指令的尋址方式。