單片機已經滲透到我們生產、生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。因此,無論是信息技術專業,還是自動化控制技術專業,單片機技術課程在專業培養中都尤為重要。單片機技術實踐性極強,理論與實踐結合緊密。這些年,我們根據課程的特點,采用了項目式教學,并在校內外各種競賽中初見成效。
本書有如下特點:1)項目式教學。以典型的項目為載體,將知識點分解到具體任務中,通過完成任務,學習任務相關知識與技能。部分有興趣的同學還可以通過提高任務,鞏固所學知識。
2)雙語言編寫。根據不同專業的編程需要,除了擴展項目外,本書其他項目均同時采用了匯編語言、C語言編寫程序。
3)硬件與仿真結合。對于最小系統可完成的項目,均采用了以硬件為對象的程序編寫,同時進行仿真驗證,對于少數硬件與仿真的差別也做了簡單介紹。
本書由廣西機電職業技術學院曹華、林勇堅任主編,譚艷梅和秦培林任副主編,參加編寫的還有方羽、蔣朝寧和馬子龍。具體分工為:曹華、林勇堅對本書的編寫思路與大綱進行總體策劃,指導全書的編寫,對全書統稿,并完成了項目1、項目3、項目6和附錄D的編寫;譚艷梅協助完成統稿工作,并編寫項目5、附錄A和附錄B;秦培林協助完成統稿工作,并編寫項目7;方羽編寫項目4;蔣朝寧編寫項目2;馬子龍編寫擴展項目和附錄C。對向本書編寫提供幫助的人士表示感謝。
因編者水平有限,書中難免存在錯誤,懇請讀者提出寶貴意見。
編者
前言
項目1 數制初步 1
任務1 數制及其轉換 1
1. 1. 1 幾種常用數制 1
1. 1. 2 不同數制之間的相互轉換 3
任務2 機器數與真值 5
1. 2. 1 計算機的帶符號數 5
1. 2. 2 計算機的溢出 6
1. 2. 3 編碼 9
項目小結 10
練習一 10
項目2 單片機系統設計 12
任務1 單片機開發板電路設計 12
2. 1. 1 單片機初步介紹 12
2. 1. 2 單片機引腳排列 17
2. 1. 3 存儲器與特殊功能寄存器 23
2. 1. 4 單片機的并行口 28
2. 1. 5 單片機最小應用系統 37
2. 1. 6 單片機應用系統電路 42
2. 1. 7 從傳統8051 單片機過渡到
STC12C5A60S2 系列單片機 44
任務2 單片機開發板仿真電路設計 44
2. 2. 1 軟件的安裝 45
2. 2. 2 原理圖的繪制 46
項目小結 49
練習二 49
項目3 燈光控制設計 53
任務1 編譯軟件使用 53
3. 1. 1 軟件安裝 53
3. 1. 2 軟件的使用 54
任務2 跑馬燈設計 59
3. 2. 1 關于P1 口 59
3. 2. 2 延時子程序的編寫 59
3. 2. 3 任務實施步驟 59
任務3 交通燈設計 64
3. 3. 1 中斷概念 64
3. 3. 2 中斷系統 64
3. 3. 3 任務實施步驟 70
項目小結 75
練習三 76
項目4 報警系統設計 79
任務1 蜂鳴器控制(軟件延時) 79
4. 1. 1 蜂鳴器工作原理 79
4. 1. 2 單片機對蜂鳴器的控制 80
4. 1. 3 任務實施步驟 80
任務2 蜂鳴器控制(定時器控制) 82
4. 2. 1 結構與功能 82
4. 2. 2 定時器/計數器的控制寄存器 83
4. 2. 3 定時器/計數器的工作方式 86
4. 2. 4 定時器/ 計數器的初始化編程
步驟 88
4. 2. 5 定時器/計數器的計數初值 89
4. 2. 6 任務實施步驟 89
任務3 音樂播放控制 94
4. 3. 1 音調 95
4. 3. 2 節拍 96
4. 3. 3 任務實施步驟 97
項目小結 101
練習四 102
項目5 醫院呼叫系統設計 104
任務1 數碼管顯示 104
5. 1. 1 數碼管的基本工作原理 105
5. 1. 2 任務實施步驟 106
任務2 簡易按鍵控制 112
5. 2. 1 鍵盤及接口 112
5. 2. 2 任務實施步驟 116
任務3 串行通信 119
5. 3. 1 串行通信的概念 119
5. 3. 2 串行通信技術 120
5. 3. 3 串行通信的接口電路 121
5. 3. 4 單片機串行口的結構與控制
寄存器 122
5. 3. 5 任務實施步驟 130
任務4 醫院病人呼叫系統 133
項目小結 136
練習五 136
項目6 電子儀器設計 138
任務1 數字電壓表設計(AT89S51
芯片) 138
6. 1. 1 ADC0809 的主要特性 139
6. 1. 2 ADC0809 的內部結構和外部
引腳 139
6. 1. 3 任務實施步驟 140
任務2 數字電壓表設計(STC 芯片) 146
6. 2. 1 STC12C5A60S2 單片機的內部
ADC 結構 146
6. 2. 2 ADC 相關寄存器 146
6. 2. 3 任務實施步驟 149
任務3 信號發生器設計 152
6. 3. 1 單片機產生波形的原理 153
6. 3. 2 DAC0832 的內部結構與引腳
功能 153
6. 3. 3 任務實施步驟 154
項目小結 156
練習六 156
項目7 電子溫度計的設計 158
任務1 液晶顯示 158
7. 1. 1 LCD1602 的引腳 159
7. 1. 2 LCD1602 的控制指令 160
7. 1. 3 LCD1602 模塊的讀寫操作時序 161
7. 1. 4 任務實施步驟 163
任務2 溫度計的設計 168
7. 2. 1 DS18B20 的引腳 168
7. 2. 2 DS18B20 的通信時隙 169
7. 2. 3 任務實施步驟 171
項目小結 181
練習七 181
擴展項目 俄羅斯方塊游戲的設計 182
任務1 點陣顯示 182
8. 1. 1 LED 點陣的結構 182
8. 1. 2 LED 點陣顯示原理 182
8. 1. 3 任務實施步驟 183
任務2 俄羅斯方塊游戲設計(點陣) 187
8. 2. 1 俄羅斯方塊游戲的基本規則 188
8. 2. 2 任務實施步驟 188
任務3 俄羅斯方塊游戲設計
(LCD12864) 200
8. 3. 1 LCD12864 模塊引腳說明 200
8. 3. 2 LCD12864 模塊指令說明 200
8. 3. 3 LCD12864 的寫操作 202
8. 3. 4 任務實施步驟 202
附錄 213
附錄A 單片機匯編語言指令表 213
附錄B ASCII 字符代碼表 217
附錄C 單片機開發板 218
附錄D STC-ISP 下載控制軟件使用
說明 220
參考文獻 228