《聚焦EDA·基於Proteus的51系列單片機設計與仿真》以目前流行的軟、硬體仿真軟體Proteus為核心,從實驗、實踐、實用的角度,通過豐富的實例詳細敘述了該軟體在51單片機課程教學和單片機套用產品開發過程中的套用。全書共9章,主要介紹51單片機系統的設計及相關軟體的使用,在Proteus中原理圖的繪製與仿真及PCB的製作、Proteus在單片機軟體程式設計中的套用,Proteus在單片機硬體系統設計中的套用。書中選擇的實例都具有很強的實用性,通過閱讀這些實例,讀者可以在不花費硬體成本的前提下,學習和開發單片機軟、硬體系統。
基本介紹
- 書名:聚焦EDA•基於Proteus的51系列
- 出版社:電子工業出版社
- 頁數:334頁
- 開本:16
- 品牌:電子工業出版社
- 作者:侯玉寶 陳忠平
- 出版日期:2008年9月1日
- 語種:簡體中文
- ISBN:9787121072260, 7121072262
內容簡介,圖書目錄,序言,
內容簡介
《聚焦EDA·基於Proteus的51系列單片機設計與仿真》適合從事單片機套用研發的技術人員閱讀,也可作為高等院校單片機課程的教學用書。
圖書目錄
第1章 80C51單片機套用系統的設計及相關軟體的使用
1.1 80C51單片機套用系統的設計
1.2 Keil C51的使用
1.2.1 創建項目
1.2.2 調試程式
1.3 仿真器
1.4 編程器
1.5 ISP下載
1.6 串列調試軟體
第2章 Proteus 7.1入門
2.1 Proteus ISIS的操作及電路原理圖設計
2.1.1 Proteus ISIS簡介
2.1.2 Proteus ISIS編輯環境及參數設定
2.1.3 Proteus ISIS原理圖設計
2.1.4 Proteus ISIS元件製作
2.2 Proteus VSM虛擬系統模型
2.2.1 激勵源
2.2.2 Proteus VSM虛擬儀器的使用
2.3 Proteus ARES的PCB設計
2.3.1 Proteus ARES簡介
2.3.2 Proteus ARES參數設定
2.3.3 Proteus ARES中的PCB製作實例
第3章 51系列軟體程式設計與仿真
3.1 清零、置位程式的設計與仿真
3.1.1 片內清零程式的設計
3.1.2 片內清零程式的調試與仿真
3.1.3 片外清零程式的設計
3.1.4 片外清零程式的調試與仿真
3.1.5 置位程式的設計
3.1.6 置位程式的調試與仿真
3.2 拼字程式的設計與仿真
3.2.1 片內拼字程式的設計
3.2.2 片內拼字程式的調試與仿真
3.2.3 片外拼字程式的設計
3.2.4 片外拼字程式的調試與仿真
3.3 拆字程式的設計與仿真
3.3.1 片內拆字程式的設計
3.3.2 片內拆字程式的調試與仿真
3.3.3 片外拆字程式的設計
3.3.4 片外拆字程式的調試與仿真
3.4 數據塊傳送程式的設計與仿真
3.4.1 數據塊傳送程式的設計
3.4.2 數據塊傳送程式的調試與仿真
3.5 數據排序程式的設計與仿真
3.5.1 數據排序程式的設計
3.5.2 數據排序程式的調試與仿真
第4章 51系列通用I/O控制
4.1 P1口的套用(一)
4.1.1 硬體設計
4.1.2 程式設計
4.1.3 調試與仿真
4.2 P1口的套用(二)
4.2.1 硬體設計
4.2.2 程式設計
4.2.3 調試與仿真
4.3 閃爍燈
4.3.1 硬體設計
4.3.2 程式設計
4.3.3 調試與仿真
4.4 流水燈
4.4.1 硬體設計
4.4.2 程式設計
4.4.3 調試與仿真
4.5 花樣燈(一)
4.5.1 硬體設計
4.5.2 程式設計
4.5.3 調試與仿真
4.6 花樣燈(二)
4.6.1 硬體設計
4.6.2 程式設計
4.6.3 調試與仿真
4.7 模擬交通燈
4.7.1 硬體設計
4.7.2 程式設計
4.7.3 調試與仿真
4.8 定時/計數器的套用(一)
4.8.1 硬體設計
4.8.2 程式設計
4.8.3 調試與仿真
4.9 定時/計數器的套用(二)
4.9.1 硬體設計
4.9.2 程式設計
4.9.3 調試與仿真
4.10 中斷系統的套用(一)
4.10.1 硬體設計
4.10.2 程式設計
4.10.3 調試與仿真
4.11 中斷系統的套用(二)
4.11.1 硬體設計
4.11.2 程式設計
4.11.3 調試與仿真
4.12 兩個單片機串列通信
4.12.1 硬體設計
4.12.2 程式設計
4.12.3 調試與仿真
4.13 串列口擴展套用
4.13.1 硬體設計
4.13.2 程式設計
4.13.3 調試與仿真
第5章 音樂的套用
5.1 單片機唱歌
5.1.1 單片機產生音調的基礎知識
5.1.2 音樂軟體的設計
5.1.3 歌曲的設計
5.1.4 調試與仿真
5.2 電子琴
5.2.1 電子琴的基礎知識
5.2.2 電子琴軟體的設計
5.2.3 調試與仿真
第6章 LED數碼管與鍵盤的套用
6.1 LED數碼管的套用
6.1.1 LED數碼管的結構及分類
6.1.2 LED數碼管的顯示方式
6.1.3 串列口驅動1位LED數碼管的設計
6.1.4 共陰極LED和共陽極LED的套用
6.1.5 0~~~~99計數器的設計
6.1.6 59s計時器的設計
6.1.7 電子鐘的設計
6.1.8 MAX7219串列驅動LED數碼管
6.2 鍵盤的套用
6.2.1 鍵盤的工作原理
6.2.2 查詢式鍵盤的設計
6.2.3 矩陣式鍵盤的識別(一)
6.2.4 矩陣式鍵盤的識別(二)
6.2.5 8255A並行I/O連線埠擴充鍵盤
第7章 數/模轉換器和模/數轉換器的套用
7.1 數/模轉換器的套用
7.1.1 TLC5615的基礎知識
7.1.2 方波發生器
7.1.3 鋸齒波發生器
7.2 模/數轉換器的套用
7.2.1 ADC0808的基礎知識
7.2.2 數字電壓表的設計
第8章 顯示器的套用
8.1 LED點陣顯示器的套用
8.1.1 LED點陣顯示器的基礎知識
8.1.2 一個5×7點陣字元顯示
8.1.3 一個8×8點陣字元串顯示
8.1.4 兩個8×8點陣字元串顯示
8.1.5 兩個8×8點陣滾動顯示
8.1.6 一個16×16點陣漢字顯示
8.1.7 兩個16×16點陣漢字顯示
8.1.8 兩個16×16點陣漢字分批顯示
8.2 LCD(液晶顯示器)的套用
8.2.1 LCD的基礎知識
8.2.2 字元式LCD的套用
8.2.3 漢字式LCD的套用
8.2.4 漢字式LCD移位顯示
8.2.5 漢字式LCD滾動顯示
第9章 工業控制
9.1 SPI匯流排DS1302實時時鐘控制
9.1.1 DS1302的基礎知識
9.1.2 DS1302採用1位LED顯示時鐘的設計
9.1.3 DS1302採用MAX7219控制8位LED顯示時鐘的設計
9.2 I2C匯流排24C04開啟次數統計控制
9.2.1 24CXX的基礎知識
9.2.2 24C04開啟次數統計的設計
9.3 RS-485在單片機多機通信中的套用
9.3.1 RS-485接口標準簡述
9.3.2 RS-485在單片機多機通信中的套用設計
9.4 1-Wire Bus DS18B20溫度測量的設計
9.4.1 DS18B20的基礎知識
9.4.2 DS18B20測量溫度的設計
9.5 電動機轉速控制
9.5.1 步進電動機轉速控制
9.5.2 直流電動機轉速控制
9.6 電氣模擬控制
9.6.1 步進電動機的啟動、停止控制
9.6.2 直流電動機的啟動、停止控制
9.6.3 步進電動機的正、反轉控制
9.6.4 直流電動機的正、反轉控制
9.6.5 電動機的多地控制
附錄A 單片機指令速查表
附錄B Proteus的常用快捷鍵
參考文獻
1.1 80C51單片機套用系統的設計
1.2 Keil C51的使用
1.2.1 創建項目
1.2.2 調試程式
1.3 仿真器
1.4 編程器
1.5 ISP下載
1.6 串列調試軟體
第2章 Proteus 7.1入門
2.1 Proteus ISIS的操作及電路原理圖設計
2.1.1 Proteus ISIS簡介
2.1.2 Proteus ISIS編輯環境及參數設定
2.1.3 Proteus ISIS原理圖設計
2.1.4 Proteus ISIS元件製作
2.2 Proteus VSM虛擬系統模型
2.2.1 激勵源
2.2.2 Proteus VSM虛擬儀器的使用
2.3 Proteus ARES的PCB設計
2.3.1 Proteus ARES簡介
2.3.2 Proteus ARES參數設定
2.3.3 Proteus ARES中的PCB製作實例
第3章 51系列軟體程式設計與仿真
3.1 清零、置位程式的設計與仿真
3.1.1 片內清零程式的設計
3.1.2 片內清零程式的調試與仿真
3.1.3 片外清零程式的設計
3.1.4 片外清零程式的調試與仿真
3.1.5 置位程式的設計
3.1.6 置位程式的調試與仿真
3.2 拼字程式的設計與仿真
3.2.1 片內拼字程式的設計
3.2.2 片內拼字程式的調試與仿真
3.2.3 片外拼字程式的設計
3.2.4 片外拼字程式的調試與仿真
3.3 拆字程式的設計與仿真
3.3.1 片內拆字程式的設計
3.3.2 片內拆字程式的調試與仿真
3.3.3 片外拆字程式的設計
3.3.4 片外拆字程式的調試與仿真
3.4 數據塊傳送程式的設計與仿真
3.4.1 數據塊傳送程式的設計
3.4.2 數據塊傳送程式的調試與仿真
3.5 數據排序程式的設計與仿真
3.5.1 數據排序程式的設計
3.5.2 數據排序程式的調試與仿真
第4章 51系列通用I/O控制
4.1 P1口的套用(一)
4.1.1 硬體設計
4.1.2 程式設計
4.1.3 調試與仿真
4.2 P1口的套用(二)
4.2.1 硬體設計
4.2.2 程式設計
4.2.3 調試與仿真
4.3 閃爍燈
4.3.1 硬體設計
4.3.2 程式設計
4.3.3 調試與仿真
4.4 流水燈
4.4.1 硬體設計
4.4.2 程式設計
4.4.3 調試與仿真
4.5 花樣燈(一)
4.5.1 硬體設計
4.5.2 程式設計
4.5.3 調試與仿真
4.6 花樣燈(二)
4.6.1 硬體設計
4.6.2 程式設計
4.6.3 調試與仿真
4.7 模擬交通燈
4.7.1 硬體設計
4.7.2 程式設計
4.7.3 調試與仿真
4.8 定時/計數器的套用(一)
4.8.1 硬體設計
4.8.2 程式設計
4.8.3 調試與仿真
4.9 定時/計數器的套用(二)
4.9.1 硬體設計
4.9.2 程式設計
4.9.3 調試與仿真
4.10 中斷系統的套用(一)
4.10.1 硬體設計
4.10.2 程式設計
4.10.3 調試與仿真
4.11 中斷系統的套用(二)
4.11.1 硬體設計
4.11.2 程式設計
4.11.3 調試與仿真
4.12 兩個單片機串列通信
4.12.1 硬體設計
4.12.2 程式設計
4.12.3 調試與仿真
4.13 串列口擴展套用
4.13.1 硬體設計
4.13.2 程式設計
4.13.3 調試與仿真
第5章 音樂的套用
5.1 單片機唱歌
5.1.1 單片機產生音調的基礎知識
5.1.2 音樂軟體的設計
5.1.3 歌曲的設計
5.1.4 調試與仿真
5.2 電子琴
5.2.1 電子琴的基礎知識
5.2.2 電子琴軟體的設計
5.2.3 調試與仿真
第6章 LED數碼管與鍵盤的套用
6.1 LED數碼管的套用
6.1.1 LED數碼管的結構及分類
6.1.2 LED數碼管的顯示方式
6.1.3 串列口驅動1位LED數碼管的設計
6.1.4 共陰極LED和共陽極LED的套用
6.1.5 0~~~~99計數器的設計
6.1.6 59s計時器的設計
6.1.7 電子鐘的設計
6.1.8 MAX7219串列驅動LED數碼管
6.2 鍵盤的套用
6.2.1 鍵盤的工作原理
6.2.2 查詢式鍵盤的設計
6.2.3 矩陣式鍵盤的識別(一)
6.2.4 矩陣式鍵盤的識別(二)
6.2.5 8255A並行I/O連線埠擴充鍵盤
第7章 數/模轉換器和模/數轉換器的套用
7.1 數/模轉換器的套用
7.1.1 TLC5615的基礎知識
7.1.2 方波發生器
7.1.3 鋸齒波發生器
7.2 模/數轉換器的套用
7.2.1 ADC0808的基礎知識
7.2.2 數字電壓表的設計
第8章 顯示器的套用
8.1 LED點陣顯示器的套用
8.1.1 LED點陣顯示器的基礎知識
8.1.2 一個5×7點陣字元顯示
8.1.3 一個8×8點陣字元串顯示
8.1.4 兩個8×8點陣字元串顯示
8.1.5 兩個8×8點陣滾動顯示
8.1.6 一個16×16點陣漢字顯示
8.1.7 兩個16×16點陣漢字顯示
8.1.8 兩個16×16點陣漢字分批顯示
8.2 LCD(液晶顯示器)的套用
8.2.1 LCD的基礎知識
8.2.2 字元式LCD的套用
8.2.3 漢字式LCD的套用
8.2.4 漢字式LCD移位顯示
8.2.5 漢字式LCD滾動顯示
第9章 工業控制
9.1 SPI匯流排DS1302實時時鐘控制
9.1.1 DS1302的基礎知識
9.1.2 DS1302採用1位LED顯示時鐘的設計
9.1.3 DS1302採用MAX7219控制8位LED顯示時鐘的設計
9.2 I2C匯流排24C04開啟次數統計控制
9.2.1 24CXX的基礎知識
9.2.2 24C04開啟次數統計的設計
9.3 RS-485在單片機多機通信中的套用
9.3.1 RS-485接口標準簡述
9.3.2 RS-485在單片機多機通信中的套用設計
9.4 1-Wire Bus DS18B20溫度測量的設計
9.4.1 DS18B20的基礎知識
9.4.2 DS18B20測量溫度的設計
9.5 電動機轉速控制
9.5.1 步進電動機轉速控制
9.5.2 直流電動機轉速控制
9.6 電氣模擬控制
9.6.1 步進電動機的啟動、停止控制
9.6.2 直流電動機的啟動、停止控制
9.6.3 步進電動機的正、反轉控制
9.6.4 直流電動機的正、反轉控制
9.6.5 電動機的多地控制
附錄A 單片機指令速查表
附錄B Proteus的常用快捷鍵
參考文獻
序言
與單片機打交道已有多年,記得剛接觸單片機的時候覺得它很神奇,只需通過修改相關代碼就能進行相應控制。但是,在初學的時候感覺很難,也曾有過放棄學習它的念頭,這主要是苦於條件較差,沒有資金配備專門的開發工具,好不容易學習了一些理論知識,也只能在紙上編寫程式(當時計算機還沒現在這樣普及),不能與被控制對象很好地聯繫起來。
隨著時間的推移,單片機的套用與普及是我們始料未及的。現在,許多單片機初學者都是先學習單片機相關基礎知識,然後使用計算機在一些編譯軟體上編寫程式,通過分析暫存器的內容以檢驗程式設計是否符合要求,或者自己焊接硬體電路將源程式代碼下載到單片機中,觀察運行效果。這種學習方法很好,但是如果所設計系統較複雜,難以分析相關暫存器內容,或者由於硬體成本過高,難以製作硬體電路時,這種學習方法就有所欠缺,尤其是對於在校學生而言。
一次偶然的機會接觸了Proteus,使用之後,感覺很好,它對於單片機學習或者系統開發都能提供有力幫助。Proteus是多功能的EDA軟體,真正實現了虛擬物理原型功能,在目標板還沒投產前,就可以對所設計的硬體系統的功能、合理性和性能指標進行充分調整,並可以在沒有硬體電路的情況下,進行相應的程式設計與調試,可由仿真原理圖直接導出繪製成印製電路板(PCB)。虛擬物理原型,對於單片機初學者來講可節約學習成本,提高學習積極性;對於單片機系統開發人員來講,可縮短開發時間,提高設計效率,降低開發成本。
為使初學者能迅速入門,提高對單片機的興趣與愛好,並能在短期內掌握單片機的套用開發要領,特編寫此書。在編寫過程中,編者注重題材的取捨,使本書具有以下四個特點。
1.由淺入深,循序漸進
本書在內容編排上採用由淺入深、由易到難的原則,從最初的51單片機開發環境、Proteus軟體的使用,到單片機內部單元的實現,再到單片機外圍擴展,直至單片機的工業控制套用。這樣的編排可讓讀者根據自己的情況選擇閱讀起點。
2.軟硬結合,虛擬仿真
沿用傳統單片機學習與開發經驗,通過相關編譯軟體(如Keil)編寫程式並生成.HEX檔案,然後在Proteus中畫好硬體電路圖(這一過程相當於硬體電路的焊接),調用HEX檔案進行虛擬仿真(這一過程相當於硬體調試)。這樣,可節約學習成本,提高讀者的學習積極性。
3.C語言與彙編語言並存
為增加單片機套用系統程式的可讀性和可移植性,單片機編程也從傳統的彙編語言編程轉向C語言編程。為適應這一形勢的需要,本書第3章和第5章的例子全部採用彙編語言編程,第4章和第6章採用彙編語言和C語言兩種方式編寫程式,第7章至第9章主要採用C語言編寫程式。
4.淡化原理,注重實用
基本原理、基本實例一直是學習和掌握單片機套用技術的基本要求,本書側重於實際套用,因此很少講解相關理論知識,這樣避免了知識重複性。為緊隨技術的發展,在編寫過程中還注重知識的新穎、實用性,因此本書中講解了SPI匯流排、I2C匯流排、1-Wire匯流排及RS-485匯流排晶片的使用方法,使讀者學習的知識能夠緊隨時代的發展。
由於Proteus軟體的操作方式與一般的套用軟體不同,選單欄與工具條也不完全對應,因此本書只列出了與選單欄相對應的一些工具條,對於與選單欄不對應的工具條,請讀者參考相關資料。為了便於讀者學習和使用實際的Proteus軟體,本書對電路圖中不符合國家標準的圖形及符號等未做改動(例如,在Proteus軟體中,電容單位?F使用uF進行標記)。
參加本書編寫的有侯玉寶、陳忠平、李成群、高見芳、龔亮、龍曉慶等。全書由周少華教授主審,在編寫過程中還得到了李銳敏、陳建忠等眾位高工、老師的大力支持及幫助,在此向他們表示衷心的感謝。由於編者知識水平和經驗的局限性,書中難免存在缺點和錯誤,敬請廣大讀者給予批評指正。
隨著時間的推移,單片機的套用與普及是我們始料未及的。現在,許多單片機初學者都是先學習單片機相關基礎知識,然後使用計算機在一些編譯軟體上編寫程式,通過分析暫存器的內容以檢驗程式設計是否符合要求,或者自己焊接硬體電路將源程式代碼下載到單片機中,觀察運行效果。這種學習方法很好,但是如果所設計系統較複雜,難以分析相關暫存器內容,或者由於硬體成本過高,難以製作硬體電路時,這種學習方法就有所欠缺,尤其是對於在校學生而言。
一次偶然的機會接觸了Proteus,使用之後,感覺很好,它對於單片機學習或者系統開發都能提供有力幫助。Proteus是多功能的EDA軟體,真正實現了虛擬物理原型功能,在目標板還沒投產前,就可以對所設計的硬體系統的功能、合理性和性能指標進行充分調整,並可以在沒有硬體電路的情況下,進行相應的程式設計與調試,可由仿真原理圖直接導出繪製成印製電路板(PCB)。虛擬物理原型,對於單片機初學者來講可節約學習成本,提高學習積極性;對於單片機系統開發人員來講,可縮短開發時間,提高設計效率,降低開發成本。
為使初學者能迅速入門,提高對單片機的興趣與愛好,並能在短期內掌握單片機的套用開發要領,特編寫此書。在編寫過程中,編者注重題材的取捨,使本書具有以下四個特點。
1.由淺入深,循序漸進
本書在內容編排上採用由淺入深、由易到難的原則,從最初的51單片機開發環境、Proteus軟體的使用,到單片機內部單元的實現,再到單片機外圍擴展,直至單片機的工業控制套用。這樣的編排可讓讀者根據自己的情況選擇閱讀起點。
2.軟硬結合,虛擬仿真
沿用傳統單片機學習與開發經驗,通過相關編譯軟體(如Keil)編寫程式並生成.HEX檔案,然後在Proteus中畫好硬體電路圖(這一過程相當於硬體電路的焊接),調用HEX檔案進行虛擬仿真(這一過程相當於硬體調試)。這樣,可節約學習成本,提高讀者的學習積極性。
3.C語言與彙編語言並存
為增加單片機套用系統程式的可讀性和可移植性,單片機編程也從傳統的彙編語言編程轉向C語言編程。為適應這一形勢的需要,本書第3章和第5章的例子全部採用彙編語言編程,第4章和第6章採用彙編語言和C語言兩種方式編寫程式,第7章至第9章主要採用C語言編寫程式。
4.淡化原理,注重實用
基本原理、基本實例一直是學習和掌握單片機套用技術的基本要求,本書側重於實際套用,因此很少講解相關理論知識,這樣避免了知識重複性。為緊隨技術的發展,在編寫過程中還注重知識的新穎、實用性,因此本書中講解了SPI匯流排、I2C匯流排、1-Wire匯流排及RS-485匯流排晶片的使用方法,使讀者學習的知識能夠緊隨時代的發展。
由於Proteus軟體的操作方式與一般的套用軟體不同,選單欄與工具條也不完全對應,因此本書只列出了與選單欄相對應的一些工具條,對於與選單欄不對應的工具條,請讀者參考相關資料。為了便於讀者學習和使用實際的Proteus軟體,本書對電路圖中不符合國家標準的圖形及符號等未做改動(例如,在Proteus軟體中,電容單位?F使用uF進行標記)。
參加本書編寫的有侯玉寶、陳忠平、李成群、高見芳、龔亮、龍曉慶等。全書由周少華教授主審,在編寫過程中還得到了李銳敏、陳建忠等眾位高工、老師的大力支持及幫助,在此向他們表示衷心的感謝。由於編者知識水平和經驗的局限性,書中難免存在缺點和錯誤,敬請廣大讀者給予批評指正。