飛思卡爾單片機(jī)g_第1頁
飛思卡爾單片機(jī)g_第2頁
飛思卡爾單片機(jī)g_第3頁
飛思卡爾單片機(jī)g_第4頁
飛思卡爾單片機(jī)g_第5頁
已閱讀5頁,還剩168頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一章嵌入式系統(tǒng)簡介

§1.1嵌入式系統(tǒng)的含義與發(fā)展歷史一、嵌入式系統(tǒng)與單片機(jī)

2001年中國單片機(jī)學(xué)會召開的年會上,將“單片機(jī)”和“嵌入式系統(tǒng)”聯(lián)系在一起。

1.嵌入式系統(tǒng)的由來

在通信、測控與數(shù)據(jù)傳輸?shù)阮I(lǐng)域,計(jì)算機(jī)技術(shù)的應(yīng)用與單純的高速計(jì)算要求不同。①直接面向控制對象;②潛入到具體應(yīng)用體中;③在現(xiàn)場連續(xù)可靠運(yùn)行;④體積小、應(yīng)用靈活;⑤突出控制功能等。§1.1嵌入式系統(tǒng)的含義與發(fā)展歷史將滿足海量高速數(shù)值計(jì)算的計(jì)算機(jī)稱為通用計(jì)算機(jī)系統(tǒng)。

將面向測控對象,嵌入到實(shí)際應(yīng)用系統(tǒng)中,實(shí)現(xiàn)嵌入式應(yīng)用的計(jì)算機(jī)稱為嵌入式計(jì)算機(jī)系統(tǒng),簡稱嵌入式系統(tǒng)。

總體上說,通用計(jì)算機(jī)系統(tǒng)主要用于數(shù)值計(jì)算、信息處理,兼顧控制功能;而嵌入式計(jì)算機(jī)系統(tǒng)主要用于控制領(lǐng)域,兼顧數(shù)據(jù)處理。在一個(gè)綜合系統(tǒng)中,通用計(jì)算機(jī)系統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng)各自扮演不同的角色,共同完成系統(tǒng)任務(wù)?!?.1嵌入式系統(tǒng)的含義與發(fā)展歷史

2.單片機(jī)

MCU內(nèi)部總線(控制總線、數(shù)據(jù)總線、地址總線)CPURAMFlash存儲器A/D轉(zhuǎn)換接口工作支撐模塊定時(shí)器接口串行通信接口其他I/O模塊……一個(gè)典型的MCU內(nèi)部框圖

3.MCU與嵌入式系統(tǒng)的關(guān)系

嵌入式系統(tǒng)通??煞譃?種:工控機(jī)通用CPU模塊嵌入式微處理器嵌入式微控制器

MCU從體系結(jié)構(gòu)到指令系統(tǒng)都是按照嵌入式系統(tǒng)的應(yīng)用特點(diǎn)專門設(shè)計(jì)的,能很好地滿足應(yīng)用系統(tǒng)的嵌入、面向測控對象、現(xiàn)場可靠運(yùn)行等方面的要求,故由MCU構(gòu)成的系統(tǒng)是發(fā)展最快、品種最多、數(shù)量最大、應(yīng)用最廣的嵌入式應(yīng)用系統(tǒng)?!?.1嵌入式系統(tǒng)的含義與發(fā)展歷史§1.1嵌入式系統(tǒng)的含義與發(fā)展歷史二、MCU的發(fā)展

§1.2嵌入式系統(tǒng)常用術(shù)語一、與硬件相關(guān)的術(shù)語

1.封裝(Package)

2.印刷電路板(PCB)

3.動態(tài)隨機(jī)存儲器(DRAM)

4.靜態(tài)隨機(jī)存儲器(SRAM)

5.只讀存儲器(ROM)

6.Flsah

存儲器(FlashMemory)

7.模擬量模擬量

8.開關(guān)量§1.2嵌入式系統(tǒng)常用術(shù)語

1.封裝(Package)

單列直插ZIP雙列直插DIPZ字形直插ZIP小外形封裝SOP緊縮小外形封裝SSOP四方扁平封裝QFP薄方封裝LQFP球柵陣列封裝BGA插針網(wǎng)格陣列封裝CPGA塑料扁平組件式封裝PFP帶載封裝TCP§1.2嵌入式系統(tǒng)常用術(shù)語§1.2嵌入式系統(tǒng)常用術(shù)語

2.印刷電路板(PCB)主要功能是提供集成電路等各種電子元件固定、裝配的機(jī)械支撐;實(shí)現(xiàn)集成電路等各種電子元件之間的布線和電氣連接(信號傳輸);為自動裝配提供阻焊圖形,為元器件插裝、檢查、維修提供識別字符和圖形等?!?.2嵌入式系統(tǒng)常用術(shù)語

3.動態(tài)隨機(jī)存儲器(DRAM)

4.靜態(tài)隨機(jī)存儲器(SRAM)

5.只讀存儲器(ROM)

6.Flsah

存儲器(FlashMemory)簡稱閃存,比E2PROM的擦除速度更快,集成度更高。如Freescale公司的HC08芯片采用了第三代0.25μm的閃存技術(shù),可擦寫10萬次,頁擦寫只需幾十毫秒。可系統(tǒng)內(nèi)編程,不需另外的器件?!?.2嵌入式系統(tǒng)常用術(shù)語

7.模擬量

8.開關(guān)量

§1.2嵌入式系統(tǒng)常用術(shù)語二、與通信相關(guān)的術(shù)語

1.并行通信

2.串行通信

3.串行外設(shè)接口SPI

4.集成電路互連總線I2C5.通用串行總線USB6.控制器局域網(wǎng)CAN7.背景調(diào)試模式BDM8.邊界掃描測試協(xié)議JTAG§1.2嵌入式系統(tǒng)常用術(shù)語

1.并行通信

2.串行通信

3.串行外設(shè)接口SPI

也是一種串行通信方式,主要用于MCU擴(kuò)展外圍芯片。

4.集成電路互連總線I2C

是由PHILIPS公司開發(fā)的兩線制串行總線,主要用于MCU與其外圍電路的連接。

5.通用串行總線USB

是一種MCU與外界進(jìn)行數(shù)據(jù)通信的方式。§1.2嵌入式系統(tǒng)常用術(shù)語

6.控制器局域網(wǎng)CANCAN總線(ControlAreaNetwork,控制局域網(wǎng)絡(luò))最早是由德國Bosch公司推出,用于汽車內(nèi)部測量與執(zhí)行部件之間的數(shù)據(jù)通信協(xié)議。其總線規(guī)范已被ISO國際標(biāo)準(zhǔn)組織制定為國際標(biāo)準(zhǔn),廣泛應(yīng)用于離散控制領(lǐng)域,并得到了Philips、Intel、Siemens、Motorola、NEC等公司的支持。CAN協(xié)議是建立在國際標(biāo)準(zhǔn)組織的開放系統(tǒng)互連模型基礎(chǔ)上,但只取OSI底層的物理層、數(shù)據(jù)鏈路層和頂層的應(yīng)用層,通信介質(zhì)可以是雙絞線、同軸電纜或光纖,通信速率可達(dá)1Mbps(通信距離最長為40m),直接通信距離最長可達(dá)10km(通信速率5kbps以下),最多可掛接設(shè)備110個(gè)。§1.2嵌入式系統(tǒng)常用術(shù)語

7.背景調(diào)試模式BDM

