單片機(jī)應(yīng)用程序設(shè)計技術(shù)(第3版)
定 價:38 元
- 作者:周航慈 著
- 出版時間:2011/2/1
- ISBN:9787512402768
- 出 版 社:北京航空航天大學(xué)出版社
- 中圖法分類:TP368.1
- 頁碼:354
- 紙張:膠版紙
- 版次:3
- 開本:16開
《單片機(jī)應(yīng)用程序設(shè)計技術(shù)(第3版)》總結(jié)了作者多年來在80C51系列單片機(jī)應(yīng)用系統(tǒng)軟件設(shè)計中的實踐經(jīng)驗,歸納出一整套應(yīng)用程序設(shè)計的方法和技巧。在內(nèi)容安排上,不僅有實現(xiàn)功能要求的應(yīng)用程序設(shè)計步驟、子程序、監(jiān)控程序及常用功能模塊設(shè)計方法,還以較大篇幅介紹了提高系統(tǒng)可靠性的抗干擾設(shè)計和容錯設(shè)計技術(shù)以及程序測試的正確思想方法。附錄中向讀者提供了完整的系統(tǒng)程序設(shè)計樣本和經(jīng)過多年使用考驗的定點運(yùn)算子程序庫與浮點運(yùn)算子程序庫的程序文本、注釋及使用方法。
《單片機(jī)應(yīng)用程序設(shè)計技術(shù)(第3版)》深入淺出,并配以大量實例,可作為從事單片機(jī)應(yīng)用系統(tǒng)研究的工程技術(shù)人員的軟件設(shè)計指導(dǎo)用書,也可作為高等院校相關(guān)專業(yè)師生的參考用書。
第1章 應(yīng)用程序的設(shè)計步驟
1.1 設(shè)計任務(wù)書的編寫
1.2 硬件電路設(shè)計
1.3 軟件任務(wù)分析
1.4 數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)的規(guī)劃
1.5 資源分配
1.6 編程及調(diào)試
1.7 編程語言與開發(fā)環(huán)境的選擇
第2章 程序流程圖與子程序設(shè)計
2.1 程序流程圖
2.1.1 程序流程圖的畫法
2.1.2 從程序流程圖到程序
2.2 子程序設(shè)計
2.2.1 結(jié)構(gòu)化的程序設(shè)計風(fēng)格
2.2.2 參數(shù)的使用
2.2.3 算法的合理性和可靠性
2.2.4 子程序的透明性設(shè)計
2.2.5 子程序的相容性設(shè)計
2.2.6 子程序的容錯性設(shè)計
第3章 系統(tǒng)監(jiān)控程序設(shè)計
3.1 監(jiān)控程序的任務(wù)
3.2 監(jiān)控程序的結(jié)構(gòu)
3.2.1 作業(yè)順序調(diào)度型
3.2.2 作業(yè)優(yōu)先調(diào)度型
3.2.3 鍵碼分析作業(yè)調(diào)度型
3.3 普通監(jiān)控程序的設(shè)計方法
3.3.1 系統(tǒng)狀態(tài)分析
3.3.2 狀態(tài)轉(zhuǎn)移分析
3.3.3 狀態(tài)順序編碼型監(jiān)控程序的設(shè)計方法
3.3.4 狀態(tài)特征編碼型監(jiān)控程序的設(shè)計方法
3.3.5 監(jiān)控程序的4種設(shè)計風(fēng)格
3.4 菜單驅(qū)動的監(jiān)控程序設(shè)計方法
3.4.1 系統(tǒng)功能分析和菜單結(jié)構(gòu)設(shè)計
3.4.2 畫面設(shè)計
3.4.3 監(jiān)控程序設(shè)計方法
第4章 常用功能模塊的設(shè)計
4.1 軟件時鐘
4.1.1 時鐘系統(tǒng)的建立
4.1.2 時鐘的校對
4.1.3 定時任務(wù)的觸發(fā)與撤除
4.1.4 相對時鐘(鬧鐘)
4.2 鍵盤
4.2.1 軟件去抖動處理
4.2.2 連擊的處理
4.2.3 復(fù)合鍵的處理
4.2.4 鍵盤編碼
4.3 數(shù)碼顯示
4.3.1 顯示模塊在系統(tǒng)軟件中的安排
4.3.2 顯示配置與輸出驅(qū)動
4.3.3 滅零處理
4.3.4 閃爍處理
4.3.5 模擬串行顯示
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 最底層驅(qū)動子程序
4.5.3 常用子程序
4.5.4 畫面顯示
4.6 觸摸屏
4.6.1 觸摸信息的獲取
4.6.2 觸摸位置的計算
4.6.3 按鈕編號查詢方法
4.6.4 觸摸屏校準(zhǔn)
第5章 抗干擾設(shè)計
5.1 干擾的作用機(jī)制及后果
5.2 抗干擾的硬件措施
5.2.1 抗串模干擾的措施
5.2.2 抗共模干擾的措施
5.3 數(shù)字信號輸入/輸出中的軟件抗干擾措施
5.3.1 數(shù)字信號的輸入方法
5.3.2 數(shù)字信號的輸出方法
5.4 數(shù)字濾波
5.4.1 程序判斷濾波
5.4.2 扣值濾波
5.4.3 算術(shù)平均濾波
5.4.4 去極值平均濾波
5.4.5 加權(quán)平均濾波
5.4.6 滑動平均濾波
5.4.7 低通濾波
5.5 CPU抗干擾技術(shù)
5.5.1 人工復(fù)位
5.5.2 掉電保護(hù)
5.5.3 睡眠抗干擾
5.5.4 指令冗余
5.5.5 軟件陷阱
5.5.6 看門狗系統(tǒng)
5.6 系統(tǒng)的恢復(fù)
5.6.1 系統(tǒng)復(fù)位
5.6.2 熱啟動過程
5.6.3 重要信息的恢復(fù)
5.6.4 系統(tǒng)狀態(tài)的重入
第6章 容錯設(shè)計
6.1 硬件故障的自診斷技術(shù)
6.1.1 CPU的診斷
6.1.2 程序存儲器的診斷
6.1.3 RAM的診斷
6.1.4 A/D通道的診斷與校正
6.1.5 D/A通道的診斷
6.1.6 數(shù)字I/O通道的診斷
6.1.7 硬件自診斷模塊
6.2 人機(jī)界面的容錯設(shè)計
6.2.1 輸入提示功能的設(shè)計
6.2.2 數(shù)據(jù)輸入的容錯設(shè)計
6.2.3 命令輸入的容錯設(shè)計
6.2.4 輸入界面的安全性設(shè)計
6.2.5 輸出界面的容錯設(shè)計
6.3 軟件的一般容錯設(shè)計
6.3.1 堆棧溢出的預(yù)防
6.3.2 中斷中的資源沖突及其預(yù)防
6.3.3 狀態(tài)轉(zhuǎn)移的條件審查
6.3.4 重要模塊的安全措施
6.3.5 運(yùn)算軟件的容錯設(shè)計
6.3.6 軟件標(biāo)志的使用
6.3.7 子程序的使用
6.4 互斥型輸出的硬件容錯設(shè)計
第7章 程序測試
7.1 程序測試的心理準(zhǔn)備
7.1.1 程序測試的正確定義
7.1.2 程序測試結(jié)果的正確評價
7.1.3 培養(yǎng)正常的測試心理狀態(tài)
7.2 程序測試方法
7.2.1 程序會審和口頭宣講
7.2.2 白盒測試法
7.2.3 黑盒測試法
7.2.4 自頂向下測試法
7.2.5 自底向上測試法
7.3 程序糾錯
7.3.1 程序跟蹤法
7.3.2 分析推理法
7.3.3 糾錯原則
附錄A 完整的應(yīng)用程序樣本
A.1 狀態(tài)順序編碼,監(jiān)控程序在主程序中(匯編語言)
A.2 狀態(tài)特征編碼,監(jiān)控程序在定時中斷中(匯編語言)
A.3 狀態(tài)順序編碼,監(jiān)控程序在主程序中(C51語言)
A.4 狀態(tài)特征編碼,監(jiān)控程序在定時中斷子程序中(C51語言)
附錄B MCS-51單片機(jī)實用子程序庫
B.1 MCS-51定點運(yùn)算子程序庫及其使用說明
B.2 MCS-51浮點運(yùn)算子程序庫及其使用說明
B.3 MCS-51高精度浮點運(yùn)算子程序庫及其使用說明
參考文獻(xiàn)
⑤機(jī)動布線區(qū)。如果是樣機(jī)研制,在設(shè)計電路板時,開辟一小片機(jī)動布線區(qū)是有好處的。在機(jī)動布線區(qū)中,可以插入若干片集成電路插座,并有金屬化孔,但無布線。當(dāng)樣機(jī)研制中發(fā)現(xiàn)硬件電路有明顯不足,需要增加若干元器件時,即可在機(jī)動布線區(qū)中臨時拉線來完成,從而避免整機(jī)大返工。當(dāng)然,項目研制成功后,正式制板時就不需要機(jī)動布線區(qū)了。
(3)以軟代硬
單片機(jī)和數(shù)字電路本質(zhì)的區(qū)別就是它具有軟件系統(tǒng)。很多硬件電路能做到的,軟件也能做到。因此,在硬件電路設(shè)計時,不要忘記還有軟件作后臺。原則上,只要軟件能做到的,就不用硬件。硬件多了不但增加成本,而且使系統(tǒng)出故障的機(jī)會也增加了。以軟代硬的實質(zhì)是以時間代空間,軟件執(zhí)行過程需要消耗時間,因此,這種代替帶來的不足就是實時性下降。當(dāng)系統(tǒng)對某些事物的反應(yīng)有嚴(yán)格的時間限制時,往往增加硬件電路是唯一的選擇。但對一些實時性要求不是很高的場合,以軟代硬是很合算的。如觸點去抖動的軟件延時方案,就比硬件雙穩(wěn)電路去抖動要合算得多;軟件低通濾波算法就比硬件低通濾波電路優(yōu)越得多。
(4)監(jiān)測電路的設(shè)計
在系統(tǒng)運(yùn)行中有可能出現(xiàn)故障,如何及時采取措施,防止事態(tài)擴(kuò)大并及時向操作者提出報警,就要求系統(tǒng)具有自診斷功能。為此。必須為系統(tǒng)設(shè)計有關(guān)的監(jiān)測電路。這部分電路與系統(tǒng)正常的功能沒有什么關(guān)系,往往容易忽視。在一些重要的自控系統(tǒng)中,系統(tǒng)的自診斷功能是很重要的,詳情參閱第6章有關(guān)內(nèi)容。
(5)工藝設(shè)計
包括機(jī)架機(jī)箱、面板、配線、接插件等,必須考慮到安裝、調(diào)試、維修的方便。另外,硬件抗干擾措施也必須在硬件設(shè)計時一并考慮進(jìn)去,以免日后添加時發(fā)生困難,詳情參閱第5章有關(guān)內(nèi)容。
1.3 軟件任務(wù)分析
軟件任務(wù)分析和硬件電路設(shè)計結(jié)合進(jìn)行,哪些功能由硬件完成,哪些任務(wù)由軟件完成,在硬件電路設(shè)計基本定型后,也就基本上決定下來了。
軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計作一個總體規(guī)劃。從軟件的功能來看可分為兩大類.:一類是執(zhí)行軟件,它能完成各種實質(zhì)性的功能,如測量、計算、顯示、打印、輸出控制、通信等;另一類是監(jiān)控軟件,它是專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織調(diào)度角色的軟件。這兩類軟件的設(shè)計方法各有特色:執(zhí)行軟件的設(shè)計偏重算法效率,與硬件關(guān)系密切,千變?nèi)f化;監(jiān)控軟件著眼全局,主要處理人機(jī)關(guān)系,其特點是邏輯嚴(yán)密,千頭萬緒。
軟件任務(wù)分析時,應(yīng)將各執(zhí)行模塊一一列出,并為每一個執(zhí)行模塊進(jìn)行功能定義和接口定義(應(yīng)輸入、輸出定義)。在為各執(zhí)行模塊進(jìn)行定義時,要將牽涉到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問題一并規(guī)劃好。
各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先根據(jù)系統(tǒng)功能和鍵盤設(shè)置選擇一種最適合的監(jiān)控程序結(jié)構(gòu)。相對來講,執(zhí)行模塊任務(wù)明確單純,比較容易編程。而監(jiān)控程序較易出問題,這如同當(dāng)一名操作工人比較容易,而要當(dāng)好一個廠長就比較困難了。