µn¤J
¡U
µù¥U
¡U
·|û¤¤¤ß
¡U
µ²±b
¡U
°ö°V½Òµ{
Å]ªk§Ì¤l
¡U
¦Û¸ê¥Xª©
¡U
¹q¤l®Ñ
¡U
«ÈªA¤¤¤ß
¡U
´¼¼z«¬¥ßÊ^·|û
®Ñ¦W
¥Xª©ªÀ
§@ªÌ
isbn
½s¸¹
5050Å]ªk²³Äw
|
NG®Ñ«°
|
°ê»Ú¯Å«~µP½Òµ{
|
Àu´f³qª¾
|
ÅRÆE^¶¯µ¼Öºë¿ï
|
·L³B²z¾÷¡þ³æ´¹¤ù²Õ¦X»y¨¥±Ð¾Ç½d¥»(ªþCD)
¦¹§@ªÌµL¬ÛÃö®ÑÄy
¤å¾Ç¤p»¡
¤å¾Ç
¡U
¤p»¡
°ÓºÞ³Ð§ë
°]¸g§ë¸ê
¡U
¦æ¾P¥øºÞ
¤H¤åÃÀ§{
©v±Ð¡Bõ¾Ç
ªÀ·|¡B¤H¤å¡B¥v¦a
ÃÀ³N¡B¬ü¾Ç
¡U
¹q¼vÀ¸¼@
Ày§Ó¾i¥Í
ÂåÀø¡B«O°·
®Æ²z¡B¥Í¬¡¦Ê¬ì
±Ð¨|¡B¤ß²z¡BÀy§Ó
¶i׾Dzß
¹q¸£»Pºô¸ô
¡U
»y¨¥¤u¨ã
Âø»x¡B´Á¥Z
¡U
x¬F¡Bªk«ß
°Ñ¦Ò¡B¦Ò¸Õ¡B±Ð¬ì¥Î®Ñ
¬ì¾Ç¤uµ{
¬ì¾Ç¡B¦ÛµM
¡U
¤u·~¡B¤uµ{
®a®x¿Ë¤l
®a®x¡B¿Ë¤l¡B¤H»Ú
«C¤Ö¦~¡Bµ£®Ñ
ª±¼Ö¤Ñ¦a
®È¹C¡B¦a¹Ï
¡U
¥ð¶¢®T¼Ö
º©µe¡B´¡¹Ï
¡U
¨î¯Å
8051³æ´¹¤ùC»y¨¥µ{¦¡³]p¡G¨Ï¥ÎKeil Cx51
§@ªÌ¡G
鄭美珠、李鴻鵬
¤ÀÃþ¡G
°Ñ¦Ò¡E¦Ò¸Õ¡E±Ð¬ì®Ñ
¡þ
¤j±M¾Ç°|±Ð¬ì®Ñ
ÂO®Ñ¨t¦C¡G¤j±M¹q¤l
¥Xª©ªÀ¡G
¥þµØ¹Ï®Ñ
¥Xª©¤é´Á¡G2008/7/24
ISBN¡G9572166166
®ÑÄy½s¸¹¡Gkk0212179
¶¼Æ¡G448
©w»ù¡G
440
¤¸
Àu´f»ù¡G
88
§é
387
¤¸
®Ñ»ùY¦³²§°Ê¡A¥H¥Xª©ªÀ¹ê»Ú©w»ù¬°·Ç
µ´ª©®Ñ
µ´ª©®Ñ¡G½T©w¤£¦Aª©ªº°Ó«~¡A¶È´£¨Ñ®ÑÄy¸ê°T°Ñ¦Ò¡C
µû»ù¼Æ¡G
(½Ð±N·Æ¹«²¾¦Ü¬P¬P³B¶i¦æµû»ù)
¥Ø«e¥§¡µû»ù¡G
¤å¦r³sµ²
½Æ»s»yªk
8051³æ´¹¤ùC»y¨¥µ{¦¡³]p¡G¨Ï¥ÎKeil Cx51
¹Ï¤ù³sµ²
½Æ»s»yªk
¤À
¨É
¤º®e²¤¶
¦PÃþ±ÀÂË
本書是針對目前最通用的單晶片8051和最流行的程式設計語言——C語言,以KEIL公司最新版本8051單晶片開發套件講解單晶片的C語言應用程式設計的教材。該套件的編譯器有支援經典8051及8051衍生產品的版本,統稱為Cx51。Windows整合開發環境μVision2把μVision1用的模擬除錯器dScope與整合環境無縫結合起來,使用更方便,支援的單晶片產品更多。 全書共十三章,既有單晶片的基礎部分,即Cx51的基礎部分:資料與運算、流程控制指令、構造資料類型及函數與程式結構;又有Cx51的應用部分:內部資源、擴展資源、輸出控制、資料擷取、機間通信及人機交互的C程式設計。本書還對軟體工程推崇的模組化程式設計技術有所闡述,還特別為即時控制的精確定時講述了與組合語言的混合程式設計技術。目錄第一章單晶片基礎知識 1 1.18051單晶片的特點 1 1.28051的內部結構 3 1.2.1中央處理器 4 1.2.2記憶體組織 6 1.2.3內部並列介面 10 1.2.48051的內部資源 12 1.2.58051的晶片接腳 13 1.2.6單晶片的工作模式 14 1.38051的系統擴展 17 1.3.1外部匯流排的擴展 17 1.3.2外部程式記憶體的擴展 19 1.3.3外部資料記憶體的擴展 22 1.48051指令系統 25 1.4.1定址方式 26 1.4.2指令說明 27 1.4.3虛擬指令 35 1.4.4指令系統表 37 1.5實用程式設計 42 習題一 45 第二章C與805 149 2.18051的程式設計語言 49 2.2Cx51編譯器 50 2.3KEIL8051開發工具 52 2.4KEILCx51程式設計實例 57 2.5Cx51程式結構 63 習題二 65 第三章Cx51資料與運算 66 3.1資料與資料類型 66 3.2常數與變數 67 3.3Cx51資料的儲存類型與8051記憶體結構 71 3.48051特殊功能暫存器(SFR)及其Cx51定義 76 3.58051並列介面及其Cx51定義 79 3.6位元變數(BIT)及其Cx51定義 81 3.7Cx51運算符號、運算式及其規則 83 3.7.1Cx51算術運算符號及其運算式 83 3.7.2Cx51關係運算符號、運算式及優先順序 85 3.7.3Cx51邏輯運算符號、運算式及優先順序 86 3.7.4Cx51位元運算及其運算式 87 3.7.5自增減運算符號、複合運算符號及其運算式 94 習題三 96 第四章Cx51流程控制指令 97 4.1C語言程式的基本結構及其流程圖 97 4.1.1順序結構及其流程圖 97 4.1.2選擇結構及其流程圖 97 4.1.3迴圈結構及其流程圖 99 4.2選擇指令 101 4.2.1選擇指令if 101 4.2.2switch/case指令 104 4.3迴圈指令 105 4.3.1while指令 106 4.3.2dowhile指令 107 4.3.3for迴圈指令 108 習題四 112 第五章Cx51構造資料類型 114 5.1數組 114 5.1.1一維陣列 114 5.1.2二維陣列 118 5.1.3字元陣列 119 5.1.4查表 121 5.1.5陣列與儲存空間 122 5.2指標 122 5.2.1指標的基本概念 122 5.2.2陣列指標和指向陣列的指標變數 127 5.2.3指向多維陣列的指標和指標變數 131 5.2.4關於KEILCx51的指標類型 132 5.3結構 135 5.3.1結構的定義和引用 135 5.3.2結構陣列 139 5.3.3指向結構類型資料的指標 141 5.4共用體 144 5.5列舉 146 習題五 148 第六章Cx51函數 150 6.1函數的分類 151 6.2函數的定義 152 6.3函數的參數和函數值 154 6.4函數的呼叫 156 6.4.1函數呼叫的一般形式 156 6.4.2函數呼叫的方式 157 6.4.3對被呼叫函數的說明 157 6.4.4函數的套用和遞迴呼叫 159 6.4.5函數的遞迴呼叫 160 6.4.6用函數指標變數呼叫函數 162 6.5陣列、指標作為函數的參數 164 6.5.1用陣列作為函數的參數 164 6.5.2用指向函數的指標變數作為函數的參數 166 6.5.3用指向結構的指標變數作為函數的參數 169 6.5.4返回指標的函數 170 習題六 172 第七章模組化程式設計 173 7.1基本概念 173 7.1.1程式的組成 173 7.1.2常用術語 173 7.1.3檔命名常規 176 7.2模組化程式開發 177 7.2.1採用模組程式設計的優點 177 7.2.2模組化程式開發過程 177 7.3組譯和編譯 179 7.3.1使用組合語言的模組化設計 179 7.3.2使用C語言的模組化設計 182 7.4覆蓋和共用 184 7.4.1覆蓋 184 7.4.2共享 184 7.5庫和鏈結器/定位器 186 7.5.1庫 186 7.5.2鏈結器/定位器 187 7.6混合程式設計 193 7.6.1混合程式設計介紹 193 7.6.2參數傳遞 194 7.6.3混合程式設計實例 199 7.6.4根據硬體環境的配置 205 7.7程式最佳化 206 習題七 207 第八章8051內部資源的C程式設計 208 8.1中斷 208 8.1.1中斷源 209 8.1.2中斷的控制 210 8.1.3中斷回應 212 8.1.4暫存器組切換 214 8.1.5中斷程式設計 216 8.2計時器/計數器 219 8.2.1與T/C有關的特殊功能暫存器 219 8.2.2計時器/計數器的工作模式 221 8.2.3計時器/計數器的初始化 223 8.2.4計時器/計數器的應用實例 224 8.3串列埠232 8.3.1與串列埠有關的SFR 232 8.3.2串列埠的工作模式 234 8.3.3串列埠初始化 235 8.3.4串列埠應用範例 236 習題八 244 第九章8051擴展資源的C程式設計 246 9.1可程式週邊計時器8253 246 9.1.18253的結構和接腳 246 9.1.28253的工作模式和控制字 248 9.1.38253與8051的介面 249 9.2可程式週邊並列介面8255 252 9.2.18255的結構和接腳 252 9.2.28255的命令字和工作模式 253 9.2.38255與8051的介面 256 9.3即時時脈/日曆晶片 146818 257 9.3.1MC 146818晶片的接腳 257 9.3.2內部結構和暫存器 258 9.3.3MC 146818與8051的介面電路 261 9.4可程式介面晶片8155 263 9.4.18155的結構和接腳 263 9.4.28155的命令字、狀態字及工作模式 264 9.4.38155與8051的介面 267 習題九 269 第十章8051輸出控制的C程式設計 270 10.18位元D/A晶片DAC0832 270 10.1.1DAC0832的結構和接腳 270 10.1.28051與DAC0832的介面電路 271 10.212位元D/A晶片AD7521 274 10.2.1AD7521的接腳 275 10.2.2AD7521與8051的介面 275 10.3步進馬達控制 276 10.3.1步進馬達及其工作模式 276 10.3.2步進馬達與單晶片的介面 277 習題十 283 第十一章8051資料擷取的C程式設計284 11.18位元A/D晶片ADC0809284 11.1.1ADC0809的結構和接腳284 11.1.2ADC0809與8051的介面285 11.212位元A/D晶片AD574288 11.2.1AD574的結構和接腳288 11.2.2AD574與8051的介面290 11.3V/F變換晶片AD650292 11.4頻率量的測量296 11.4.1測量頻率法296 11.4.2頻率脈衝的測量週期法298 習題十一 300 第十二章8051之間通信的C程式設計 302 12.1點對點的串列非同步通信 302 12.1.1通信雙方的硬體連接 302 12.1.2通信雙方的約定 302 12.1.3點對點通信程式設計 304 12.2多機通信 306 12.2.1通信介面 306 12.2.2通信協議 306 12.2.3通信程式 307 習題十二 315 第十三章8051人機交互的C程式設計 316 13.1鍵盤和數位顯示 316 13.1.1行列式鍵盤與8051的介面 316 13.1.2七段數位顯示與8051的介面 319 13.2可程式鍵盤/顯示介面晶片8279 322 13.2.18279內部結構和接腳 322 13.2.28279的命令字和狀態字 325 13.2.38279和8051的介面 328 13.3語音晶片TSP5220 331 13.3.1TSP5220內部結構和接腳 331 13.3.2TSP5220的命令字和狀態字 333 13.3.3TSP5220語音合成器與單晶片的介面 334 13.4TPμp印表機 336 13.4.1TPμp印表機的介面信號 336 13.4.2字元代碼和中文字 337 13.4.3列印命令 339 13.4.4TPμp-TF與8051的介面和程式設計 341 13.5字元型LCD顯示模組 343 13.5.1字元型LCD的結構和接腳 343 13.5.2顯示板控制器的指令系統 346 13.5.3LCD顯示板與單晶片的介面和程式設計 347 13.6點陣型LCD顯示模組 350 13.6.1HD61830的特點和接腳 350 13.6.2HD61830指令集 351 13.6.3與內藏HD61830液晶模組的介面和程式設計 354 習題十三 364 附錄AμVision2整合開發環境使用 365 A.1功能表欄命令 365 A.2建立應用 371 A.2.1建立項目 371 A.2.2專案目標和檔組 377 A.3除錯程式 378 A.3.1μVision2除錯器 378 A.3.2HELLO:第一個80C51C程式 384 附錄BKEILCx51上機指南 389 B.1編譯器 389 B.1.1Cx51編譯器控制命令 390 B.1.2預處理器 402 B.1.3Cx51執行庫 403 B.2Ax51巨集組譯器 416 B.2.1組譯虛擬指令 416 B.2.2組譯控制命令 418 B.3鏈結器/定位器和實用工具 420 B.3.1鏈結器/定位器的控制命令 420 B.3.2庫管理器LIBx51 423 B.3.3Object-Hex轉換器 424
¹q¤uªk³W(²Ä¤ª©)
°ò¦«æ±Ï
ªø´Á·ÓÅU(²Ä¤Eª©)
¨Ó¤WÅÞ¿è½ÒÅo¡I(²Ä¥|
¶¼®Æ¹ê°ÈÁ`½Æ²ß(²Ä¤T
¤ÀªR¤Æ¾Ç¹êÅç(²Ä¤ª©
²Îp¾Ç(²Ä¤ª©)
µø¥úÃIJz¾Ç(²Ä¤ª©)
°]°ÈºÞ²z²z½×»PÀ³¥Î(
ÂåÀø¦æ¾PºÞ²z¡GAI®É
¬°¤F«O»Ù±zªºÅv¯q¡A·sµ·¸ôºô¸ô®Ñ©±©ÒÁʶRªº°Ó«~§¡¨É¦³¨ì³f¤C¤ÑªºÅ²½à´Á¡]§t¨Ò°²¤é¡^¡C°h¦^¤§°Ó«~¥²¶·©óŲ½à´Á¤º±H¦^¡]¥H¶lÂW©Î¦¬°õÁp¬°¾Ì¡^¡A¥B°Ó«~¥²¶·¬O¥þ·sª¬ºA»P§¹¾ã¥]¸Ë(°Ó«~¡Bªþ¥ó¡B¤º¥~¥]¸Ë¡BÀH³f¤å¥ó¡BÃØ«~µ¥)¡A§_«h®¤¤£±µ¨ü°h³f¡C