背景調(diào)試模式BDM是Freescale公司提出的一種調(diào)試接口,主要用于嵌入式MCU的程序下載和程序調(diào)試?!?.2嵌入式系統(tǒng)常用術(shù)語§1.2嵌入式系統(tǒng)常用術(shù)語

8.邊界掃描測試協(xié)議JTAG

邊界掃描測試協(xié)議JTAG是由國際聯(lián)合測試行動組開發(fā)的、對芯片進(jìn)行測試的一種方式,可將其用于對MCU的程序進(jìn)行載入和調(diào)試。

JTAG能獲取芯片寄存器等內(nèi)容,或者測試遵守IEEE規(guī)范的器件之間引腳連接情況。§1.2嵌入式系統(tǒng)常用術(shù)語三、與功能模塊相關(guān)的術(shù)語

1.通用輸入/輸出GPIO2.A/D與D/A3.脈沖寬度調(diào)制器PWM4.看門狗

5.液晶顯示器LCD6.發(fā)光二極管LED7.鍵盤§1.2嵌入式系統(tǒng)常用術(shù)語

1.通用輸入/輸出GPIO2.A/D與D/A3.脈沖寬度調(diào)制器PWM

是一個(gè)D/A轉(zhuǎn)換器,可以產(chǎn)生一個(gè)高電平和低電平交替的輸出信號。

4.看門狗

5.液晶顯示器LCD

可分為字段型、點(diǎn)陣字符型和點(diǎn)陣圖形3類?!?.2嵌入式系統(tǒng)常用術(shù)語

6.發(fā)光二極管LED7.鍵盤嵌入式系統(tǒng)中最常見的輸入設(shè)備。

§1.2嵌入式系統(tǒng)常用術(shù)語四、與嵌入式軟件相關(guān)的術(shù)語

1.中斷

2.中斷服務(wù)程序

3.實(shí)時(shí)操作系統(tǒng)RTOS4.μC/OS-II5.臨界區(qū)§1.2嵌入式系統(tǒng)常用術(shù)語

1.中斷

2.中斷服務(wù)程序

3.實(shí)時(shí)操作系統(tǒng)RTOSRTOS是一種運(yùn)行于嵌入式系統(tǒng)上的操作環(huán)境,在可預(yù)測的時(shí)間間隔內(nèi)能對特定的事件做出反應(yīng)。RTOS為每個(gè)任務(wù)建立一個(gè)可執(zhí)行的環(huán)境,在任務(wù)之間傳遞消息,區(qū)分任務(wù)執(zhí)行的優(yōu)先級,并協(xié)調(diào)多個(gè)任務(wù)對同一個(gè)I/O設(shè)備的調(diào)用。一個(gè)規(guī)模大、結(jié)構(gòu)復(fù)雜的嵌入式系統(tǒng)可以分解為一系列較小、較簡單的并行任務(wù)來實(shí)現(xiàn),各個(gè)任務(wù)之間互不干擾,使用RTOS排除并行任務(wù)中的人為因素,降低復(fù)雜度,增強(qiáng)模塊化,使工程由更簡易和標(biāo)準(zhǔn)化的模塊組成,處理起來更加輕松、快捷?!?.2嵌入式系統(tǒng)常用術(shù)語

4.μC/OS-II

是一個(gè)可移植、可裁剪的搶占式多任務(wù)實(shí)時(shí)操作系統(tǒng),在嵌入式系統(tǒng)中得到廣泛應(yīng)用。

5.臨界區(qū)是RTOS中使用的一個(gè)術(shù)語,指一段必須按次序執(zhí)行的代碼,并且不能被中斷,否則程序有可能無法正常運(yùn)行?!?.3嵌入式系統(tǒng)開發(fā)方法導(dǎo)引一、嵌入式產(chǎn)品的一般構(gòu)成一個(gè)以MCU為核心的、比較復(fù)雜的嵌入式應(yīng)用系統(tǒng),一般包含模擬量的輸入/輸出、開關(guān)量的輸入/輸出和數(shù)據(jù)通信等部分。放大器:將微弱電信號放大成MCU可接受的電信號傳感器:將實(shí)際物理信號轉(zhuǎn)換為微弱電信號實(shí)際模擬信號MCUD/A轉(zhuǎn)換接口I/0接口A/D轉(zhuǎn)換接口將實(shí)際開關(guān)信號轉(zhuǎn)換成MCU可接受的電信號實(shí)際開關(guān)信號模擬量驅(qū)動機(jī)構(gòu):將MCU送出的信號放大模擬量執(zhí)行機(jī)構(gòu)通信接口開關(guān)量驅(qū)動機(jī)構(gòu):將MCU送出的信號放大開關(guān)量執(zhí)行機(jī)構(gòu)通信信號匹配電路其他通信設(shè)備一個(gè)典型的嵌入式應(yīng)用系統(tǒng)框圖MCU工作支撐電路其他輸入信號其他輸出信號§1.3嵌入式系統(tǒng)開發(fā)方法導(dǎo)引二、嵌入式產(chǎn)品的一般開發(fā)方法

1.基本輸入/輸出分析

2.選擇MCU的基本方法

3.選擇評估系統(tǒng)并對與MCU相關(guān)的硬件進(jìn)行初步評估

4.設(shè)計(jì)并制作硬件系統(tǒng)

5.進(jìn)行硬件系統(tǒng)的模塊測試

6.軟件系統(tǒng)設(shè)計(jì)

7.系統(tǒng)測試

8.進(jìn)一步工作§1.3嵌入式系統(tǒng)開發(fā)方法導(dǎo)引

1.基本輸入/輸出分析

2.選擇MCU的基本方法考慮的因素:處理性能、功耗、價(jià)格、封裝形式、軟硬件開發(fā)工具、設(shè)計(jì)者的熟悉程度等。①M(fèi)CU的總I/O口個(gè)數(shù)應(yīng)略多于系統(tǒng)功能所需的個(gè)數(shù),以備功能擴(kuò)展和調(diào)試時(shí)使用;②使用到的外設(shè)功能模塊應(yīng)盡可能集成在MCU內(nèi)部,以簡化系統(tǒng)硬件、降低系統(tǒng)功耗、提高系統(tǒng)的可靠性;③盡量選擇較為熟悉和開發(fā)工具完備的芯片,以減少開發(fā)周期、提高開發(fā)效率?!?.3嵌入式系統(tǒng)開發(fā)方法導(dǎo)引

3.選擇評估系統(tǒng)并對與MCU相關(guān)的硬件進(jìn)行初步評估

4.設(shè)計(jì)并制作硬件系統(tǒng)

5.進(jìn)行硬件系統(tǒng)的模塊測試

6.軟件系統(tǒng)設(shè)計(jì)

7.系統(tǒng)測試是系統(tǒng)開發(fā)中一個(gè)十分重要的過程,其根本任務(wù)是發(fā)現(xiàn)系統(tǒng)中的缺陷。

8.進(jìn)一步工作§1.3嵌入式系統(tǒng)開發(fā)方法導(dǎo)引

第二章HCS12/HCS12X系列MCU簡介與MC9S12DG128的最小系統(tǒng)

§2.1HCS12系列MCU概述一、HCS12系列MCU的命名規(guī)

MC

9

S12

Dx

256

B

x

xx

E①②③④⑤⑥⑦⑧⑨①產(chǎn)品狀態(tài):

MC-完全合格品;XC-部分合格品;PC-生產(chǎn)工程;KMC、KXC-樣品包裝。②存儲器類型標(biāo)志:“9”表示片內(nèi)帶Flash。③CPU標(biāo)志:表示中央處理器為CPU12?!?.1

HCS12系列MCU概述④系列標(biāo)志

