內容簡介
《MC9S12XS單片機原理及嵌入式系統開發》以全國大學生“飛思卡爾”杯智慧型汽車競賽組委會推薦使用的飛思卡爾MC9S12XS128為主,詳細講述MC9S12XS128單片機的原理以及嵌入式系統的開發技術。《MC9S12XS單片機原理及嵌入式系統開發》首先介紹嵌入式系統和HCS12系列單片機的基礎知識,對C語言的嵌入式編程進行了簡要的說明,然後對MC9S12XS128的輸入/輸出連線埠、中斷系統、脈寬調製、模/數轉換、定時器、定時器、SPI和I2C等模組進行了詳實的講解,並給出相應的套用實例,最後針對全國大學生“飛思卡爾”杯智慧型汽車競賽給出綜合套用實例。
《MC9S12XS單片機原理及嵌入式系統開發》面向工科電氣類、計算機類、機電一體化類和儀器儀表類等相關專業的高年級本科生和研究生,適合參加全國大學生“飛思卡爾”杯智慧型汽車競賽的參賽人員參考,同時也適用於從事嵌入式套用開發的工程技術類人員。
編輯推薦
選用全國大學生“飛思卡爾”杯智慧型汽車競賽組委會推薦的MC9S12XS128
深入講解基於MC9S12XS128式系統設計
給出大量關於智慧型汽車競賽的應甩實例
配有教學課件,方便教學使用
《MC9S12XS單片機原理及嵌入式系統開發》基於全國大學生“飛思卡爾”杯智慧型汽車競賽組委會推薦的MC9S12×S128,詳細地講解了嵌入式系統的設計,給出了大量的智慧型汽車競賽套用實例,內容涵養:
嵌入式系統簡介
Freescale HCS12和HCS12×系列單片機簡介
S12×指令系統
C語言的嵌入式編程
MC9S12×S輸入/輸出商品模組及其套用實例
MC9S12系列中斷系統
MC9S12×S系列脈寬調製模組及其套用實例
MC9S12×S128模數轉換模組及其套用實例
MC9S12×S128定時器模組及其套用實例
MC9S12×S128周期性中斷定時器模組及其套用實例
MC9S12×S系列串列通信接口模組及其套用實例
MC9S12系列SPI和I2C模組及其套用實例
綜合套用實例
目錄
第1章 嵌入式系統簡介 1
1.1 嵌入式系統 1
1.1.1 系統 1
1.1.2 嵌入式系統 1
1.1.3 嵌入式系統的分類 2
1.2 嵌入式系統硬體 3
1.2.1 嵌入式微處理器 3
1.2.2 嵌入式微控制器 3
1.2.3 嵌入式DSP處理器 4
1.2.4 嵌入式片上系統 4
1.3 嵌入式系統軟體 4
1.4 嵌入式作業系統 5
1.4.1 嵌入式作業系統的種類 5
1.4.2 嵌入式作業系統的發展 5
1.4.3 使用實時作業系統的必要性 6
1.4.4 實時作業系統的優缺點 6
1.5 嵌入式系統開發方法 6
第2章 Freescale HCS12和HCS12X系列單片機簡介 8
2.1 HCS12系列單片機概述 8
2.1.1 HCS12系列單片機的命名規則 8
2.1.2 HCS12系列單片機簡介 9
2.2 HCS12X系列單片機概述 10
2.2.1 HCS12X系列單片機主要特點 10
2.2.2 XGATE協處理器與主處理器的關係 11
2.2.3 XGATE的基本特性 12
2.2.4 典型S12X系列單片機簡介 14
2.3 MC9S12XS128簡介 15
2.3.1 MC9S12XS128性能概述 15
2.3.2 MC9S12XS128內部結構、主要特性及引腳 15
2.3.3 MC9S12XS128引腳功能 24
2.4 CPU12(X)核 27
2.4.1 CPU12(X)核特性 27
2.4.2 編程模型 27
2.5 MC9S12XS128的存儲器映射 30
2.6 MC9S12XS128內部鎖相環模組PLL 31
2.6.1 CRG時鐘合成暫存器(SYNR) 32
2.6.2 CRG時鐘參考分頻暫存器(REFDV) 32
2.6.3 CRG時鐘後分頻暫存器(POSTDIV) 33
2.6.4 CRG標誌暫存器(CRGFLG) 33
2.6.5 CRG時鐘選擇暫存器(CLKSEL) 34
2.6.6 CRG IPLL控制暫存器(PLLCTL) 35
2.6.7 CRG中斷使能暫存器(CRGINT) 36
2.6.8 CRG IPLL模組套用實例 36
第3章 S12X指令系統 38
3.1 概述 38
3.2 S12X彙編指令的格式和符號說明 38
3.2.1 操作碼和運算元 39
3.2.2 數據類型 39
3.2.3 數據表示方法 39
3.2.4 暫存器和存儲器表示法 40
3.3 定址方式(Addressing Mode) 40
3.3.1 隱含/固有定址(Inherent Addressing,INH) 40
3.3.2 立即定址(Immediate Addressing,IMM) 41
3.3.3 直接定址(Direct Addressing,DIR) 42
3.3.4 擴展定址(Extended Addressing,EXT) 42
3.3.5 相對定址(Relative Addressing,REL ) 43
3.3.6 變址定址(Indexed Addressing,IDX) 44
3.3.7 全局定址(Global Page Index Register) 50
3.4 S12X彙編指令系統 50
3.4.1 數據傳送指令 50
3.4.2 算術運算指令 58
3.4.3 邏輯運算指令 66
3.4.4 高級函式指令 71
3.4.5 程式控制指令 74
3.4.6 S12X控制指令 77
3.5 彙編程式偽指令 79
3.5.1 段定義指令 79
3.5.2 常量賦值指令 81
3.5.3 常量存儲指令 82
3.5.4 分配變數指令 84
3.5.5 彙編控制指令 85
3.5.6 符號連結指令 85
第4章 C語言的嵌入式編程 87
4.1 程式語言的選擇 87
4.2 C語言編程元素 88
4.2.1 全局變數和局部變數 88
4.2.2 頭檔案 88
4.2.3 編譯預處理 89
4.2.4 數據類型 91
4.2.5 運算符 93
4.2.6 指針 95
4.2.7 條件語句、循環語句及無限循環語句 95
4.2.8 函式 98
4.3 C程式編譯器與交叉編譯器 101
4.4 CodeWarrior軟體簡介 102
4.4.1 CodeWarrior的安裝 102
4.4.2 CodeWarrior使用簡介 104
第5章 MC9S12XS輸入/輸出連線埠模組及其套用實例 110
5.1 輸入/輸出連線埠簡介 110
5.2 輸入/輸出連線埠暫存器及設定 110
5.2.1 PORTA、PORTB、PORTE和PORTK 112
5.2.2 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ 114
5.2.3 A/D連線埠用做數字I/O口 116
5.3 輸入/輸出連線埠套用實例 118
5.3.1 控制輸出設備LED實例 118
5.3.2 讀取輸入設備撥碼開關狀態實例 120
5.4 輸入/輸出連線埠在智慧型車系統中的套用 121
5.4.1 鍵盤接口設計 121
5.4.2 LED顯示接口設計 122
5.4.3 LCD顯示接口設計 124
第6章 MC9S12系列中斷系統 129
6.1 MC9S12系列中斷系統概述 129
6.1.1 復位 130
6.1.2 中斷 131
6.2 MC9S12系列中斷優先權 132
6.3 MC9S12系列中斷程式套用實例 135
第7章 MC9S12XS系列脈寬調製模組及其套用實例 139
7.1 PWM模組概述 139
7.2 PWM模組結構組成和特點 139
7.3 PWM模組暫存器及設定 140
7.3.1 PWM使能暫存器(PWME) 141
7.3.2 PWM極性暫存器(PWMPOL) 142
7.3.3 PWM時鐘選擇暫存器(PWMCLK) 143
7.3.4 PWM預分頻時鐘選擇暫存器(PWMPRCLK) 144
7.3.5 PWM居中對齊使能暫存器(PWMCAE) 145
7.3.6 PWM控制暫存器(PWMCTL) 146
7.3.7 PWM比例因子A暫存器(PWMSCLA) 148
7.3.8 PWM比例因子B暫存器(PWMSCLB) 148
7.3.9 PWM通道計數器(PWMCNT) 149
7.3.10 PWM通道周期暫存器(PWMPER) 149
7.3.11 PWM通道占空比暫存器(PWMDTY) 150
7.3.12 PWM關閉暫存器(PWMSDN) 152
7.4 PWM模組套用實例 153
7.5 PWM模組在智慧型車系統中的套用 155
7.5.1 套用PWM模組控制直流電動機 155
7.5.2 套用PWM模組控制伺服電動機 157
第8章 MC9S12XS128模/數轉換模組及其套用實例 159
8.1 ATD模組概述 159
8.2 ATD模組結構組成和特點 159
8.3 ATD模組暫存器及設定 161
8.3.1 ATD控制暫存器0(ATDCTL0) 161
8.3.2 ATD控制暫存器1(ATDCTL1) 162
8.3.3 ATD控制暫存器2(ATDCTL2) 164
8.3.4 ATD控制暫存器3(ATDCTL3) 165
8.3.5 ATD控制暫存器4(ATDCTL4) 167
8.3.6 ATD控制暫存器5(ATDCTL5) 167
8.3.7 ATD狀態暫存器0(ATDSTAT0) 169
8.3.8 ATD比較使能暫存器(ATDCMPE) 170
8.3.9 ATD狀態暫存器2(ATDSTAT2) 170
8.3.10 ATD輸入使能暫存器(ATDDIEN) 171
8.3.11 ATD比較大於暫存器(ATDCMPHT) 171
8.3.12 ATD轉換結果暫存器(ATDDRn) 172
8.4 ATD模組套用實例 173
8.5 ATD模組在智慧型車系統中的套用 174
8.5.1 ATD模組在基於光電管路徑識別方案中的套用 174
8.5.2 ATD模組在基於攝像頭路徑識別方案中的套用 176
第9章 MC9S12XS128定時器模組及其套用實例 180
9.1 TIM模組概述 181
9.2 TIM模組結構和工作原理 181
9.2.1 TIM模組結構 181
9.2.2 TIM模組工作原理 181
9.2.3 TIM模組暫存器 184
9.2.4 TIM模組中斷系統 186
9.3 TIM模組的自由運行計數器和定時器基本暫存器及設定 187
9.3.1 自由運行主定時器與時鐘頻率設定 187
9.3.2 TIM模組基本暫存器及設定 188
9.4 TIM模組的輸入捕捉功能及暫存器設定 191
9.4.1 TIM模組輸入捕捉功能 192
9.4.2 與輸入捕捉功能相關的暫存器及設定 192
9.5 TIM模組的輸出比較功能及暫存器設定 195
9.5.1 TIM模組輸出比較功能 195
9.5.2 與輸出比較功能相關的暫存器及設定 196
9.6 TIM模組的脈衝累加器功能及暫存器設定 199
9.6.1 TIM模組脈衝累加器功能 199
9.6.2 與脈衝累加器相關的暫存器及設定 201
9.7 TIM模組套用實例 203
9.7.1 輸入捕捉功能套用實例 203
9.7.2 輸出比較功能套用實例 205
9.7.3 脈衝累加器功能套用實例 211
9.8 TIM模組在智慧型車系統中的套用 215
9.8.1 TIM模組輸入捕捉功能在智慧型車系統中的套用 215
9.8.2 TIM模組脈衝累加器功能在智慧型車系統中的套用 215
第10章 MC9S12XS128周期性中斷定時器模組及其套用實例 217
10.1 PIT模組概述 217
10.2 PIT模組結構和工作原理 217
10.2.1 PIT模組結構 217
10.2.2 PIT模組工作原理 218
10.3 PIT模組暫存器及設定 220
10.3.1 PIT控制和強制裝載微定時暫存器(PITCFLMT) 221
10.3.2 PIT強制裝載定時暫存器(PITFLT) 221
10.3.3 PIT通道使能暫存器(PITCE) 222
10.3.4 PIT復用暫存器(PITMUX) 222
10.3.5 PIT中斷使能暫存器(PITINTE) 222
10.3.6 PIT逾時標誌暫存器(PITTF) 223
10.3.7 PIT微定時裝載暫存器0和1(PITMTLD0/1) 223
10.3.8 PIT裝載暫存器0~3(PITLD0~3) 223
10.3.9 PIT計數暫存器0~3(PITCNT0~3) 224
10.4 PIT模組套用實例 224
10.5 PIT模組在智慧型車系統中的套用 226
第11章 MC9S12XS系列串列通信接口模組及其套用實例 234
11.1 SCI模組概述 234
11.2 SCI模組結構組成和特點 234
11.3 SCI模組暫存器 235
11.3.1 SCI波特率暫存器(SCIBDH,SCIBDL) 236
11.3.2 SCI控制暫存器1(SCICR1) 237
11.3.3 SCI可選狀態暫存器1(SCIASR1) 238
11.3.4 SCI可選控制暫存器1(SCIACR1) 239
11.3.5 SCI可選控制暫存器2(SCIACR2) 240
11.3.6 SCI控制暫存器2(SCICR2) 240
11.3.7 SCI狀態暫存器1(SCISR1) 241
11.3.8 SCI狀態暫存器2(SCISR2) 243
11.3.9 SCI數據暫存器(SCIDRH,SCIDRL) 244
11.4 SCI模組套用實例 244
11.5 SCI模組在智慧型車系統中的套用 248
第12章 MC9S12系列SPI和I2C模組及其套用實例 251
12.1 SPI模組 251
12.2 SPI模組結構組成和特點 252
12.3 SPI模組暫存器及設定 253
12.3.1 SPI控制暫存器1(SPICR1) 253
12.3.2 SPI控制暫存器2(SPICR2) 255
12.3.3 SPI波特率暫存器(SPIBR) 256
12.3.4 SPI狀態暫存器(SPISR) 258
12.3.5 SPI數據暫存器(SPIDR:SPIDRH,SPIDRL) 260
12.4 SPI模組套用實例 260
12.5 I2C匯流排接口 262
12.5.1 I2C匯流排概述 262
12.5.2 I2C匯流排工作原理 263
12.6 I2C模組結構組成和特點 265
12.7 I2C模組暫存器及設定 266
12.7.1 I2C匯流排地址暫存器(IBAD) 267
12.7.2 I2C匯流排分頻暫存器(IBFD) 267
12.7.3 I2C匯流排控制暫存器(IBCR) 268
12.7.4 I2C匯流排狀態暫存器(IBSR) 269
12.7.5 I2C匯流排數據輸入/輸出暫存器(IBDR) 271
12.8 I2C模組在智慧型車系統中的套用 271
第13章 綜合套用實例 275
13.1 概述 275
13.2 綜合套用實例1 275
13.2.1 系統組成 275
13.2.2 A/D輸入接口 276
13.2.3 顯示接口 276
13.2.4 通信接口 277
13.2.5 套用軟體設計 277
13.2.6 軟體流程圖 281
13.3 綜合套用實例2 283
13.3.1 系統組成 283
13.3.2 MircoSD卡接口 283
13.3.3 通信接口 284
13.3.4 SD卡工作電源 284
13.3.5 套用軟體設計 284
13.3.6 MircoSD卡套用軟體設計 286
13.3.7 軟體流程圖 288
13.4 綜合套用實例3 290
13.4.1 系統組成 291
13.4.2 A/D輸入接口 291
13.4.3 顯示接口 291
13.4.4 直流電動機驅動接口 291
13.4.5 測速輸入信號調理電路 293
13.4.6 伺服電動機驅動接口 293
13.4.7 套用軟體設計 293
13.4.8 軟體流程圖 295
13.5 綜合套用實例4 297
13.5.1 系統組成 297
13.5.2 起始線信號檢測方法 297
13.5.3 套用軟體設計 299
13.5.4 軟體流程圖 300
附錄A S12彙編指令系統匯總表 303
附錄B S12彙編指令系統匯總表解釋說明 317
附錄C S12彙編指令機器碼匯總表 322
附錄D S12X彙編指令機器碼匯總表解釋說明 326
附錄E HS12實驗開發平台 327
參考文獻 331