什么是單片機(jī)硬件
什么是單片機(jī)硬件
你知道什么是單片機(jī)硬件么?下面將由學(xué)習(xí)啦小編帶大家來解答這個(gè)疑問吧,希望對大家有所收獲!
單片機(jī)硬件的概述
8051 系列微處理器基于簡化的嵌入式控制系統(tǒng)結(jié)構(gòu)被廣泛應(yīng)用于從軍事到自動控制再到 PC 機(jī)上的鍵盤上的各種應(yīng)用系統(tǒng)上僅次于 Motorola 68HC11 在 8 位微控制器市場上的銷量很多制造商都可提供 8051 系列單片機(jī)像 IntelPhilipsSiemens 等這些制造商給 51 系列單片機(jī)加入了大量的性能和外部功能像 I2C 總線接口模擬量到數(shù)字量的轉(zhuǎn)換看門狗PWM 輸出等不少芯片的工作頻率達(dá)到 40M工作電壓下降到 1.5V基 于一個(gè)內(nèi)核的這些功能使得 8051 單片機(jī)很適合作為廠家產(chǎn)品的基本構(gòu)架它能夠運(yùn)行各種程序而且開發(fā)者只需要學(xué)習(xí)這一個(gè)平臺
8051 系列的基本結(jié)構(gòu)如下
1 、一個(gè) 8 位算術(shù)邏輯單元
2、32 個(gè) I/O 口4 組 8 位端口可單獨(dú)尋址
3、兩個(gè) 16 位定時(shí)計(jì)數(shù)器
4、全雙工串行通信
5、6 個(gè)中斷源兩個(gè)中斷優(yōu)先級
6、128 字節(jié)內(nèi)置 RAM
7、獨(dú)立的 64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū)
每個(gè) 8051 處理周期包括 12 個(gè)振蕩周期每 12 個(gè)振蕩周期用來完成一項(xiàng)操作如取指令和計(jì)算指令執(zhí)行時(shí)間可把時(shí)鐘頻率除以 12取倒數(shù)然后指令執(zhí)行所須的周期數(shù) 因此 如果你的系統(tǒng)時(shí)鐘是 11.059MHz 除以 12 后就得到了每秒執(zhí)行的指令個(gè)數(shù) 為 921583 條指令 取倒數(shù)將得到每條指令所須的時(shí)間 1.085m
2 存儲區(qū)結(jié)構(gòu)
8051 結(jié)構(gòu)提供給用戶 3 個(gè)不同的存儲空間如圖 A-1每個(gè)存儲空間包括從 0 到最大存儲范圍的連續(xù)的字節(jié)地址空間通過利用特定地址的尋址指令解決了地址重疊的問題
2.1 CODE 區(qū)
第一個(gè)存儲空間是代碼段用來存放可執(zhí)行代碼被 16 位尋址空間可達(dá) 64K代碼段是只讀的當(dāng)要對外接存儲器件如 EPROM 進(jìn)行尋址時(shí)處理器會產(chǎn)生一個(gè)信號但這并不意味著代碼區(qū)一定要用一個(gè) EPROM目前一般使用 EEPROM 作為外接存儲器可以被外圍器件或 8051 進(jìn)行改寫這使系統(tǒng)更新更加容易新的軟件可以下載到 EEPROM 中而不用拆開它然后裝入一個(gè)新的 EEPROM另外帶電池的 SRAMs 也可用來代替 EPROM他可以像 EEPROM 一樣進(jìn)行程序的更新并且沒有像 EEPROM 那樣讀寫周期的限制但是當(dāng)電源耗盡時(shí)存儲在 SRAMs 中的程序也隨之丟失使用 SRAMs 來代替 EPROM 時(shí)允許快速下載新程序到目標(biāo)系統(tǒng)中這避免了編程/調(diào)試/擦寫這樣一個(gè)循環(huán)過程不再需要使用昂貴的在線仿真器
除了可執(zhí)行代碼還可在代碼段中存儲查尋表為達(dá)此目的8051 提供了通過數(shù)據(jù)指針 DPTR 或程序計(jì)數(shù)器加上由累加器提供的偏移量進(jìn)行尋址的指令這樣就可以把表頭地址裝入 DPTR 中把表中要尋址的元素的偏移量裝入累加器中8051 在執(zhí)行指令時(shí)的過程中把這兩者相加由此可節(jié)省不少指令周期在以后的例子中我們會看到這點(diǎn)
2.2DATA 區(qū)
第二個(gè)存儲區(qū)是 8051 內(nèi) 128 字節(jié)的內(nèi)部 RAM或 8052 的前 128 字節(jié)內(nèi)部 RAM這部分
主要是作為數(shù)據(jù)段稱為 DATA 區(qū)指令用一個(gè)或兩個(gè)周期來訪問數(shù)據(jù)段訪問 DATA 區(qū)比訪問 XDATA 區(qū)要快因?yàn)樗捎弥苯訉ぶ贩绞蕉L問 XDATA 須采用間接尋址必須先初始化 DPTR通常我們把使用比較頻繁的變量或局部變量存儲在 DATA 段中但是必須節(jié)省使用 DATA 段因?yàn)樗目臻g畢竟有限
在數(shù)據(jù)段中也可通過 R0 和 R1 采用間接尋址R0 和 R1 被作為數(shù)據(jù)區(qū)的指針將要恢復(fù)或改變字節(jié)的地址放入 R0 或 R1 中根據(jù)源操作數(shù)和目的操作數(shù)的不同執(zhí)行指令需要一個(gè)或兩個(gè)周期
數(shù)據(jù)段中有兩個(gè)小段第一個(gè)子段包含四組寄存器組每組寄存器組包含八個(gè)寄存器 共 32 個(gè)寄存器可在任何時(shí)候通過修改 PSW 寄存器的 RS1 和 RS0 這兩位來選擇四組寄存器的任意一組作為工作寄存器組8051 也可默認(rèn)任意一組作為工作寄存器組工作寄存器組的快速切換不僅使參數(shù)傳遞更為方便而且可在 8051 中進(jìn)行快速任務(wù)轉(zhuǎn)換
另外一個(gè)子段叫做位尋址段BDATA包括 16 個(gè)字節(jié)共 128 位每一位都可單獨(dú)尋址8051 有好幾條位操作指令這使得程序控制非常方便并且可幫助軟件代替外部組合邏輯這樣就減少了系統(tǒng)中的模塊數(shù)位尋址段的這 16 個(gè)字節(jié)也可像數(shù)據(jù)段中其它字節(jié)一樣進(jìn)行字節(jié)尋址
2.3特殊功能寄存器
中斷系統(tǒng)和外部功能控制寄存器位于從地址 80H 開始的內(nèi)部 RAM 中 這些寄存器被稱
做特殊功能寄存器簡稱 SFR其中很多寄存器都可位尋址可通過名字進(jìn)行引用如果要對中斷使能寄存器中的 EA 位進(jìn)行尋址可使用 EA 或 IE.7
或 0AFHSFRs 控制定時(shí)
計(jì)數(shù)器串行口中斷源及中斷優(yōu)先級等這些寄
存器的尋址方式和 DATA
取中的其它字節(jié)和位一樣
2.4IDATA 區(qū)
8051 系列的一些單片機(jī)如 8052 有附加的 128 字節(jié)的內(nèi)部 RAM位于從 80H 開始的地址
空間中被稱為 IDATA因?yàn)?IDATA 區(qū)的地址和 SFRs 的地址是重疊的通過區(qū)分所訪問的存儲區(qū)來解決地址重疊問題因?yàn)?IDATA 區(qū)只能通過間接尋址來訪問
2.5XDATA 區(qū)
8051 的最后一個(gè)存儲空間為 64K和 CODE 區(qū)一樣采用 16 位地址尋址稱作外部數(shù)
據(jù)區(qū)簡稱 XDATA 區(qū)這個(gè)區(qū)通常包括一些 RAM如 SRAM或一些需要通過總線接口的外圍器件對 XDATA 的讀寫操作需要至少兩個(gè)處理周期使用 DPTRR0 或 DPTRR1對 DPTR 來說至少需要兩個(gè)處理周期來裝入地址而讀寫又需要兩個(gè)處理周期同樣 對于 R0 或 R1 裝入需要一個(gè)以上的處理周期而讀寫又需兩個(gè)周期由此可見處理 XDATA 中的數(shù)據(jù)至少要花 3 個(gè)指令周期因此使用頻繁的數(shù)據(jù)應(yīng)盡量保存在 DATA 區(qū)中
如果不需要和外部器件進(jìn)行 I/O 操作或者希望在和外部器件進(jìn)行 I/O 操作時(shí)開關(guān) RAM 則 XDATA 可全部使用 64K RAM關(guān)于這方面的應(yīng)用將在以后介紹