Dx表示為D系列產(chǎn)品。⑤存儲空間大小

256表示256KB。⑥Flash版本標(biāo)志反映不同的擦寫電壓、時(shí)間等。⑦工作溫度范圍標(biāo)志“無”表示溫度范圍為0~70℃;“C”表示溫度范圍為-40~85℃;“V”表示溫度范圍為-40~105℃;“M”表示溫度范圍為-40~125℃;§2.1

HCS12系列MCU概述⑧封裝標(biāo)志表示芯片的封裝形式。⑨無鉛組裝標(biāo)志§2.1

HCS12系列MCU概述二、HCS12各子系列MCU簡介系列:A系列;B系列;C系列;D系列;E系列;GC系列;H系列;NE系列;Q系列;T系列;UF系列。相同點(diǎn):工作電壓一般為5V。不同點(diǎn):ROM大?。籖AM大?。籈EPROM大?。籉lash容量;I/O口數(shù);串行借口;A/D轉(zhuǎn)換器。

RAM容量最大可達(dá)14KB,最小為2KB;I/O口數(shù)最多有117個(gè),最少只有25個(gè);Flash容量最大可達(dá)512KB,最小只有16KB。§2.2

HCS12X系列MCU概述一、HCS12X系列MCU與HCS12系列MCU的主要差異

1.主要特點(diǎn)大容量的FlashEEPROM(32KB~1MB);

40MHz的增強(qiáng)CPU;

XGATE模塊;

32KB的RAM;

4KB的EEPROM

控制器區(qū)域網(wǎng)絡(luò)(CAN)

SCI/LIN;

SPI;

I2C;§2.2

HCS12X系列MCU概述高級中斷功能;增強(qiáng)的捕捉定時(shí)器;

10位ADC;

8通道PWM;帶有追蹤緩存的片上單線背景調(diào)試模式(BDM);

-40~125℃的溫度范圍。

2.內(nèi)部寄存器

6個(gè)16位寄存器D、IX、IY、SP、PC和CCRW,2個(gè)8位寄存器A、B?!?.2

HCS12X系列MCU概述

3.尋址方式基本的尋址方式有8種,具體的尋址方式有16種。直接尋址方式與HCS12有所不同,且增加了全局尋址方式。

4.指令集增加了兩條與CCRW寄存器相關(guān)的堆棧操作指令PSHCW和PULCW?!?.2

HCS12X系列MCU概述二、典型HCS12X系列MCU簡介

HCS12XE系列

HCS12XF系列

HCS12XS系列§2.2

HCS12X系列MCU概述三、HCS12X系列MCU中的新增模塊簡介

XGATE協(xié)處理器模塊

FlexRay模塊

§2.3MC9S12DG128MCU及其最小系統(tǒng)一、MCU性能概述

1.時(shí)鐘和復(fù)位模塊、存儲器與封裝形式時(shí)鐘和復(fù)位模塊(CRG):包括振蕩器、鎖相環(huán)時(shí)鐘頻率放大器、看門狗、實(shí)時(shí)中斷和時(shí)鐘監(jiān)控器。存儲器:128KB的FlashEEPROM、8KB的RAM、2KB的EEPROM。封裝形式:80引腳的TQFP和112引腳LQFP。具有5V輸入和驅(qū)動能力,CPU工作頻率可達(dá)50MHz,支持BDM,可在線設(shè)置硬件斷點(diǎn)?!?.3MC9S12DG128MCU及其最小系統(tǒng)

2.豐富的I/O接口通用I/O接口:29路獨(dú)立的I/O接口,20路帶中斷和喚醒功能。

A/D轉(zhuǎn)換接口:兩個(gè)8通道的10位AD轉(zhuǎn)換器,具有外部轉(zhuǎn)換觸發(fā)能力。

CAN總線接口:內(nèi)部集成了3個(gè)CAN協(xié)議控制器—MSCAN12模塊,符合CAN2.0A/B協(xié)議標(biāo)準(zhǔn);可編程傳輸速率達(dá)1Mb/s;具有5個(gè)接收緩沖區(qū)和3個(gè)發(fā)送緩沖區(qū);靈活的標(biāo)識符濾波模式,可配置成2個(gè)32位過濾碼,或4個(gè)16位過濾碼,或8個(gè)8位過濾碼;含有4個(gè)獨(dú)立的中斷輸入引腳;內(nèi)置低通濾波的喚醒功能。§2.3MC9S12DG128MCU及其最小系統(tǒng)輸入捕捉/輸出比較與PWM接口:具有8通道的輸入捕捉/輸出比較,還具有8個(gè)可編程PWM通道,可配置成8通道8位或4通道16位PWM。串行通信接口:2個(gè)串行異步通信接口SCI,2個(gè)同步串行外設(shè)接口SPI,I2C總線及SAEJ1850ClassB數(shù)據(jù)通信網(wǎng)絡(luò)接口?!?.3MC9S12DG128MCU及其最小系統(tǒng)二、運(yùn)行模式

DG128MCU的運(yùn)行模式可分為單片運(yùn)行模式、擴(kuò)展運(yùn)行模式和其它運(yùn)行模式。單片運(yùn)行模式包括普通單片模式和特殊單片模式。擴(kuò)展運(yùn)行模式包括普通擴(kuò)展寬模式、普通擴(kuò)展窄模式、仿真擴(kuò)展寬模式和仿真擴(kuò)展窄模式。其它運(yùn)行模式包括測試模式和外設(shè)模塊測試模式。

§2.3MC9S12DG128MCU及其最小系統(tǒng)

1.單片運(yùn)行模式

是DG128MCU最常用的運(yùn)行模式。系統(tǒng)復(fù)位時(shí),若MODA(PE5)和MODB(PE6)引腳為低電平,MODC(BKGD)為高電平,則進(jìn)入普通單片模式。普通單片模式是正常運(yùn)行應(yīng)用程序時(shí)使用的模式。系統(tǒng)復(fù)位時(shí),若MODA(PE5)和MODB(PE6)引腳為低電平,MODC(BKGD)為低電平,則進(jìn)入特殊單片模式。特殊單片模式又稱為背景調(diào)試模式(BDM),是需要進(jìn)行背景調(diào)試時(shí)應(yīng)用的模式?!?.3MC9S12DG128MCU及其最小系統(tǒng)

2.擴(kuò)展運(yùn)行模式

DG128MCU的擴(kuò)展運(yùn)行模式允許通過CPU外部總線擴(kuò)展RAM、Flash、I/O等。擴(kuò)展運(yùn)行模式分窄模式和寬模式,窄模式使用8位外部數(shù)據(jù)總線,寬模式使用16位外部數(shù)據(jù)總線。擴(kuò)展運(yùn)行模式又分為普通運(yùn)行模式和特殊運(yùn)行模式,區(qū)別在于有些寄存器只能在特殊模式下讀/寫。仿真擴(kuò)展模式下,可以看到總線上的控制信號,可接邏輯分析儀用于調(diào)試。§2.3MC9S12DG128MCU及其最小系統(tǒng)

3.其它運(yùn)行模式

DG128MCU的其它運(yùn)行模式有測試模式、外設(shè)模塊測試模式等,用于芯片生產(chǎn)中的測試,用戶一般使用不到。

§2.3MC9S12DG128MCU及其最小系統(tǒng)三、內(nèi)部結(jié)構(gòu)簡圖、引腳圖及引腳功能

MC9S12DG128MCU具有80引腳和112引腳的兩種封裝形式,

