本書根據高職高專院校培養(yǎng)應用型技能人才的要求,緊緊圍繞“理實一體化教學”的改革思想,結合高職學生特點,突出實用性,注重實踐性,在內容的選取上以“理論夠用,實踐實用”為原則,在結構上打破傳統(tǒng)的理論化教材形式,將理論知識點和實踐技能結合,每章都采用理實一體形式展開,并可使用專門研發(fā)的學生開發(fā)板,配合教材項目使學生在課堂、課后都可以自由學習,為實踐性教學提供了一個新的途徑。本書共分10章,以飛思卡爾S08AC系列單片機為例系統(tǒng)介紹了各功能模塊的原理結構與在嵌入式系統(tǒng)中的應用,內容涉及單片機與嵌入式系統(tǒng)基礎、S08AC單片機硬件結構、輸入/輸出接口、人機接口技術、中斷與系統(tǒng)配置、內部時鐘發(fā)生器、定時器/PWM、AD轉換器、嵌入式系統(tǒng)總線接口(SCI、SPI、IIC)等。每個章節(jié)按理論知識和項目實踐環(huán)節(jié)開展,內容由淺入深,豐富實用,實踐項目源于工程,涵蓋范圍廣,適合電子、信息、電氣、自動化、機電一體化等專業(yè)學生實用,也適合自學和從事單片機工作的工程技術人員參考。
采用先進的工業(yè)級單片機芯片(飛思卡爾S08系列)
“理實一體化”的實踐性教材
深入、全面的給出工程應用的大量實例
豐富完善的“教、學、做”資源
HCS08系列微控制器是飛思卡爾(Freescale)半導體公司推出的新一代8位MCU。近幾年,伴隨工業(yè)自動化和汽車電子對高可靠性微控制器需求的快速增長,國內嵌入式系統(tǒng)及控制領域對Freescale半導體公司HCS08系列的關注度迅速上升。HCS08系列單片機內部集成了豐富的功能模塊,并采用FLL鎖頻環(huán)技術,在同樣的CPU總線速度下所用的時鐘頻率較其他系列微控制器低得多,甚至可以工作在無外部晶振狀態(tài),因而高頻噪聲極低,適合于惡劣的工業(yè)環(huán)境,其市場份額長期占據前列。目前,越來越多的企業(yè)和科研機構開始應用S08系列MCU研制新型、可靠的嵌入式產品。同時,F(xiàn)reescale公司大學計劃部也順應趨勢,適時地在高校相關課程中大力開展教學推廣,并與多所本科、高職院校建立了聯(lián)合實驗室,逐步推廣Freescale MCU的教學。但是,現(xiàn)階段國內公開出版的HCS08系列微控制器的“教學做一體化”實踐類教材仍然較少。
本書以Freescale半導體公司的8位MCU中的典型型號MC9S08AC16為例,系統(tǒng)性地就HCS08結構、MCU工作模式、存儲器結構和編址、CodeWarrior軟件與嵌入式C語言的使用、MCU的中斷機制以及各功能模塊的原理及設計等內容進行了詳細講解,同時結合實際應用給出了大量典型范例,對讀者具有很好的實踐參考價值。同時,本書按照應用型技能人才的培養(yǎng)要求,緊緊圍繞“理實一體化教學”的改革思想,突出實踐性,重視實用性,將理論知識點和實踐技能結合,每章都采用理實一體形式展開,結合教材項目使讀者能自由練習實踐,為嵌入式開發(fā)的學習提供了一個新的途徑本書共分為12章,內容由淺入深,豐富實用。第1章主要介紹了單片機與嵌入式系統(tǒng)概述;第2章以HCS08系列單片機為例,系統(tǒng)介紹嵌入式微控制器的組成結構與性能特點,并給出了最小應用系統(tǒng)的設計實踐;第3章以嵌入式開發(fā)工具為對象,介紹了CodeWarrior集成開發(fā)環(huán)境的使用方法和實踐技巧;第4~12章以HCS08AC系列單片機為主線,系統(tǒng)全面地講解了通用輸入/輸出接口,人機接口,中斷系統(tǒng),定時器/PWM,模-數(shù)轉換,SCI、SPI及IIC模塊等部件的結構、特點,寄存器設置和使用方法,并結合工程應用給出了調試通過的C語言例程和硬件電路設計。
本書由無錫商業(yè)職業(yè)技術學院李元熙主編,負責編寫第1~10章和附錄并統(tǒng)稿;無錫商業(yè)職業(yè)技術學院李泓編寫第11、12章。本書在編寫過程中得到了無錫商業(yè)職業(yè)技術學院—飛思卡爾校企合作實驗室的大力支持與積極幫助,在此表示感謝。同時,特別感謝Freescale半導體公司中國大學計劃負責人馬莉和蘇州大學王宜懷給予的幫助和支持!
由于個人經驗和水平有限,加上編寫時間倉促,書中難免會有錯誤和不當之處,懇請各位讀者和專家批評指正。
編 者
李元熙,自2002年6月起在無錫商業(yè)職業(yè)技術學院電子工程系任教,先后擔任過《單片機原理與嵌入式系統(tǒng)實踐》、《微機機原理與接口技術》、《單片機原理與應用》、《智能電子技術實踐》、《DSP原理與技術》、《C語言程序設計》、《數(shù)字信號處理》等課程的主講教師,任教10年中先后被學院評為“優(yōu)秀教師”、“教學優(yōu)秀獎”等20余次,深受學生喜愛。
2007年2月起至2008年3月本人作為第一批專業(yè)課程教師被公派出國講學,在韓國永進專門大學任教電子情報類課程的教學工作,講授了《單片機與接口》、《電子專業(yè)英語》等課程,受到韓國學生和教授的廣泛好評,評價等級排名位于外教前列。
2008年回國后兼職受聘于無錫530高科技企業(yè)成為研發(fā)部高級工程師。
2010年加入江蘇省無線傳感應用系統(tǒng)工程技術開發(fā)中心
前言
第1章 單片機與嵌入式系統(tǒng)概述
1.1 單片機與嵌入式系統(tǒng)
1.1.1 單片機的定義與特點
1.1.2 嵌入式系統(tǒng)的定義與特點
1.1.3 嵌入式技術的發(fā)展與應用
1.2 嵌入式系統(tǒng)的開發(fā)
1.2.1 嵌入式開發(fā)語言
1.2.2 嵌入式操作系統(tǒng)
1.2.3 嵌入式技術相關概念
1.3 單片機中的數(shù)制與碼制
1.3.1 數(shù)制
1.3.2 數(shù)制間的轉換
1.3.3 單片機中的碼制
1.4 習題
第2章 HCS08單片機硬件結構與功能
2.1 飛思卡爾8位單片機概述
2.2 HCS08單片機結構與特性
2.2.1 HCS08單片機結構與引腳
2.2.2 HCS08單片機特性
2.3 單片機基本系統(tǒng)連接
2.3.1 電源
2.3.2 時鐘與振蕩器
2.3.3 復位
2.3.4 背景調試與模式選擇
2.3.5 I/O和外圍設備接口電路
2.4 系統(tǒng)時鐘與總線周期
2.4.1 系統(tǒng)時鐘
2.4.2 總線周期
2.5 HCS08單片機工作模式
2.5.1 運行模式
2.5.2 背景調試模式
2.5.3 等待模式
2.5.4 停止模式
2.6 HCS08片上存儲器資源
2.6.1 存儲器編址方式
2.6.2 HCS08單片機存儲空間分配
2.6.3 RAM存儲器
2.6.4 Flash存儲器
2.7 項目實踐 單片機最小應用系統(tǒng)硬件設計
2.8 習題
第3章 單片機與嵌入式系統(tǒng)開發(fā)工具
3.1 CodeWarrior集成開發(fā)環(huán)境
3.1.1 CodeWarrior簡介
3.1.2 CodeWarrior的安裝
3.1.3 CodeWarrior的使用
3.1.4 項目管理和設定
3.1.5 程序下載與BDM調試
3.2 嵌入式C語言編程
3.2.1 嵌入式C語言簡介
3.2.2 嵌入式變量的使用
3.2.3 嵌入式C語法擴充
3.3 項目實踐 CodeWarrior基本操作
3.4 習題
第4章 輸入/輸出接口技術
4.1 I/O接口概述
4.1.1 I/O接口基本功能
4.1.2 I/O接口分類與控制方式
4.2 HCS08單片機GPIO結構與原理
4.2.1 GPIO引腳分布與功能
4.2.2 GPIO結構與工作原理
4.2.3 端口相關寄存器設置
4.3 I/O接口外設驅動電路設計
4.3.1 端口的輸入和輸出電流
4.3.2 端口上拉與下拉電阻
4.4 項目實踐
4.4.1 項目1 開關控制LED狀態(tài)
4.4.2 項目2 流水霓虹燈的制作
4.5 習題
第5章 嵌入式系統(tǒng)人機接口技術
5.1 LED數(shù)碼管顯示器接口
5.1.1 數(shù)碼管結構與顯示原理
5.1.2 數(shù)碼管的連接與驅動方法
5.1.3 數(shù)碼管顯示方式
5.1.4 連排數(shù)碼管的結構與使用
5.2 LCD液晶顯示器接口
5.2.1 液晶顯示器原理與結構
5.2.2 液晶顯示器分類與驅動方式
5.2.3 1602字符點陣型液晶模塊
5.2.4 1602液晶控制指令與操作
5.3 鍵盤接口
5.3.1 鍵盤結構與按鍵識別
5.3.2 按鍵抖動與消除方法
5.3.3 鍵操作與鍵值處理
5.4 項目實踐
5.4.1 項目1 數(shù)碼日期顯示牌
5.4.2 項目2 液晶信息顯示牌
5.4.3 項目3 矩陣式鍵盤的使用
5.5 習題
第6章 中斷與系統(tǒng)配置
6.1 中斷概述
6.1.1 中斷的實質與特點
6.1.2 中斷相關術語
6.2 中斷處理機制
6.2.1 中斷處理流程
6.2.2 中斷處理技術
6.2.3 嵌入式中斷服務函數(shù)的編寫
6.3 HCS08單片機中斷與系統(tǒng)配置
6.3.1 HCS08單片機的中斷處理
6.3.2 HCS08單片機的中斷源與優(yōu)先級
6.3.3 外部引腳中斷(IRQ)
6.3.4 低電壓檢測系統(tǒng)(LVD)
6.3.5 實時中斷(RTI)
6.3.6 系統(tǒng)配置寄存器
6.4 HCS08單片機復位
6.4.1 復位及其狀態(tài)寄存器
6.4.2 COP看門狗
6.5 HCS08單片機鍵盤中斷
6.5.1 鍵盤中斷模塊結構與原理
6.5.2 邊沿與電平觸發(fā)
6.5.3 相關寄存器及設置
6.6 項目實踐
6.6.1 項目1 外部中斷實踐
6.6.2 項目2 實時時鐘中斷實踐
6.7 習題
第7章 時鐘系統(tǒng)與內部時鐘發(fā)生器
7.1 HCS08單片機時鐘系統(tǒng)
7.1.1 系統(tǒng)時鐘分配
7.1.2 ICG組成結構
7.1.3 時鐘系統(tǒng)性能特性
7.2 ICG的操作寄存器
7.2.1 ICG 控制寄存器1(ICGC1)
7.2.2 ICG 控制寄存器2(ICGC2)
7.2.3 ICG 狀態(tài)寄存器1(ICGS1)
7.2.4 ICG 狀態(tài)寄存器2(ICGS2)
7.2.5 ICG 濾波器寄存器(ICGFLTU和ICGFLTL)
7.2.6 ICG 調整寄存器(ICGTRM)
7.3 時鐘模塊工作模式
7.3.1 OFF模式
7.3.2 自時鐘模式(SCM)
7.3.3 FLL內部時鐘模式(FEI)
7.3.4 FLL旁路外部時鐘模式(FBE)
7.3.5 FLL外部時鐘模式(FEE)
7.4 時鐘系統(tǒng)配置與應用
7.4.1 時鐘選擇方法
7.4.2 時鐘系統(tǒng)初始化配置
7.4.3 ICG初始化應用實例
7.5 項目實踐 內部時鐘發(fā)生器模塊
7.5.1 項目1 ICG功能基礎實踐
7.5.2 項目2 LED閃爍調速控制
7.6 習題
第8章 定時器/PWM模塊
8.1 定時器模塊結構與工作模式
8.1.1 定時實現(xiàn)方法
8.1.2 HCS08定時器模塊結構
8.1.3 定時器模塊工作模式
8.1.4 定時器模塊引腳及其配置
8.2 定時器模塊寄存器設置
8.2.1 基礎寄存器及其設置
8.2.2 通道寄存器及其設置
8.3 定時器模塊功能描述
8.3.1 定時計數(shù)功能
8.3.2 輸入捕捉功能
8.3.3 輸出比較功能
8.3.4 PWM功能
8.4 定時器模塊中斷操作
8.4.1 定時器溢出中斷
8.4.2 通道事件中斷
8.5 項目實踐
8.5.1 項目1 電子秒表
8.5.2 項目2 周期檢測器
8.5.3 項目3 方波發(fā)生器
8.5.4 項目4 LED亮度調節(jié)器
8.6 習題
第9章 A-D轉換器
9.1 A-D轉換技術
9.1.1 A-D轉換流程與技術指標
9.1.2 A-D轉換器種類與工作原理
9.2 HCS08內部ADC模塊
9.2.1 模塊結構與組成
9.2.2 模塊引腳與功能
9.2.3 ADC工作過程
9.2.4 自動比較功能
9.3 ADC模塊寄存器設置
9.3.1 狀態(tài)和控制寄存器 1(ADC1SC1)
9.3.2 狀態(tài)和控制寄存器2(ADC1SC2)
9.3.3 配置寄存器(ADC1CFG)
9.3.4 數(shù)據結果寄存器(ADC1RH: ADC1RL)
9.3.5 比較值寄存器(ADC1CVH:ADC1CVL)
9.3.6 引腳控制寄存器(APCTL1、APCTL2和APCTL3)
9.4 A-D轉換操作與控制
9.4.1 A-D轉換操作
9.4.2 A-D轉換控制流程
9.4.3 A-D轉換時間
9.5 項目實踐 數(shù)字電壓表
9.6 習題
第10章 串行通信接口
10.1 串行通信基礎
10.1.1 數(shù)據傳輸分類與特點
10.1.2 數(shù)據傳輸速率
10.1.3 串行通信方式
10.1.4 RS-232C標準與電平轉換
10.2 HCS08串行通信接口模塊
10.2.1 波特率生成器
10.2.2 SCI發(fā)送器
10.2.3 SCI接收器
10.2.4 SCI中斷和狀態(tài)標志
10.3 SCI模塊寄存器
10.3.1 波特率寄存器(SClxBDH:ClxBDL)
10.3.2 SCI 控制寄存器1 (SCIxC1)
10.3.3 SCI 控制寄存器2(SCIxC2)
10.3.4 SCI狀態(tài)寄存器1(SCIxS1)
10.3.5 SCI狀態(tài)寄存器2(SCIxS2)
10.3.6 SCI 控制寄存器3(SCIxC3)
10.3.7 SCI 數(shù)據寄存器(SCIxD)
10.4 項目實踐
10.4.1 項目1 SCI模塊數(shù)據發(fā)送
10.4.2 項目2 SCI模塊數(shù)據接收
10.5 習題
第11章 串行外設(SPI)接口
11.1 SPI技術概述
11.1.1 SPI總線工作過程
11.1.2 SPI總線時序
11.2 HCS08的SPI模塊
11.2.1 內部結構與功能
11.2.2 SPI模塊引腳與功能
11.2.3 數(shù)據傳輸過程
11.2.4 SPI中斷
11.2.5 模式故障檢測
11.3 SPI模塊寄存器
11.3.1 SPI控制寄存器1(SPIC1)
11.3.2 SPI 控制寄存器2(SPIC2)
11.3.3 SPI 比特率寄存器(SPIBR)
11.3.4 SPI 狀態(tài)寄存器(SPIS)
11.3.5 SPI 數(shù)據寄存器(SPID)
11.4 項目實踐 SPI模塊數(shù)據傳送
11.5 習題
第12章 IIC總線接口
12.1 IIC總線技術概述
12.1.1 IIC總線技術與特點
12.1.2 IIC總線協(xié)議與工作過程
12.2 HCS08的IIC模塊
12.2.1 IIC模塊功能與內部結構
12.2.2 IIC模塊寄存器
12.2.3 IIC模塊的中斷
12.2.4 IIC模塊使用方法
12.3 項目實踐 IIC模塊數(shù)據傳送控制
12.4 習題
附錄
附錄A 飛思卡爾HCS08AC系列芯片引腳分布
附錄B ASCⅡ碼表
附錄C ADC 參數(shù)表
參考文獻