全書分三篇,基礎項目篇涵蓋AT89C51單片機的硬件基本結構、C51語言的基本語法和仿真軟件的使用步驟;內部應用篇涵蓋AT89C51單片機的中斷、定時/計數器和串行口的硬件結構和應用方法;外部擴展篇涵蓋單片機的存儲器擴展、顯示接口擴展、鍵盤接口擴展和數模轉換接口擴展的基本方法和思路,具體包括ROM存儲器的擴展、RAM存儲器的擴展、LED的擴展、數碼管的擴展、液晶顯示器LCD的擴展、行列式鍵盤的擴展、矩陣式鍵盤的擴展、D/A芯片的擴展和A/D芯片的擴展。通過外部擴展篇可以完整設計一個數字電壓表項目。
本書所設計的項目案例均精選自企業和工程實際案例,每個項目均可單獨用于設計開發,具有很強的代表性。
本書按照企業嵌入式項目開發的過程進行編寫,充分融入企業實際設計項目,全面訓練學生的嵌入式項目開發能力和創新能力。
基礎項目篇
項目一 單片機開發環境的使用\\t1
1.1 項目要求與分析\\t2
1.1.1 項目要求\\t2
1.1.2 項目要求分析\\t2
1.2 項目實施\\t2
1.2.1 單片機的開發流程\\t2
1.2.2 Keil C51軟件簡介\\t3
1.2.3 Proteus軟件簡介\\t10
1.2.4 Proteus軟件的使用流程\\t17
1.2.5 Keil軟件的使用流程\\t20
1.2.6 Keil軟件和Proteus軟件聯調設計流程\\t23
1.3 項目小結\\t26
1.4 項目拓展\\t27
1.4.1 Keil C51軟件的編譯錯誤的排除方法\\t27
1.4.2 Keil軟件和Proteus軟件聯調的第二種方法\\t28
項目二 單片機最小系統的設計\\t30
2.1 項目要求與分析\\t31
2.1.1 項目要求\\t31
2.1.2 項目要求分析\\t31
2.2 項目理論知識\\t31
2.2.1 單片機簡介\\t31
2.2.2 AT89C51單片機的硬件資源\\t32
2.2.3 AT89C51單片機的I/O端口\\t33
2.2.4 AT89C51單片機的時鐘電路\\t35
2.2.5 AT89C51單片機的復位電路\\t37
2.2.6 AT89C51單片機的內部存儲器\\t38
2.3 項目概要設計\\t43
2.3.1 單片機最小系統的概要設計\\t43
2.3.2 單片機的時鐘模塊的概要設計\\t44
2.3.3 單片機的復位模塊的概要設計\\t44
2.4 項目詳細設計\\t45
2.4.1 單片機的最小系統的詳細設計\\t45
2.4.2 單片機的時鐘模塊的詳細設計\\t45
2.4.3 單片機的復位模塊的詳細設計\\t46
2.4.4 其他注意事項\\t46
2.5 項目實施\\t46
2.6 項目仿真與調試\\t48
2.7 項目小結\\t49
2.8 項目拓展\\t50
2.8.1 Proteus軟件的模型選擇工具欄\\t50
2.8.2 Proteus軟件中的單片機簡化設計\\t51
2.8.3 數據進制轉換\\t54
2.8.4 數據碼制表示\\t57
2.8.5 數據單位\\t58
2.9 理論訓練\\t58
項目三 可控流水燈的設計與制作\\t61
3.1 項目要求與分析\\t61
3.1.1 項目要求\\t61
3.1.2 項目要求分析\\t61
3.2 項目理論知識\\t62
3.2.1 單片機C51語言簡介\\t62
3.2.2 單片機C51語言的數據結構\\t65
3.2.3 單片機C51語言的程序結構\\t69
3.2.4 單片機C51語言的函數\\t72
3.3 項目概要設計\\t74
3.3.1 可控流水燈項目的概要設計\\t74
3.3.2 硬件電路的概要設計\\t75
3.3.3 軟件程序的概要設計\\t75
3.4 項目詳細設計\\t76
3.4.1 硬件電路的詳細設計\\t76
3.4.2 軟件程序的詳細設計\\t76
3.5 項目實施\\t77
3.5.1 硬件電路的實施\\t77
3.5.2 軟件程序的實施\\t78
3.6 項目仿真與調試\\t79
3.6.1 項目仿真\\t79
3.6.2 項目調試\\t80
3.7 項目小結\\t80
3.8 項目拓展\\t81
3.8.1 奇偶交替LED燈閃爍\\t81
3.8.2 左循環點亮流水燈\\t81
3.9 理論訓練\\t82
內部應用篇
項目四 交通燈控制器的設計與制作\\t84
4.1 項目要求與分析\\t84
4.1.1 項目要求\\t84
4.1.2 項目要求分析\\t84
4.2 項目理論知識\\t85
4.2.1 單片機中斷的定義\\t85
4.2.2 單片機中斷的硬件結構\\t86
4.2.3 單片機中斷的寄存器\\t87
4.2.4 單片機中斷的處理過程\\t89
4.2.5 單片機中斷的初始化設置\\t89
4.2.6 單片機中斷的程序編制\\t90
4.3 項目概要設計\\t90
4.3.1 交通燈控制器的概要設計\\t90
4.3.2 硬件電路的概要設計\\t91
4.3.3 軟件程序的概要設計\\t91
4.4 項目詳細設計\\t92
4.4.1 硬件電路的詳細設計\\t92
4.4.2 軟件程序的詳細設計\\t93
4.5 項目實施\\t93
4.5.1 硬件電路的實施\\t93
4.5.2 軟件程序的實施\\t94
4.6 項目仿真與調試\\t95
4.6.1 項目仿真\\t95
4.6.2 項目調試\\t96
4.7 項目小結\\t97
4.8 項目拓展\\t98
4.8.1 外部中斷控制LED燈\\t98
4.8.2 系統中有兩個中斷\\t98
4.9 理論訓練\\t100
項目五 脈沖發生器的設計與制作\\t101
5.1 項目要求與分析\\t101
5.1.1 項目要求\\t101
5.1.2 項目要求分析\\t101
5.2 項目理論知識\\t102
5.2.1 單片機定時器的硬件結構\\t102
5.2.2 單片機定時器的寄存器\\t103
5.2.3 單片機定時器的工作方式\\t103
5.2.4 單片機定時器的初始化步驟\\t105
5.2.5 單片機定時器的初值計算\\t105
5.3 項目概要設計\\t105
5.3.1 脈沖發生器的概要設計\\t105
5.3.2 硬件電路的概要設計\\t106
5.3.3 軟件程序的概要設計\\t107
5.4 項目詳細設計\\t107
5.4.1 硬件電路的詳細設計\\t107
5.4.2 軟件程序的詳細設計\\t108
5.5 項目實施\\t109
5.5.1 硬件電路的實施\\t109
5.5.2 軟件程序的實施\\t109
5.6 項目仿真與調試\\t110
5.6.1 項目仿真\\t110
5.6.2 項目調試\\t111
5.7 項目小結\\t112
5.8 項目拓展\\t113
5.8.1 采用查詢方式設計脈沖發生器\\t113
5.8.2 計數器\\t113
5.9 理論訓練\\t114
項目六 點對點雙機通信系統的設計與制作\\t115
6.1 項目要求與分析\\t115
6.1.1 項目要求\\t115
6.1.2 項目要求分析\\t115
6.2 項目理論知識\\t116
6.2.1 單片機串行口的硬件結構\\t116
6.2.2 單片機串行口的寄存器\\t117
6.2.3 單片機串行口的工作方式\\t118
6.2.4 單片機串行口的波特率計算\\t120
6.2.5 單片機串行口的初始化步驟\\t121
6.3 項目概要設計\\t122
6.3.1 點對點雙機通信系統的概要設計\\t122
6.3.2 硬件電路的概要設計\\t122
6.3.3 軟件程序的概要設計\\t123
6.4 項目詳細設計\\t124
6.4.1 硬件電路的詳細設計\\t124
6.4.2 軟件程序的詳細設計\\t125
6.5 項目實施\\t127
6.5.1 硬件電路的實施\\t127
6.5.2 軟件程序的實施\\t129
6.6 項目仿真與調試\\t131
6.6.1 項目仿真\\t131
6.6.2 項目調試\\t133
6.7 項目小結\\t134
6.8 項目拓展\\t135
6.8.1 利用COMPIM組件調試串行通信\\t135
6.8.2 利用“串口虛擬軟件”調試串行通信\\t136
6.9 理論訓練\\t137
外部擴展篇
項目七 存儲器擴展的設計與制作\\t138
7.1 項目要求與分析\\t138
7.1.1 項目要求\\t138
7.1.2 項目要求分析\\t138
7.2 項目理論知識\\t139
7.2.1 存儲器的擴展方法\\t139
7.2.2 程序存儲器的擴展\\t141
7.2.3 數據存儲器的擴展\\t142
7.3 項目概要設計\\t144
7.3.1 數字電壓計系統的存儲器擴展概要設計\\t144
7.3.2 硬件電路的概要設計\\t145
7.3.3 軟件程序的概要設計\\t146
7.4 項目詳細設計\\t146
7.4.1 硬件電路的詳細設計\\t146
7.4.2 軟件程序的詳細設計\\t147
7.5 項目實施\\t148
7.5.1 硬件電路的實施\\t148
7.5.2 軟件程序的實施\\t149
7.6 項目仿真與調試\\t149
7.6.1 項目仿真\\t149
7.6.2 項目調試\\t150
7.7 項目小結\\t150
7.8 項目拓展\\t151
7.9 理論訓練\\t152
項目八 顯示接口擴展的設計與制作\\t154
8.1 項目要求與分析\\t154
8.1.1 項目要求\\t154
8.1.2 項目要求分析\\t154
8.2 項目理論知識\\t155
8.2.1 顯示接口的擴展方法\\t155
8.2.2 數碼管\\t156
8.2.3 LCD1602\\t158
8.3 項目概要設計\\t163
8.3.1 數字電壓計系統的顯示接口擴展概要設計\\t163
8.3.2 硬件電路的概要設計\\t163
8.3.3 軟件程序的概要設計\\t164
8.4 項目詳細設計\\t165
8.4.1 硬件電路的詳細設計\\t165
8.4.2 軟件程序的詳細設計\\t165
8.5 項目實施\\t167
8.5.1 硬件電路的實施\\t167
8.5.2 軟件程序的實施\\t168
8.6 項目仿真\\t171
8.7 項目小結\\t172
8.8 項目拓展\\t172
8.9 理論訓練\\t178
項目九 鍵盤接口擴展的設計與制作\\t179
9.1 項目要求與分析\\t179
9.1.1 項目要求\\t179
9.1.2 項目要求分析\\t179
9.2 項目理論知識\\t180
9.2.1 鍵盤接口的擴展方法\\t180
9.2.2 獨立式鍵盤\\t181
9.2.3 行列式鍵盤\\t182
9.3 項目概要設計\\t182
9.3.1 數字電壓計系統的鍵盤接口擴展概要設計\\t182
9.3.2 硬件電路的概要設計\\t183
9.3.3 軟件程序的概要設計\\t184
9.4 項目詳細設計\\t184
9.4.1 硬件電路的詳細設計\\t184
9.4
本書基于Keil Vision集成開發軟件和Proteus仿真軟件搭建單片機仿真開發平臺,采用項目開發流程,精心設計了十個項目。所有項目案例均可以在單片機仿真開發平臺中調試和交互運行。具體內容分為三個部分:
一、基礎項目篇:涵蓋單片機AT89C51基本硬件結構和C51軟件基礎知識,包括項目一、項目二和項目三。
項目一主要介紹仿真軟件(Keil軟件和Proteus軟件)和仿真軟件的使用步驟,為后續設計做準備;項目二主要介紹單片機AT89C51的基本硬件結構和原理;項目三主要介紹C51基本語法,包括數據結構和程序結構。
通過上述三個項目,不僅能夠掌握單片機的硬件結構,還能掌握C51的基本語法。
二、內部應用篇:涵蓋內部硬件電路的設計與應用,包括項目四、項目五和項目六。
項目四主要介紹單片機內部中斷的硬件結構和內部應用;項目五主要介紹單片機內部的定時/計數器的硬件結構和編程應用;項目六主要介紹單片機內部的串行通信接口的硬件結構和編程應用。
通過上述三個項目,能夠掌握單片機內部的中斷、定時/計數器和串口的設計與應用。
三、外部擴展篇:涵蓋單片機常用的外部擴展電路的設計與應用,包括項目七、項目八、項目九和項目十。
項目七主要介紹數字電壓計的存儲器的擴展;項目八主要介紹數字電壓計的顯示接口的擴展;項目九主要介紹數字電壓計的鍵盤接口的擴展;項目十主要介紹數字電壓計的數模轉換接口的擴展。
通過上述四個項目,可以完整設計一個數字電壓計項目,掌握單片機的擴展方法和常見的基本擴展電路。
本書十個項目設計過程均采用企業項目開發流程來設計,每個項目都可以單獨使用。書中詳細介紹了每個設計環節的設計內容和設計思路,并給出詳細的設計成果,全部代碼均調試通過,可以作為嵌入式開發設計的入門手冊使用,為后續嵌入式軟件開發提供設計思路。
本書具有以下特點:
(1)按照嵌入式項目開發的設計過程進行編寫,采用嵌入式項目開發設計思想進行教學,使學生潛移默化掌握嵌入式項目開發的流程,具有嵌入式項目開發的思路,通過循序漸進的項目能夠提高嵌入式項目開發的能力,更好適應工作崗位的要求。
(2)項目設計過程講解詳細,條理清晰,適合教師講授,易于學生閱讀。本書采用的項目都有較強的實踐性,簡單且易于實現,在實踐中掌握相關的單片機原理和擴展方法。
(3)項目中增加調試部分,并設置故障點,使學生能夠通過Keil軟件和Proteus軟件查看當前電路的端口、內存、中斷、定時/計數器和串口的狀態,判斷故障現象的原因,并提出相應的故障解決辦法,進一步實施以達到解決問題的目的,從而使學生具有硬件電路調試能力、程序軟件調試能力和軟硬件聯調的能力。
(4)項目中增加擴展部分,補充項目相關的理論知識和應用方法,進一步擴展項目設計思路,從而能夠全面掌握相關的單片機原理和擴展方法。
本書由大連職業技術學院的唐敏擔任主編;由大連職業技術學院的王麗艷和許毅老師擔任副主編。項目一、項目二、項目三、項目四和項目五由唐敏和王麗艷編寫,項目六、項目七、項目八、項目九和項目十由唐敏和許毅編寫。
在本書選題、撰寫到出版的全過程中,得到大連職業技術學院領導及教師的大力支持,在此表示衷心的感謝!
由于作者水平有限,且全書撰寫任務繁重,書中錯漏之處在所難免,在此真誠歡迎讀者多提寶貴意見,以期不斷改進。
本書所有案例的配套資料可到電子工業出版社華信教育資源網免費獲取。