其中除了地址、數(shù)據(jù)、控制等三總線外,主要是I/O引腳,多數(shù)引腳具有兩種或更多功能?!?.3MC9S12DG128MCU及其最小系統(tǒng)§2.3MC9S12DG128MCU及其最小系統(tǒng)§2.3MC9S12DG128MCU及其最小系統(tǒng)

1.電源引腳電源引腳共6組,分別滿足器件內(nèi)不同部分的電源要求。

(1)VDDR、VSSR:數(shù)字電源和接地引腳。

(2)VDDX、VSSX:I/O電源和接地引腳,為I/O接口驅(qū)動部分供電。

(3)VDD1、VSS1和VDD2

、VSS2:2.5V內(nèi)部邏輯參考電壓引腳。

(4)VDDA、VSSA:A/D轉(zhuǎn)換電源引腳。

(5)VRH、VRL:A/D轉(zhuǎn)換的參考電源引腳。

(6)VDDPLL、VSSPLL:2.5VPLL電路的電源引腳?!?.3MC9S12DG128MCU及其最小系統(tǒng)

2.控制引腳

(1)RESET:復(fù)位引腳。

(2)BKGD:背景調(diào)試引腳。

(3)VREGEN:片內(nèi)電壓調(diào)節(jié)模塊的使能引腳。

3.時(shí)鐘引腳

XTAL、EXTAL:晶體驅(qū)動輸出和外部時(shí)鐘輸入引腳。若EXTAL引腳外接時(shí)鐘,則XTAL引腳必須懸空。

4.I/O引腳§2.3MC9S12DG128MCU及其最小系統(tǒng)四、最小系統(tǒng)

最小系統(tǒng)是指MCU運(yùn)行程序所必需的外圍電路。

MC9S12DG128MCU的最小系統(tǒng)包括電源電路、PLL電路、復(fù)位電路、BDM調(diào)試接口電路等?!?.3MC9S12DG128MCU及其最小系統(tǒng)§2.3MC9S12DG128MCU及其最小系統(tǒng)

1.電源電路

HCS12MCU的芯片內(nèi)部使用3V電壓,I/O端口和外部供電電壓為5V。

2.PLL電路

PLL電路具有頻率放大和信號提純的功能,可以使系統(tǒng)以較低的外部時(shí)鐘信號獲得較高的工作頻率,以降低外部時(shí)鐘的高頻噪聲。

fosc=4MHz,Cs=4.7nF,Cp=470pF,Rs=10kΩ時(shí),總線時(shí)鐘頻率為25MHz?!?.3MC9S12DG128MCU及其最小系統(tǒng)

3.復(fù)位電路

共有4種操作可以觸發(fā)系統(tǒng)復(fù)位:

(1)復(fù)位引腳復(fù)位:RESET引腳為低電平時(shí),觸發(fā)復(fù)位。

(2)上電復(fù)位:VDD引腳上電時(shí),觸發(fā)復(fù)位。

(3)看門狗復(fù)位:喂狗操作是向ARMCOP寄存器依次寫入0x55、0xAA。

(4)時(shí)鐘監(jiān)控復(fù)位:當(dāng)系統(tǒng)時(shí)鐘不穩(wěn)時(shí),觸發(fā)復(fù)位?!?.3MC9S12DG128MCU及其最小系統(tǒng)

4.晶振電路

有源晶振和無源晶振??茽柶て澗д衿柶澗д?/p>

XCKLS=0

XCKLS=1§2.3MC9S12DG128MCU及其最小系統(tǒng)

5.BDM接口電路§2.4MC9S12DG128的存儲器映像

S12系列MCU的邏輯地址空間為64KB,地址為$0000~$FFFF 。

(1)$0000~$03FF(1KB):用于內(nèi)部各模塊寄存器的編址。

(2)$0400~$0FFF(3KB):EEPROM地址空間。

(3)$1000~$3FFF(12KB):RAM地址空間。

(4)$4000~$FFFF(48KB):Flash地址空間,分成3個(gè)16KB空間,其中中斷向量區(qū)為$FF00~$FFFF?!?.4MC9S12DG128的存儲器映像DG128存儲空間及其擴(kuò)展

(1)$0000~$03FF(1KB):用于內(nèi)部各模塊寄存器的編址。

(2)$0400~$0FFF(3KB):EEPROM地址空間。

DG128的內(nèi)部EEPROM有2KB,地址空間為$0000~$07FF,默認(rèn)設(shè)置的地址空間被內(nèi)部RAM空間覆蓋。

(3)$1000~$3FFF(12KB):RAM地址空間。

DG128的內(nèi)部RAM有8KB,地址空間為$0000~$1FFF,但$0000~$03FF被內(nèi)部各模塊寄存器覆蓋,所以實(shí)際編程時(shí)只能使用地址空間為$0400~$1FFF的7KB。

(4)$4000~$FFFF(48KB):Flash地址空間,分成3個(gè)16KB空間,其中中斷向量區(qū)為$FF00~$FFFF?!?.4MC9S12DG128的存儲器映像

DG128的Flash存儲器由兩個(gè)物理塊組成(塊0和塊1),共128KB。DG128Flash存儲器兩個(gè)物理塊的地址分配Block(塊號)PPAGE(頁號)未分頁邏輯地址范圍分頁邏輯地址范圍1$38不可見$388000-$38BFFF$39$398000-$39BFFF$3A$3A8000-$3ABFFF$3B$3B8000-$3BBFFF0$3C不可見$3C8000-$3CBFFF$3D$3D8000-$3DBFFF$3E$4000-$7FFF$3E8000-$3EBFFF$3F$C000-$FFFF$3F8000-$3FBFFF§2.4MC9S12DG128的存儲器映像

DG128對Flash空間的訪問有不啟用分頁機(jī)制的尋址方式和啟用分頁機(jī)制的尋址方式。

不啟用分頁機(jī)制的尋址方式:

適用于程序和數(shù)據(jù)(需要存放在Flash中的掉電保護(hù)數(shù)據(jù))的長度小于32KB時(shí)。在這種方式下,除了第0塊的$3E和$3F外,其它的Flash頁均不可訪問,$3E和$3F叫直接頁;$3E在MCU中的邏輯地址范圍為$4000~$7FFF,$3F在MCU中的邏輯地址范圍為$C000~$FFFF;此時(shí)無須設(shè)置頁寄存器PPAGE,直接使用這些邏輯地址即可。§2.4MC9S12DG128的存儲器映像

啟用分頁機(jī)制的尋址方式:

每一頁在MCU中的邏輯地址都是由頁寄存器PPAGE中的頁號和重疊范圍($8000~$BFFF)內(nèi)的地址組成的24位絕對地址。故通過設(shè)置頁寄存器PPAGE可以使用全部的128KBFlash存儲空間。注:在啟用分頁機(jī)制的尋址方式時(shí),對于$3E頁,有$4000~$7FFF和$3E8000~$3EBFFF兩個(gè)邏輯地址范圍映射到內(nèi)部物理地址;對于$3F頁,有$C000~$FFFF和$3F8000~$3FBFFF兩個(gè)邏輯地址范圍映射到內(nèi)部物理地址?!?.4MC9S12DG128的存儲器映像§2.5MC9S12DG128MCU的并行I/O接口

一、基本概念

I/O接口即輸入/輸出接口,是MCU與外界進(jìn)行交互的重要通道。輸入引腳有3種不同的連接方式:帶上拉電阻的連接、帶下拉電阻的連接和懸空連接。I/O口輸入電路框圖§2.5MC9S12DG128MCU的并行I/O接口對于輸出引腳,MCU通過該引腳輸出0(低電平)、1(高電平)的開關(guān)量輸出。I/O口輸出電路框圖§2.5MC9S12DG128MCU的并行I/O接口

