單片機是高等院校工科類專業的重要專業基礎課,傳統教學以C51等8位單片機為主。隨著單片機技術的發展,16位/32位單片機已成主流,因此,有必要選擇一款難易適中的單片機作為教學對象。本書以近年來應用廣泛的MSP430單片機為例,系統地講解了16位單片機的原理及應用。全書共有12章,分章節介紹單片機的組成和結構、片上外設的工作原理、應用及設計,每章配有摘要、正文、基礎實例和綜合實例,并安排了豐富的課后習題。同時,本書還有針對性地安排了基于MSP430的小型項目的設計,并提供源代碼。
本書適合高等學校工科類學生的單片機課程的教學,也可以作為培訓或技術人員自學的參考書。
1.由淺入深,增強教材可讀性,2.引入新技術強調應用性3.實例中引入新型傳感器、無線等新的技術,強調了單片機的實際應用
目 錄
第1章 MSP430系列單片機概述 1
1.1 超低功耗單片機 1
1.2 超低功耗單片機的發展及應用 2
1.3 超低功耗單片機系統的設計原則 3
1.3.1 硬件設計原則 3
1.3.2 軟件設計原則 3 目 錄
第1章 MSP430系列單片機概述 1
1.1 超低功耗單片機 1
1.2 超低功耗單片機的發展及應用 2
1.3 超低功耗單片機系統的設計原則 3
1.3.1 硬件設計原則 3
1.3.2 軟件設計原則 3
1.4 MSP430系列單片機簡介 4
1.4.1 MSP430系列單片機的發展 4
1.4.2 MSP430系列單片機的特點 5
1.4.3 MSP430系列單片機的主要結構 6
1.4.4 MSP430各系列單片機介紹 8
1.5 MSP430系列單片機選型 10
思考練習題 13
第2章 MSP430F169單片機內部資源 14
2.1 MSP430F169單片機結構 14
2.1.1 MSP430F169內部結構 14
2.1.2 MSP430F169封裝及引腳定義 15
2.2 MSP430F169的中央處理單元 17
2.2.1 中央處理單元的組成 17
2.2.2 MSP430F169CPU的寄存器資源 18
2.3 系統復位和工作模式 20
2.3.1 系統復位和初始化 20
2.3.2 工作模式及功耗 22
2.4 MSP430存儲器組織與Flash操作 24
2.4.1 存儲器組織結構 24
2.4.2 MSP430的Flash存儲器 26
2.4.3 Flash操作 28
2.5 MSP430的基礎時鐘模塊 35
2.5.1 各基礎時鐘模塊介紹 36
2.5.2 時鐘模塊的寄存器 39
2.5.3 時鐘應用舉例 41
2.6 MSP430的中斷和特殊功能寄存器 41
2.6.1 中斷的結構和類型特點 41
2.6.2 中斷響應過程 43
2.6.3 中斷的嵌套 43
2.6.4 中斷向量和特殊功能寄存器 43
2.7 電源監測模塊SVS 45
2.7.1 電源監測模塊概述 45
2.7.2 電源管理系統寄存器 47
2.7.3 SVS應用實例 48
思考練習題 48
第3章 MSP430指令系統與開發環境 49
3.1 MSP430指令系統概述 49
3.1.1 匯編語言語句格式 49
3.1.2 無須ROM補償的仿真指令 50
3.1.3 指令的時鐘周期與指令長度 51
3.2 尋址模式 53
3.2.1 寄存器尋址 53
3.2.2 變址尋址 53
3.2.3 符號尋址 53
3.2.4 絕對尋址 54
3.2.5 寄存器間接尋址 54
3.2.6 間接增量尋址 54
3.2.7 立即尋址 55
3.3 指令系統介紹 55
3.3.1 數據傳送類指令 55
3.3.2 數據運算類指令 58
3.3.3 邏輯操作類指令 63
3.3.4 位操作類指令 66
3.3.5 跳轉與程序流程控制類指令 68
3.3.6 堆棧指針尋址 72
3.4 匯編語言程序設計 72
3.4.1 應用程序設計基礎知識 73
3.4.2 匯編語言偽指令 73
3.4.3 常用的匯編程序設計方法 75
3.5 MSP430單片機C語言程序設計基礎 77
3.5.1 IAR C430語言基礎 77
3.5.2 IAR C430編譯器支持的數據類型 78
3.5.3 IAR C430程序結構 80
3.5.4 IAR C430的函數 81
3.6 MSP430的開發環境 82
3.6.1 IAR Embedded Workbench概述 82
3.6.2 IAR Embedded Workbench使用 83
思考練習題 88
第4章 I/O端口操作 89
4.1 I/O端口特點及結構 89
4.2 I/O端口相關寄存器 93
4.3 I/O端口操作流程 95
4.4 I/O端口操作實例 96
4.4.1 I/O基本輸入輸出操作 96
4.4.2 I/O中斷操作 96
4.4.3 I/O端口的第二功能操作 97
4.4.4 綜合應用實例 97
思考練習題 101
第5章 定時器模塊 102
5.1 定時器概述 102
5.2 定時器A 102
5.2.1 定時器A的結構 102
5.2.2 定時器A的主要寄存器 107
5.2.3 定時器A的中斷管理 110
5.3 定時器B模塊 111
5.4 應用實例 113
5.5 看門狗定時/計數器WDT 117
5.5.1 WDT工作原理 117
5.5.2 看門狗定時器寄存器 119
5.5.3 看門狗定時器應用舉例 120
思考練習題 121
第6章 通用同步/異步收發器USART 122
6.1 通用異步串行接口 122
6.1.1 串行接口初始化/重配置的基本步驟 123
6.1.2 通用異步串行接口的數據格式 124
6.1.3 異步通信模式 124
6.1.4 串行操作自動錯誤檢測 125
6.1.5 UART的波特率 125
6.1.6 異步模式下的寄存器 126
6.1.7 UART的設計舉例 132
6.2 SPI接口 134
6.2.1 MSP430F169的同步操作 134
6.2.2 SPI初始化或重新配置流程 135
6.2.3 SPI模式引腳 135
6.2.4 SPI操作方式 135
6.2.5 SPI使能 137
6.2.6 SPI中斷 138
6.2.7 同步模式的寄存器 139
6.2.8 應用舉例 142
6.3 I2C模塊 143
6.3.1 I2C模塊簡介 144
6.3.2 I2C模塊的操作 145
6.3.3 I2C模塊的寄存器 150
6.3.4 綜合應用實例 158
思考練習題 165
第7章 比較器A 166
7.1 比較器A簡介 166
7.2 比較器A工作原理和操作流程 167
7.2.1 比較器A工作原理 167
7.2.2 比較器A基本操作流程 167
7.2.3 模擬輸入信號選擇 167
7.2.4 輸出濾波器選擇 168
7.2.5 電壓基準的產生和選擇 168
7.2.6 比較器端口禁止寄存器CAPD 168
7.2.7 比較器A的中斷 169
7.2.8 用比較器A測量電阻元件 169
7.3 比較器A的寄存器說明 171
7.4 程序設計舉例 173
思考練習題 175
第8章 ADC12模塊 176
8.1 ADC12模塊簡介 176
8.1.1 ADC12模塊的主要特點 176
8.1.2 ADC12模塊的組成 177
8.2 ADC12模塊的操作流程 179
8.2.1 ADC12模塊的采樣與轉換 179
8.2.2 ADC12模塊的采樣保持觸發信號 179
8.2.3 ADC12模塊的采樣模式 180
8.3 ADC12轉換模式 181
8.3.1 單通道單次轉換 181
8.3.2 序列通道單次轉換 182
8.3.3 單通道多次轉換 183
8.3.4 序列通道多次轉換 184
8.4 ADC12寄存器說明 185
8.5 ADC12應用實例 190
8.5.1 ADC12操作流程及簡單應用 190
8.5.2 綜合應用實例 193
思考練習題 196
第9章 DAC12模塊 197
9.1 DAC12簡介 197
9.2 DAC12的操作 198
9.2.1 DAC12內核 198
9.2.2 DAC12的端口選擇 199
9.2.3 DAC12的參考電壓 199
9.2.4 更新DAC12的輸出電壓 199
9.2.5 DAC12_xDAT的數據格式 199
9.2.6 DAC12輸出的偏移校準 200
9.2.7 DAC12中斷 200
9.2.8 組合多個DAC12模塊 201
9.3 DAC12的寄存器 201
9.4 DAC12應用實例 204
思考練習題 205
第10章 DMA模塊 206
10.1 DMA控制器模塊簡介 206
10.1.1 DMA模塊的特點 206
10.1.2 DMA控制器的結構 207
10.2 DMA模塊的操作 208
10.2.1 DMA控制器的尋址模式 208
10.2.2 DMA控制器的傳輸模式 209
10.2.3 DMA觸發方式 209
10.2.4 關閉DMA傳輸 211
10.2.5 DMA通道優先權 211
10.2.6 DMA傳輸周期 212
10.2.7 DMA與系統中斷 212
10.2.8 DMA控制器的中斷 212
10.2.9 DMA方式下的I2C的使用 213
10.2.10 使用DMA控制器的ADC12 213
10.2.11 使用DMA控制器的DAC12 213
10.3 DMA寄存器 213
10.4 DMA應用實例 217
思考練習題 219
第11章 基于MSP430的液晶顯示系統控制 220
11.1 RT1602C模塊介紹 221
11.1.1 RT1602C模塊的引腳說明 221
11.1.2 RT1602C模塊組件內部結構 222
11.1.3 RT1602C模塊的操作時序 222
11.1.4 RT1602C模塊操作指令 224
11.1.5 RT1602C模塊初始化過程 226
11.1.6 RT1602C模塊使用實例 226
11.2 ST7920(12864)模塊介紹 228
11.2.1 ST7920(12864)模塊引腳說明 229
11.2.2 ST7920(12864)內部模塊 230
11.2.3 ST7920(12864)模塊操作時序 230
11.2.4 ST7920(12864)模塊操作指令 232
11.2.5 ST7920(12864)模塊初始化過程 235
11.2.6 ST7920(12864)模塊應用實例 235
11.3 漢字圖形點陣液晶模塊開發 251
11.3.1 NOKIA5110模塊引腳說明 251
11.3.2 NOKIA5110內部模塊介紹 252
11.3.3 NOKIA5110模塊操作時序 252
11.3.4 NOKIA5110模塊操作指令 253
11.3.5 NOKIA5110模塊初始化過程 254
11.3.6 NOKIA5110模塊應用實例 255
思考練習題 260
第12章 綜合應用實例 261
12.1 隨動系統設計 261
12.1.1 系統分析 262
12.1.2 隨動系統硬件電路設計 262
12.1.3 隨動系統軟件設計 267
12.2 小型跟蹤器的設計 276
12.2.1 跟蹤系統功能分析 276
12.2.2 跟蹤器硬件電路設計 277
12.2.3 跟蹤器軟件設計 285
12.2.4 上位機軟件設計 288
12.2.5 系統調試與結果 289
思考練習題 295
參考文獻 296