《單片機應用技術 匯編+C51項目教程》共設計了10個項目,分別是:單片機控制的LED流水燈、單片機控制的數碼管電子時鐘、可調控的走馬燈、單片機控制的點陣顯示屏、用LCD1602與DS18B20設計的數字溫度計、用24C02與LED數碼管設計電子密碼鎖、單片機控制的波形發生器、單片機交通燈遠程控制系統、SF6氣體密度實時監測系統設計。《單片機應用技術 匯編+C51項目教程》以項目為載體,涵蓋了單片機系統中典型的知識點:存儲器結構、中斷與定時、LED數碼管顯示器與點陣顯示器、鍵盤、LCD1602字符液晶和LCD12864圖形液晶、1-wire總線、SPI總線、I2C總線、串行通信、A-D轉換及D-A轉換、DS18B20和1302用法、單片機系統開發環境。內容的編排上遵循工作過程導向的思路,項目主導,任務分解。在程序方面既有匯編語言,又有C51編程。每個項目都用到了Wave6000或KeilC51開發軟件和Proteus仿真軟件。可以真正實現在課堂上做實驗,實現“學中做、做中學”這樣高效的學習方式。《單片機應用技術 匯編+C51項目教程》可作為高職高專院校自動控制類、機電類、供用電類、電子信息類、鐵道機車車輛類等相關專業的單片機課程教材或教學參考書,也可作為工程技術人員的參考用書。
《單片機應用技術——匯編+C51項目教程》以10個精選的項目為依托,串接了單片機各知識點。這10個項目分別涵蓋了存儲器結構、中斷與定時、LED數碼管顯示器與點陣顯示器、鍵盤、LCD1602字符液晶和LCD12864圖形液晶、1wire總線、SPI總線、I2C總線、串行通信、AD轉換及DA轉換、DS18B20和DS1302的用法、單片機系統開發環境等關鍵知識點。
本書加大了軟硬件仿真的分量和作用。單片機的這些知識點,如果采用傳統的教學和學習方法,學起來會感覺非常枯燥單調,效果也是事倍功半。如果想動手做實驗驗證,往往需要配備相應的單片機實驗箱等配套設備,不是很方便。
本書采用英國Labcenter公司的Proteus仿真軟件作平臺,配合KEIL μVision集成開發環境,使單片機學習的方式、內容和效果有了顯著的變化。本書的所有項目均采用Proteus進行逼真的模型仿真,使用Proteus軟件中的ISIS畫出單片機的硬件系統原理圖;使用KEIL軟件編寫C語言或匯編語言程序并編譯輸出HEX文件,讓原理圖中的單片機和HEX文件關聯,可以在ISIS中進行聯合仿真調試,控制單片機應用系統工作。這樣可以清晰直觀地觀察到程序運行后的現象、單片機的引腳輸出狀態及各種虛擬儀器、實物模型的工作狀態,從感性上加深了對單片機應用系統的理解。而所有這些效果,完全可以在課堂上實現。
本書的特點如下:
(1)任務驅動,每個項目確定了一個明確的題目,然后以此為主線,將與本項目相關的知識點都一個一個串接起來,使學生始終帶著問題來學習。
(2)本書的絕大部分項目和例題,都分別給出了匯編程序和C51程序。提供匯編程序主要是想讓大家透徹理解單片機的結構和CPU對程序的執行過程,以及滿足讀者參加某些考試的需要。重點講述C51當然是因為C語言功能強大、解決復雜問題更高效、C語言程序容易閱讀和理解,也是為了最大限度地貼近職業崗位的需要,讓學生盡可能不走彎路,學以致用。
(3)10個項目以及每個帶硬件的例題都給出了Proteus電路、匯編或C51源程序,并且都已經調試通過,源代碼可直接在學習過程中使用、驗證。在用本書進行學習時,每個項目一開始就可以先讓大家在Proteus中體驗到項目的運行結果,做到心中有數,帶著任務去求知。
(4)內容上適度體現先進性。本書所采用的Proteus 78、KEIL μVision4這些工具軟件都是比較新的版本。本書內容涉及傳統接口器件和總線,也涉及比較流行的串行接口器件和串行總線。
鄭州鐵路職業技術學院的姚存治任本書主編,負責全書的統稿,并編寫了項目2的任務21~25和思考與練習;黃峰亮任副主編,編寫了項目10;郭麗娜編寫了項目7、項目2的任務27和附錄B;芮紅編寫了項目1的任務11~13、任務15~16和思考與練習;王大文編寫了項目5、項目1的任務14和項目2的任務26;侯應旗編寫了項目3、4、9和附錄A;孫逸潔編寫了項目6和項目8。鄭州大學信息工程學院錢曉捷教授擔任本書主審,對本書的編寫提出了許多寶貴意見。在本書編寫過程中,鄭州迪邦科技有限公司給予了大力支持,為我們提供了寶貴的技術資料。
同時,對參考文獻中所列出的作者表示衷心的感謝。由于編者水平有限,加之時間倉促,書中難免有錯漏或不妥之處,懇請廣大讀者批評指正。
編者
前言
項目1 單片機控制的LED流水燈的設計和制作
任務1.1 初識單片機
1.1.1 什么是單片機
1.1.2 單片機的應用形式
1.1.3 單片機的發展歷程
1.1.4 單片機的主要產品種類
1.1.5 單片機的應用領域
任務1.2 了解單片機中的數制與碼制
1.2.1 數制
1.2.2 各種數制間的轉換
1.2.3 計算機中數的表示
1.2.4 常用二進制編碼
任務1.3 學習MCS 51單片機的內部配置和引腳功能
1.3.1 MCS 51單片機的內部結構及工作原理
1.3.2 MCS 51單片機的引腳功能
1.3.3 MCS 51單片機的存儲器結構
1.3.4 單片機最小系統的概念
任務1.4 了解單片機的開發環境
1.4.1 WAVE6000軟件使用簡介
1.4.2 KEIL μVision4軟件使用簡介
1.4.3 Proteus 7.8 軟件簡介
任務1.5 學習單片機C51編程
1.5.1 C51的數據結構
1.5.2 C51的運算符
1.5.3 一個完整的C51程序結構
1.5.4 C51的應用舉例
任務1.6 8位LED流水燈的控制設計與仿真
1.6.1 硬件介紹
1.6.2 程序的編制
1.6.3 綜合仿真調試
思考與練習
項目2 單片機控制的數碼管電子
時鐘的設計與制作
任務2.1 學習單片機匯編語言
2.1.1 匯編語言的特點
2.1.2 匯編語言的語句和指令
2.1.3 MCS 51單片機指令簡介及指令中符號的含義
2.1.4 尋址方式
任務2.2 學習MCS 51單片機指令系統
2.2.1 數據傳送類指令
2.2.2 算術運算指令
2.2.3 邏輯運算與移位類指令
2.2.4 控制轉移類指令
2.2.5 位操作指令
任務2.3 學習匯編語言程序設計
2.3.1 軟件編程的步驟和方法
2.3.2 匯編語言源程序的匯編
2.3.3 匯編語言編程實例
任務2.4 學習MCS 51單片機中斷系統
2.4.1 中斷的基本概念
2.4.2 引入中斷技術的優點
2.4.3 中斷系統應有的功能
2.4.4 中斷請求標志
2.4.5 中斷允許控制
2.4.6 中斷優先級的設定
2.4.7 中斷處理過程分析
2.4.8 中斷技術應用
任務2.5 學習MCS 51單片機定時器/計數器
2.5.1 定時器/計數器的結構和工作原理
2.5.2 定時器/計數器的四種工作方式分析
2.5.3 定時器/計數器的應用
任務2.6 認識LED數碼管顯示器
2.6.1 LED數碼管顯示器的內部結構和顯示原理
2.6.2 LED顯示方式
2.6.3 MCS 51和八段數碼管顯示器的接口設計
任務2.7 8位數字時鐘的設計與仿真
2.7.1 硬件電路設計
2.7.2 程序設計
2.7.3 綜合調試
思考與練習
項目3 可調控的走馬燈的設計與制作
任務3.1 學習鍵盤接口技術
3.1.1 獨立式鍵盤應用
3.1.2 按鍵的消抖處理
3.1.3 行列式鍵盤應用
任務3.2 可以調控的走馬燈的設計與仿真
3.2.1 硬件電路設計
3.2.2 程序編制
3.2.3 綜合仿真調試
思考與練習
項目4 單片機控制的點陣顯示屏的設計與制作
任務4.1 LED點陣顯示器介紹
4.1.1 LED點陣顯示器的結構和原理
4.1.2 MCS 51單片機和LED點陣顯示器的接口設計
任務4.2 單片機控制的點陣顯示屏的設計與仿真
4.2.1 硬件電路設計
4.2.2 程序編制
4.2.3 綜合仿真調試
思考與練習
項目5 用LCD1602與DS18B20設計數字溫度計
任務5.1 學習LCD1602的原理與接口
5.1.1 LCD1602的內部結構
5.1.2 LCD1602的控制命令
5.1.3 MCS 51與LCD1602的接口技術
任務5.2 1 wire總線技術與DS18B20的應用
5.2.1 1 wire總線技術簡介
5.2.2 DS18B20簡介
任務5.3 數字溫度計設計與仿真
5.3.1 硬件電路設計
5.3.2 程序編制
5.3.3 綜合仿真調試
思考與練習
項目6 用24C02與LED數碼管設計電子密碼鎖
任務6.1 學習I2C總線擴展
6.1.1 I2C總線基礎知識
6.1.2 串行EEPROM 24C02擴展
任務6.2 電子密碼鎖設計與仿真
6.2.1 硬件電路設計
6.2.2 程序編制
6.2.3 綜合仿真調試
思考與練習
項目7 單片機控制的波形發生器的
設計與制作
任務7.1 了解A D轉換器原理及指標
7.1.1 A D轉換器的原理
7.1.2 A D轉換器的性能指標
7.1.3 典型的D A轉換器芯片DAC
任務7.2 學習單片機與A D轉換器的接口應用
7.2.1 單片機與并行8位DAC的接口應用
7.2.2 單片機與并行12位DAC的接口方法
7.2.3 單片機與串行DAC接口
任務7.3 了解A D轉換器原理及指標
7.3.1 逐次逼近式A D轉換器的原理分析
7.3.2 A D轉換器的性能指標
7.3.3 典型的A D轉換器芯片ADC
任務7.4 學習單片機與A D轉換器的接口應用
7.4.1 單片機與并行8位A D轉換器的接口應用
7.4.2 單片機與串行8位A D轉換器的接口應用
任務7.5 波形發生器的設計與仿真
7.5.1 硬件電路設計
7.5.2 典型波形分析
7.5.3 程序設計
7.5.4 綜合仿真調試
思考與練習
項目8 單片機交通燈遠程控制系統的
設計與制作
任務8.1 認識串行通信接口
8.1.1 串行通信基礎知識
8.1.2 AT89S51單片機串行口
8.1.3 串行通信的電平轉換
8.1.4 串行口應用
任務8.2 單片機交通燈遠程控制系統的設計與仿真
8.2.1 硬件電路設計
8.2.2 虛擬串口驅動軟件及串口調試軟件的使用
8.2.3 程序設計
8.2.4 綜合仿真調試
思考與練習
項目9 基于單片機的直流電動機正反轉控制系統的設計與仿真
任務9.1 認識步進電動機
9.1.1 步進電動機簡介
9.1.2 步進電動機工作原理
任務9.2 直流電動機正反轉控制設計與仿真
9.2.1 硬件電路設計
9.2.2 程序設計
9.2.3 綜合仿真調試
思考與練習
項目10 SF6氣體密度實時監測系統的設計與仿真
任務10.1 學習LCD12864的原理與接口技術
10.1.1 LCD12864硬件接口與內部寄存器
10.1.2 LCD12864控制器軟件接口
10.1.3 LCD12864應用實例
任務10.2 學習DS1302的原理與接口
10.2.1 DS1302硬件原理
10.2.2 DS1302軟件接口
任務10.3 了解SF6密度繼電器工作原理
10.3.1 SF6密度繼電器簡介
10.3.2 SF6氣體密度繼電器工作原理
任務10.4 單片機系統的抗干擾設計
10.4.1 干擾的作用機制
10.4.2 抗干擾的硬件措施
10.4.3 抗干擾的軟件措施
任務10.5 SF6氣體密度實時監測系統設計
10.5.1 系統硬件設計
10.5.2 系統軟件設計
10.5.3 系統調試運行
思考與練習
附錄
附錄A 單片機及常用接口芯片引腳圖
附錄B MCS 51系列單片機匯編指令表
參考文獻