二、A口、B口、E口和K口

MC9S12DG128MCU有10個(gè)普通I/O口分別為A口、B口、E口、H口、J口、K口、M口、P口、S口和T口。引腳大部分具有多功能。

作為普通I/O口,每一個(gè)引腳均可通過相應(yīng)的數(shù)據(jù)方向寄存器獨(dú)立地設(shè)置為輸入或輸出。對于A口、B口、E口和K口中被定義為輸入的引腳,可以通過相應(yīng)的上拉電阻允許寄存器獨(dú)立地設(shè)置為內(nèi)部有無上拉電阻。被定義為輸出地引腳,一律為內(nèi)部無上拉電阻。§2.5MC9S12DG128MCU的并行I/O接口

1.A口寄存器

A口作為普通I/O時(shí),具有兩個(gè)寄存器:A口數(shù)據(jù)方向寄存器(DDRA)和A口I/O寄存器(PORTA)。

1)A口數(shù)據(jù)方向寄存器(DDRA)

地址為$0002。

DDRA0~DDRA7分別定義引腳PA0~PA7是輸入還是輸出引腳。若DDRAx設(shè)置為0,則對應(yīng)地引腳PAx定義為輸入引腳;若DDRAx設(shè)置為1,則對應(yīng)地引腳PAx定義為輸出引腳?!?.5MC9S12DG128MCU的并行I/O接口

2)A口I/O寄存器(PORTA)

地址為$0000。若A口的某一引腳被定義為輸出引腳,則PORTAx定義對應(yīng)輸出引腳PAx的輸出電平。0表示輸出低電平,1表示輸出高電平。若A口的某一引腳被定義為輸入引腳,則PORTAx為對應(yīng)輸入引腳PAx的輸入電平。0表示輸入低電平,1表示輸入高電平?!?.5MC9S12DG128MCU的并行I/O接口

2.B口、E口和K口寄存器作為普通I/O時(shí),B口、E口和K口的功能和用法與A口類似。

數(shù)據(jù)方向寄存器:

DDRB:地址為$0003DDRE:地址為$0009DDRK:地址為$0033

數(shù)據(jù)方向寄存器:

PORTB:地址為$0001PORTE:地址為$0008PORTK:地址為$0032§2.5MC9S12DG128MCU的并行I/O接口

3.上拉電阻控制寄存器

A口、B口、E口和K口都有上拉電阻,共用一個(gè)控制寄存器(PUCR)。

PUCR寄存器的地址為$000C。

PUCR寄存器的D0位稱為PUPAE,當(dāng)PUPAE=1時(shí),A口的8個(gè)引腳中被定義為輸入的引腳有內(nèi)部上拉電阻。

PUCR寄存器的D1位稱為PUPBE,當(dāng)PUPBE=1時(shí),B口的8個(gè)引腳中被定義為輸入的引腳有內(nèi)部上拉電阻。

PUCR寄存器的D4位稱為PUPEE,當(dāng)PUPEE=1時(shí),E口的8個(gè)引腳中被定義為輸入的引腳有內(nèi)部上拉電阻。

PUCR寄存器的D7位稱為PUPKE,當(dāng)PUPKE=1時(shí),K口的8個(gè)引腳中被定義為輸入的引腳有內(nèi)部上拉電阻。§2.5MC9S12DG128MCU的并行I/O接口

三、H口、J口、M口、P口、S口和T口

1.端口寄存器

除J口擁有4個(gè)引腳外,H口、M口、P口、S口和T口都擁有8個(gè)引腳。當(dāng)它們作為普通I/O口時(shí),都具有6個(gè)寄存器:數(shù)據(jù)方向寄存器、I/O寄存器、輸入寄存器、低功耗驅(qū)動寄存器、上拉下拉使能寄存器和上拉下拉選擇寄存器?!?.5MC9S12DG128MCU的并行I/O接口I/O名稱寄存器名縮寫地址引腳H口數(shù)據(jù)方向寄存器DDRH$026252~49、35~32I/O寄存器PTH$0260輸入寄存器PTIH$0261低功耗驅(qū)動寄存器RDRH$0263上拉下拉使能寄存器PERH$0264上拉下拉選擇寄存器PPSH$0265J口數(shù)據(jù)方向寄存器DDRJ$026A22、21、99、98I/O寄存器PTJ$0268輸入寄存器PTIJ$0269低功耗驅(qū)動寄存器RDRJ$026B上拉下拉使能寄存器PERJ$026C上拉下拉選擇寄存器PPSJ$026DI/O名稱寄存器名縮寫地址引腳M口數(shù)據(jù)方向寄存器DDRM$0252105~100、88、87I/O寄存器PTM$0250輸入寄存器PTIM$0251低功耗驅(qū)動寄存器RDRM$0253上拉下拉使能寄存器PERM$0254上拉下拉選擇寄存器PPSM$0255P口數(shù)據(jù)方向寄存器DDRP$025A4~1、112~109I/O寄存器PTP$0258輸入寄存器PTIP$0259低功耗驅(qū)動寄存器RDRP$025B上拉下拉使能寄存器PERP$025C上拉下拉選擇寄存器PPSP$025D§2.5MC9S12DG128MCU的并行I/O接口I/O名稱寄存器名縮寫地址引腳S口數(shù)據(jù)方向寄存器DDRS$024A96~89I/O寄存器PTS$0248輸入寄存器PTIS$0249低功耗驅(qū)動寄存器RDRS$024B上拉下拉使能寄存器PERS$024C上拉下拉選擇寄存器PPSS$024DT口數(shù)據(jù)方向寄存器DDRT$02429~12、15~18I/O寄存器PTT$0240輸入寄存器PTIT$0241低功耗驅(qū)動寄存器RDRT$0243上拉下拉使能寄存器PERT$0244上拉下拉選擇寄存器PPST$0245§2.5MC9S12DG128MCU的并行I/O接口§2.5MC9S12DG128MCU的并行I/O接口

1)數(shù)據(jù)方向口寄存器

設(shè)置相應(yīng)口的某一引腳是輸入引腳還是輸出引腳。

0—輸入引腳,1—輸出引腳。

2)I/O寄存器若相應(yīng)口的某一引腳被定義為輸出引腳,則該寄存器定義對應(yīng)輸出引腳的輸出電平。

0—輸出低電平,1—輸出高電平。若相應(yīng)口的某一引腳被定義為輸入引腳,則讀出的是該寄存器的值,而不是對應(yīng)輸入引腳的輸入電平。§2.5MC9S12DG128MCU的并行I/O接口

3)輸入寄存器

只讀寄存器。若相應(yīng)口的某一引腳被定義為輸入引腳,則該寄存器的值為對應(yīng)輸入引腳的輸入電平。

0—輸入低電平,1—輸入高電平。若相應(yīng)口的某一引腳被定義為輸出引腳,則該寄存器的值反應(yīng)對應(yīng)引腳是否負(fù)荷超載或電路短路。

0—輸出引腳工作正常,1—引腳工作超載或電路短路?!?.5MC9S12DG128MCU的并行I/O接口

4)低功耗驅(qū)動寄存器該寄存器的值反應(yīng)對應(yīng)的引腳的輸出功耗情況。

0—輸出功耗正常,1—輸出功耗為正常的1/6。

5)下拉上拉使能寄存器

0—禁用上拉或下拉電阻,1—允許上拉或下拉電阻。

