●第1章 深入理解嵌入式C
1.1 概述
1.1.1 特性
1.1.2 引腳排列與描述
1.1.3 特殊功能寄存器
1.2 單片機最小繫統與開發工具
1.2.1 Tiny51核心模塊
1.2.2 復位電路
1.2.3 晶體振蕩電路
1.2.4 單片機在線仿真與編程
1.3 SDCC擴展
1.3.1 SDCC簡介
1.3.2 應用示例
1.3.3 關鍵字與數據類型
1.4 存儲器類語言
1.4.1 存儲類型
1.4.2 存儲模式
1.4.3 特殊功能寄存器數據類型
1.4.4 位數據類型
1.4.5 存儲器絕對尋址
1.4.6 指針
1.5 函數
1.5.1 函數參數和局部變量
1.5.2 覆蓋
1.5.3 使用專用寄存器組
1.6 深入理解嵌入式C
1.6.1 概述
1.6.2 方法
1.6.3 函數調用與參數傳遞
1.6.4 函數返回
1.6.5 局部變量存儲
1.7 經典範例程序設計
1.7.1 LED流水燈範例
1.7.2 蜂鳴器驅動範例
1.7.3 數碼管動態掃描顯示驅動範例
1.7.4 鍵盤動態掃描驅動範例
第2章 特殊功能部件與外設
2.1 中斷繫統
2.1.1 中斷概念
2.1.2 80C51的中斷結構
2.1.3 相關寄存器
2.1.4 中斷向量
2.1.5 中斷操作
2.1.6 使能和禁止中斷
2.2 定時/計數器
2.2.1 相關寄存器
2.2.2 定時/計數器模式
2.2.3 定時器查詢延時
2.2.4 定時器中斷延時
2.2.5 無源蜂鳴器驅動程序
2.2.6 數碼管動態掃描演示程序
2.2.7 測量負脈衝
2.3 看門狗
2.3.1 看門狗的作用
2.3.2 看門狗的工作原理
2.3.3 看門狗定時器的結構
2.3.4 寄存器描述
2.3.5 看門狗周期值設置
2.3.6 應用示例
2.4 I2C總線及其驅動程序
2.4.1 I2C簡介
2.4.2 決策
2.4.3 軟件接口
2.4.4 基本時序代碼
2.4.5 外部接口代碼
2.4.6 E2PROM讀/寫範例
2.4.7 CAT1024驅動程序
2.4.8 溫度的測量
2.5 串行口及其驅動程序
2.5.1 硬件基礎
2.5.2 決策
2.5.3 軟件接口
2.5.4 初始化
2.5.5 發送數據
2.5.6 接收數據
2.5.7 測試用例
第3章 數據結構與計算方法初步
3.1 簡單閾值控制算法
3.1.1 算法原理
3.1.2 應用實例
3.2 循環隊列
3.2.1 隊列的邏輯結構和基本運算
3.2.2 隊列的存儲結構
3.2.3 循環隊列的運算
3.3 常用檢錯算法
3.3.1 奇偶校驗
3.3.2 和校驗
3.3.3 循環冗餘校驗
3.4 應用實例
3.4.1 Hex文件
3.4.2 通信編程
第4章 保險箱密碼鎖控制器(方案一)
4.1 概述
4.1.1 保險箱
4.1.2 鎖芯機械結構
4.1.3 密碼鎖控制器
4.1.4 密碼鎖工作原理
4.2 準備工作
4.2.1 概述
4.2.2 使用說明
4.2.3 硬件概要設計
4.2.4 軟件概要設計
4.3 硬件驅動設計
4.3.1 延時驅動
4.3.2 鎖驅動
4.3.3 可復用的硬件驅動
4.4 虛擬驅動設計
4.4.1 虛擬鎖驅動
4.4.2 虛擬鍵盤驅動
4.4.3 虛擬蜂鳴器驅動
4.4.4 虛擬顯示器驅動
4.4.5 虛擬存儲器驅動
4.5 主程序設計
4.5.1 準備工作
4.5.2 編寫代碼
4.6 直流電機及其功率接口
4.6.1 概述
4.6.2 直流電機的工作原理
4.6.3 直流電機的單向驅動
4.6.4 直流電機的雙向驅動
第5章 TinyOS51嵌入式操作繫統微小內核
5.1 基礎知識
5.1.1 概述
5.1.2 頭文件
5.1.3 變量命名規則
5.1.4 範例分析
5.1.5 setjmp與longjmp的實現
5.2 最簡單的多任務模型
5.2.1 雙任務切換模型
5.2.2 待解決的問題
5.2.3 setTaskJmp()的實現
5.2.4 任務切換模型範例分析
5.3 協作式多任務操作繫統
5.3.1 整體規劃
5.3.2 任務控制塊
5.3.3 內部變量初始化
5.3.4 創建任務
5.3.5 啟動多任務環境
5.3.6 任務切換
5.3.7 刪除任務
5.3.8 小結
5.4 時間片輪詢多任務操作繫統
5.4.1 概述
5.4.2 整體規劃
5.4.3 任務控制塊
5.4.4 內部變量初始化
5.4.5 創建任務
5.4.6 啟動多任務環境
5.4.7 任務調度
5.4.8 時鐘節拍中斷
5.4.9 longjmpInIsr()
5.4.10 任務延時
5.4.11 刪除任務
5.5 信號量
5.5.1 概述
5.5.2 整體規劃
5.5.3 任務控制塊
5.5.4 內部變量初始化
5.5.5 信號量定義
5.5.6 創建信號量
5.5.7 獲得信號量
5.5.8 發送信號量
5.5.9 刪除任務
5.6 消息郵箱
5.6.1 概述
5.6.2 整體規劃
5.6.3 任務標志與消息郵箱
5.6.4 創建消息郵箱
5.6.5 獲得消息
5.6.6 發送消息
第6章 程序設計基礎
6.1 任務設計
6.1.1 任務的分類
6.1.2 任務的劃分
6.2 繫統函數使用概述
6.2.1 繫統函數總覽
6.2.2 中斷服務程序調用函數的
6.2.3 繫統函數的分類
6.3 繫統函數的使用場合
6.3.1 時間管理
6.3.2 資源同步
6.3.3 行為同步
6.4 時間管理
6.5 臨界區
6.6 信號量
6.6.1 簡介
6.6.2 信號量的工作方式
6.6.3 任務同步中斷服務程序
6.6.4 任務間同步
6.6.5 資源同步
6.7 消息郵箱
6.7.1 簡介
6.7.2 消息郵箱的工作方式
6.7.3 中斷服務程序與任務通信
6.7.4 任務間數據通信
第7章 保險箱密碼鎖控制器(方案二)
7.1 軟件開發流程
7.2 決策
7.2.1 概述
7.2.2 總體目標
7.2.3 使用說明
7.2.4 條件
7.2.5 具體開發目標
7.2.6 其他決策內容
7.3 模塊劃分
7.3.1 概述
7.3.2 硬件層
7.3.3 設備驅動層
7.3.4 虛擬設備層
7.3.5 應用層
7.4 接口定義
7.4.1 密碼的輸出、存儲與顯示
7.4.2 應用層接口
7.4.3 虛擬設備層接口
7.4.4 設備驅動層接口
7.5 編寫代碼
7.5.1 概述
7.5.2 可復用的驅動
7.5.3 I2C驅動
7.5.4 CAT1024驅動
7.5.5 虛擬鍵盤驅動
7.5.6 虛擬蜂鳴器驅動
7.5.7 人機交互程序
7.5.8 主程序
7.6 測試、驗收與小結
參考文獻
這本《項目驅動――單片機應用設計基礎》由周立功主編陳明計等編著,全書以80C51單片機為主,通過項目驅動的方法融合相關知識點。內容主要分兩部分:第一部分為第1~4章,以SDCC51編程語言為基礎,深入淺出地介紹如何使用嵌入式C編程來控制單片機各種外設部件,並給出常用C編程算法。第二部分為第5~7章,重點介紹TinyOS51嵌入式多任務操作繫統的基本原理,及其在80C51單片機中的實現,並針對同一工程項目給出使用前後臺程序和嵌入式多任務操作繫統兩種不同的編程方法。通過這兩種方法的比較,可使讀者了解嵌入式多任務操作繫統在項目編程中的優勢。 本書注重在教學中強化學生的動手訓練,強調理論與實踐相結合。讀者通過本書的學習,可熟練掌握嵌入式C的編程方法,並初步掌握嵌入式多任務操作繫統的編程知識。 《項目驅動――單片機應用設計基礎》可作為大學本科、高職高專電子信息、自動化、機電一體化、計算機等專業的教材等