6)下拉上拉選擇寄存器若相應(yīng)口的某一引腳被定義為輸入引腳,且下拉上拉使能寄存器設(shè)置為允許上拉或下拉電阻(對應(yīng)位設(shè)置為1),則通過下拉上拉選擇寄存器相應(yīng)位設(shè)置為下拉或上拉。

0—上拉,1—下拉。

2.端口的復(fù)用功能

T口還具有接收輸入捕捉功能,每個(gè)引腳作為一個(gè)輸入捕捉端口。系統(tǒng)復(fù)位時(shí),引腳置為高阻態(tài)。

S口還作為SCI模塊和SPI模塊的通信接口。系統(tǒng)復(fù)位時(shí),引腳置為帶上拉電阻的輸入狀態(tài)。

M口還作為ByteFlight模塊、BDLC(J1850)模塊、CAN模塊、SPI模塊的通信接口。系統(tǒng)復(fù)位時(shí),引腳置為高阻態(tài)。

P口還作為PWM模塊、SPI模塊的通信接口。另外,作為輸入/輸出端口時(shí),還具有中斷功能。系統(tǒng)復(fù)位時(shí),引腳置為高阻態(tài)。§2.5MC9S12DG128MCU的并行I/O接口

H口還作為SPI模塊的通信接口。另外,作為輸入/輸出端口時(shí),還具有中斷功能。系統(tǒng)復(fù)位時(shí),引腳置為高阻態(tài)。

J口還作為CAN模塊和I2C模塊的通信接口。另外,作為輸入/輸出端口時(shí),還具有中斷功能。系統(tǒng)復(fù)位時(shí),引腳置為帶上拉電阻的輸入狀態(tài)?!?.5MC9S12DG128MCU的并行I/O接口

四、其它I/O口

A/D口作為AD轉(zhuǎn)換模塊的模擬量輸入口和外界觸發(fā)脈沖的輸入口,也可以做為普通輸入口。

A/D口沒有數(shù)據(jù)方向寄存器,故A/D口只能作為輸入口,不能作為輸出口。I/O名稱寄存器名縮寫地址A/D口AD端口數(shù)據(jù)寄存器0PORTAD0$008FAD端口數(shù)據(jù)寄存器1PORTAD1$021F§2.5MC9S12DG128MCU的并行I/O接口

第三章CPU12核

§3.1CPU12基本構(gòu)成

一、CPU12的結(jié)構(gòu)

CPU12是高速的16位處理器單元,內(nèi)設(shè)五個(gè)16位寄存器和一個(gè)8位的狀態(tài)寄存器,內(nèi)部采用16位數(shù)據(jù)總線,外部數(shù)據(jù)總線8位/16位可選。

CPU12主要包括寄存器、控制電路和算術(shù)/邏輯單元(ALU)和指令隊(duì)列等四個(gè)部分??刂七壿嬐粎f(xié)調(diào)各部分邏輯,ALU部件完成指令所要求的算術(shù)/邏輯運(yùn)算等操作,寄存器用于存儲操作數(shù)或運(yùn)算結(jié)果?!?.1CPU12基本構(gòu)成

二、CPU12內(nèi)部寄存器

CPU12中有6個(gè)寄存器:16位累加器D(或8位累加器A、B)、16位變址寄存器X、16位變址寄存器Y、16位堆棧指針SP、16位程序計(jì)數(shù)器PC和8位狀態(tài)寄存器CCR。

1.累加器D(A、B)累加器A、B是8位通用寄存器,累加器D是由累加器A和B首尾相連后形成的16位寄存器聯(lián)合體(A為高位)?;蛘哒fA、B分別是累加器D的高8位和低8位的別名,它們可保存操作數(shù)及運(yùn)算結(jié)果,或用于數(shù)據(jù)處理?!?.1CPU12基本構(gòu)成

2.變址寄存器X和Y16位變址寄存器X和Y用于變址尋址,即X、Y的內(nèi)容加上一個(gè)常數(shù)或者某個(gè)累加器中的值,最終形成的結(jié)果為操作數(shù)的有效地址。X和Y也可以用作計(jì)數(shù)器或暫存器,還可參與運(yùn)算,尤其是乘除運(yùn)算、模糊運(yùn)算、查表、插值等運(yùn)算。

3.堆棧指針SPCPU12支持自動堆棧,用于子程序調(diào)用或中斷現(xiàn)場保護(hù)、數(shù)據(jù)暫存等。堆棧指針指向下一個(gè)棧地址的16位寄存器,采用遞減的結(jié)構(gòu),即入棧時(shí)減一,出棧時(shí)加一?!?.1CPU12基本構(gòu)成

4.程序計(jì)數(shù)器X和YPC是16位寄存器,用于保存要執(zhí)行的下一條指令的地址,可尋址范圍達(dá)64KB。

5.程序狀態(tài)字CCR

程序狀態(tài)字CCR為8位寄存器。SXHINZVCD7D6D5D4D3D2D1D0§3.1CPU12基本構(gòu)成

1)C(D0)

進(jìn)位/借位標(biāo)志位。當(dāng)運(yùn)算過程中產(chǎn)生進(jìn)位或借位對,進(jìn)位/借位標(biāo)志位C置1,否則清0。

2)V(D1)

溢出標(biāo)志位。

主要用于反映兩個(gè)有符號數(shù)運(yùn)算結(jié)果是否有效,如果運(yùn)算結(jié)果超出了有符號數(shù)的表示范圍,則發(fā)生溢出,V標(biāo)志置1,否則清0。§3.1CPU12基本構(gòu)成

3)Z(D2)

全0標(biāo)志位。當(dāng)運(yùn)算結(jié)果為0時(shí),Z位置1,否則清0。

4)N(D3)

符號標(biāo)志位。在CPU運(yùn)算過程中,若結(jié)果為負(fù),則N位置1,否則清0。在CPU12中,除了算術(shù)運(yùn)算以外,寄存器加載、存儲、傳送也影響N標(biāo)志,因此寄存器數(shù)和存儲器數(shù)裝入累加器時(shí),然后通過測試N標(biāo)志位即可知正負(fù)?!?.1CPU12基本構(gòu)成

5)I(D4)

可屏蔽中斷使能位。用于可屏蔽中斷的允許或禁止。I=1時(shí),禁止可屏蔽中斷;I=0時(shí),允許可屏蔽中斷。CPU復(fù)位后,I自動置1,禁止可屏蔽中斷,使用前必須通過軟件(CLI)將I清0開中斷。

CPU響應(yīng)中斷時(shí),自動將I置1,以禁止響應(yīng)后續(xù)中斷,中斷返回時(shí),執(zhí)行RTI指令,I位自動清0,以開放可屏蔽中斷。若在中斷響應(yīng)期間通過將將I位清0來允許可屏蔽中斷,即允許中斷嵌套?!?.1CPU12基本構(gòu)成

6)H(D5)

半進(jìn)位標(biāo)志。在加法運(yùn)算中,如果bit3向bit4產(chǎn)生了進(jìn)位,則H位置1,否則清0。這位主要用于BCD調(diào)整指令。

7)X(D6)非屏蔽中斷使能位。復(fù)位時(shí),一般將X位置為1,屏蔽XIRQ的中斷請求。清零X位將使能非屏蔽中斷,只要X位被清0,就不能通過寫CCR重設(shè)該位,只有當(dāng)復(fù)位或響應(yīng)XIRQ中斷時(shí),硬件自動將X位置1?!?.1CPU12基本構(gòu)成

8)S(D7)

停止模式(STOP)禁止位。若S=1,執(zhí)行STOP指令將使CPU進(jìn)入待機(jī)狀態(tài),振蕩器停振,CPU及多數(shù)集成外設(shè)部件也停止工作,以降低功耗。若S=0

,STOP指令相當(dāng)于空操作(NOP)指令,程序繼續(xù)運(yùn)行。復(fù)位將設(shè)置S位為1?!?.1CPU12基本構(gòu)成

三、指令隊(duì)列為了提高執(zhí)行速度,CPUl2內(nèi)置了兩級的指令隊(duì)列,每一級寬度為1個(gè)字。隊(duì)列前端還設(shè)置了一個(gè)保持鎖存器,寬度也是1個(gè)字。取指操作時(shí),指令代碼不直接進(jìn)入解碼部分,而是進(jìn)入指令隊(duì)列,如果隊(duì)列不能行進(jìn)即代碼不能進(jìn)入指令隊(duì)列,則暫時(shí)寄存在保持鎖存器中,當(dāng)隊(duì)列行進(jìn)時(shí)再正式進(jìn)入隊(duì)列。CPU執(zhí)行的所有指令代碼都來自指令隊(duì)列,一條指令正在執(zhí)行時(shí),指令隊(duì)列可以補(bǔ)充后續(xù)代碼,從而實(shí)現(xiàn)了取指與指令執(zhí)行操作的并行,加快了整個(gè)CPU的運(yùn)行速度。§3.1CPU12基本構(gòu)成必須指出,指令隊(duì)列只能使取指與指令執(zhí)行同時(shí)進(jìn)行,但是并不能使兩條或更多的指令同時(shí)執(zhí)行。此外在發(fā)生跳轉(zhuǎn)時(shí),指令隊(duì)列自動清除,然后重新裝填。盡管指令代碼長度并非全是雙數(shù)字節(jié),但指令隊(duì)列的裝填總是按字進(jìn)行?!?.1CPU12基本構(gòu)成

四、指令執(zhí)行過程

CPU運(yùn)行過程中,不斷進(jìn)行取指、運(yùn)算、結(jié)果存儲等工作,取指操作通過指令隊(duì)列進(jìn)行,結(jié)果存儲則通過內(nèi)/外部總線直接送到目的地。具體過程如下:首先將PC所指的指令代碼不斷讀入指令隊(duì)列,并從隊(duì)首進(jìn)入執(zhí)行部分進(jìn)行分析,控制邏輯根據(jù)指令要求進(jìn)行操作,操作結(jié)果送到目的地并設(shè)置CCR中的標(biāo)志位。

CPU12支持加、減、乘、除運(yùn)算,并支持浮點(diǎn)除法運(yùn)算及其它各種邏輯運(yùn)算,甚至模糊邏輯運(yùn)算等。外部存儲器或內(nèi)部寄存器既可以提供參與運(yùn)算的源操作數(shù)也可以保存運(yùn)算結(jié)果。?!?.1CPU12基本構(gòu)成

五、CPU12的堆棧管理規(guī)則及使用堆棧是按照后進(jìn)先出原則組織的一個(gè)存儲區(qū),CPU12使用堆棧指針SP管理堆棧。SP為16位寄存器,因此堆棧可以開在64KB內(nèi)存空間的任何區(qū)間。復(fù)位不改變SP的值,因此應(yīng)用程序必須在開始部分對堆棧指針進(jìn)行初始化,使其指向一個(gè)有效的RAM區(qū)。

CPU12的堆棧是向下生成的,將一個(gè)字節(jié)壓人堆棧時(shí),堆棧指針自動減1,從堆棧中彈出一個(gè)字節(jié)時(shí),堆棧指針自動加1,若操作數(shù)為雙字節(jié)則SP每次加減2?!?.1CPU12基本構(gòu)成

SP總是指向最后進(jìn)入堆棧的一個(gè)字節(jié),這一般稱為實(shí)棧頂,因此壓棧操作時(shí)先調(diào)整堆棧指針,后保存數(shù)據(jù),出棧時(shí)正相反。初始化時(shí)一般將SP指向與棧底相鄰的單元,它不屬于堆棧,因此表示堆棧為空。堆棧主要用于子程序調(diào)用、中斷和臨時(shí)保存數(shù)據(jù)。一、匯編指令格式

HCS12匯編語言源程序的格式:

標(biāo)號:操作碼操作數(shù);注釋

1.標(biāo)號

1)

可以組成標(biāo)號的字符有字母(a~z,A~Z)、數(shù)字(0~9)、?、_、$及點(diǎn)號(.),但開頭的第一個(gè)字符不能為數(shù)字;

2)標(biāo)號后必須帶“:”;

3)標(biāo)號長度通常不超過16個(gè)字符;

4)標(biāo)號在程序中只能定義一次?!?.2

尋址方式

2.操作碼不區(qū)分字母大小寫。

3.操作數(shù)操作數(shù)可以是地址、標(biāo)號或指令碼定義的常數(shù),也可以是由運(yùn)算符構(gòu)成的表達(dá)式。操作數(shù)多于1個(gè)時(shí),操作數(shù)間要用“,”分隔。

1)常數(shù)數(shù)制前綴標(biāo)號十六進(jìn)制$八進(jìn)制@二進(jìn)制%十進(jìn)制&或無§3.2

尋址方式§3.2

尋址方式

2)“#”標(biāo)識一個(gè)常數(shù)前添加“#”標(biāo)識表示一個(gè)立即數(shù),不加“#”標(biāo)識時(shí)表示一個(gè)地址。

3)“.”和“*”標(biāo)識當(dāng)字符“.”和“*”標(biāo)識單獨(dú)用在表達(dá)式時(shí),表示當(dāng)前指令的地址。

4.注釋§3.2

尋址方式

二、尋址方式確定指令中所需操作數(shù)的方式。

1.隱含尋址(INH)格式:INST

說明:指操作數(shù)隱含在指令的操作碼中。指令的操作數(shù)部分空白。例如:INX;操作數(shù)是寄存器X的內(nèi)容

CLRA;操作數(shù)是寄存器A的內(nèi)容§3.2

尋址方式

2.立即尋址(IMM)格式:INST#opr8/#opr16

說明:指操作數(shù)由指令直接給出的尋址方式。操作數(shù)帶“#”號。

例如:LDAA#$0D;$0D→累加器ALDS

#$02FF;$02FF→棧指針SP§3.2

尋址方式

3.直接尋址(DIR)直接尋址為絕對地址尋址,其有效地址緊隨操作碼之后。格式:INSTopr8a

說明:直接尋址的操作數(shù)為地址的低8位,高8位默認(rèn)為$00,可對存儲器的$0000~$00FF的256B地址范圍進(jìn)行尋址。操作數(shù)為絕對地址,不帶“?!碧?。例如:LDAA$3D;($003D)→累加器A§3.2

尋址方式

4.擴(kuò)展尋址(EXT)擴(kuò)展尋址也為絕對地址尋址,其有效地址緊隨操作碼之后。格式:INSTopr16a

說明:擴(kuò)展尋址的操作數(shù)為16位地址,可對存儲器的64KB地址范圍進(jìn)行尋址。例如:LDAA$203D;($203D)→累加器A§3.2

尋址方式

5.相對尋址(REL)用于轉(zhuǎn)移和子程序調(diào)用指令。格式:INSTrel8/rel16

說明:當(dāng)執(zhí)行程序時(shí),將當(dāng)前PC指針的內(nèi)容與指令中的偏移量(相對地址)相加,求得轉(zhuǎn)移操作的目的地址。指令中的偏移量有8位帶符號數(shù)和16位帶符號數(shù)兩種,分別可實(shí)現(xiàn)-128~+127B和-32768~+32767B范圍的轉(zhuǎn)移操作。例如:BRAL1;無條件轉(zhuǎn)移至標(biāo)號L1處

BSRL2;調(diào)用標(biāo)號L2處的子程序§3.2

尋址方式

6.變址尋址

CPU12有三種不同的變址尋址。

CPU12變址尋址方式都匯編成1個(gè)操作碼字節(jié)、1個(gè)后置字節(jié)和0到2個(gè)附加字節(jié)。操作碼指示指令和變址尋址方式;后置字節(jié)提供變址尋址方式的具體信息;當(dāng)偏移量大于5時(shí),需用附加字節(jié)?!?.2

尋址方式

1)帶有偏移量的變址尋址

即在變址寄存器的基礎(chǔ)上,再加上一個(gè)5位、9位、或16位的帶符號偏移量,也可用累加器A、B、或D的內(nèi)容作為偏移量,形成操作數(shù)的有效地址。

(1)5位偏移量變址尋址(IDX)

格式:INSToprx5,xysp

說明:X、Y、SP、PC加上5位帶符號常數(shù)偏移量形成操作數(shù)地址。偏移范圍為-16~+15B。例如:LDAA2,X;(2+X)→累加器A§3.2

尋址方式

(2)9位偏移量變址尋址(IDX1)

格式:INSToprx9,xysp

說明:X、Y、SP、PC加上9位帶符號常數(shù)偏移量(1個(gè)擴(kuò)展字節(jié)中)形成操作數(shù)地址。偏移范圍為-256~+255B。例如:LDAA$F2,Y;($F2+Y)→累加器A§3.2

尋址方式

(3)16位偏移量變址尋址(IDX2)

格式:INSToprx16,xysp

說明:X、Y、SP、PC加上16位帶符號常數(shù)偏移量(2個(gè)擴(kuò)展字節(jié)中)形成操作數(shù)地址。偏移范圍為-32768~+32767B。例如:LDAA$1200,PC;($1200+PC)→累加器A§3.2

尋址方式

(4)累加器偏移變址尋址(IDX)

格式:INSTabd,xysp

說明:X、Y、SP、PC加上8位(A、B)或16位(D)偏移量形成操作數(shù)地址。偏移范圍分別為-128~+127B或-32768~+32767B。例如:LDAAA,Y;(A+Y)→累加器A§3.2

尋址方式

2)自動遞增/遞減的變址尋址

有4種方式自動改變基址寄存器(X、Y、SP)的值,適用于數(shù)組等連續(xù)數(shù)據(jù)區(qū)的操作,調(diào)整步距可在1~8之間變化,故適合字節(jié)、字、雙字和四字變量類型。

(1)先自增變址尋址(IDX)

格式:INSToprx3,+xys

說明:先將基址寄存器(X、Y、SP)加上一個(gè)指定的值(1~8),然后作為操作數(shù)的地址執(zhí)行指令。例如:STAA1,+X;先執(zhí)行X+1→X,再執(zhí)行STAA§3.2

尋址方式

(2)先自減變址尋址(IDX)

格式:INSToprx3,-xys

說明:先將基址寄存器(X、Y、SP)減去一個(gè)指定的值(1~8),然后作為操作數(shù)的地址執(zhí)行指令。例如:STAA1,-X;先執(zhí)行X-1→X,再執(zhí)行STAA(3)后自增變址尋址(IDX)

格式:INSToprx3,xys+

說明:先作為操作數(shù)的地址執(zhí)行指令,然后將基址寄存器(X、Y、SP)加上一個(gè)指定的值(1~8)。例如:STAA1,X+;先執(zhí)行STAA,再執(zhí)行X+1→X§3.2

尋址方式

(4)后自減變址尋址(IDX)

格式:INSToprx3,xys-

說明:先作為操作數(shù)的地址執(zhí)行指令,然后將基址寄存器(X、Y、SP)減去一個(gè)指定的值(1~8)。例如:STAA1,X-;先執(zhí)行STAA,再執(zhí)行X-1→X§3.2

尋址方式

3)間接變址尋址

采用變址寄存器(X、Y、SP、PC)加16位偏移量或累加器D的內(nèi)容,形成操作數(shù)存放單元的有效地址。

(1)16位間接變址尋址([D,IDX])

格式:INST[oprx16,xysp]

說明:指向操作數(shù)的指針的地址由X、Y、SP、PC加上一個(gè)16位常數(shù)偏移量來確定。例如:LDAA[$1200,X];((X+$1200))→A§3.2

尋址方式

(2)累加器D間接變址尋址([IDX2])

格式:INST[oprx16,xysp]

說明:指向操作數(shù)的指針的地址由X、Y、SP、PC加上累加器D來確定。例如:LDAA[D,X];((X+D))→A§3.3

指令系統(tǒng)一、數(shù)據(jù)傳送類指令

1.寄存器加載指令指令共有6條,實(shí)現(xiàn)將立即數(shù)或內(nèi)存操作數(shù)加載到寄存器的功能。源操作數(shù)支持8種尋址方式,目的操作數(shù)為除了CCR和PC以外的所有寄存器。影響標(biāo)志位的N、Z、V三位。助記符操作尋址方式CCRINHIMMDIREXTRELIDXIDX1IDX2[D,IDX][IDX2]SXHINZVCLDAA(M)→A-√√√-√√√√√----√√0-LDAB(M)→B-√√√-√√√√√----√√0-LDD(M:M+1)→A:B-√√√-√√√√√----√√0-LDS(M:M+1)→SP-√√√-√√√√√----√√0-LDX(M:M+1)→X-√√√-√√√√√----√√0-LDY(M:M+1)→Y-√√√-√√√√√----√√0-§3.3

指令系統(tǒng)§3.3

指令系統(tǒng)

2.寄存器存儲指令指令共有6條,實(shí)現(xiàn)將寄存器內(nèi)容送入內(nèi)存單元的功能。源操作數(shù)為除了CCR和PC以外的所有寄存器,目的操作數(shù)支持7種尋址方式。影響標(biāo)志位的N、Z、V三位?!?.3

指令系統(tǒng)助記符操作尋址方式CCRINHIMMDIREXTRELIDXIDX1IDX2[D,IDX][IDX2]SXHINZVCSTAAA→M--√√-√√√√√----√√0-STABB→M--√√-√√√√√----√√0-STDA:B→(M:M+1)--√√-√√√√√----√√0-STSSP→(M:M+1)--√√-√√√√√----√√0-STXX→(M:M+1)--√√-√√√√√----√√0-STYY→(M:M+1)--√√-√√√√√----√√0-§3.3

指令系統(tǒng)

3.寄存器間傳送指令指令實(shí)現(xiàn)將源寄存器內(nèi)容送入目的寄存器的功能。源操作數(shù)和目的操作數(shù)為除了PC以外的所有寄存器。實(shí)際上該類指令只有三條:TAB、TBA和TFR,其余指令是為了兼容HC11而保留的偽指令,由匯編程序自動轉(zhuǎn)換成對應(yīng)的TFR指令。

TFR指令的突出特點(diǎn)是可以在8位寄存器和16位寄存器之間傳送:

8位到8位或16位到16位,直接傳送。

8位到16位,通過符號擴(kuò)展變?yōu)?6位再傳送。

16位到8位,舍棄高8位,只傳送低8位。助記符操作尋址方式CCRINHIMM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論