2009-6-28
《單片機接口技術實用子程序》 目錄
第1章 單片機I/O接口的擴展 111
1.1 單片機應用系統 2
1.1.1 單片機系統概述 2
1.1.2 單片機系統中的功能模塊 3
1.2 單片機I/O接口 4
1.2.1 I/O接口功能 5
1.2.2 接口的控制方式 5
1.2.3 I/O接口芯片 6
1.3 用單片機串口擴展I/O接口 6
1.3.1 子程序1——用串口擴展并行輸入口 6
1.3.2 子程序2——用串口擴展并行輸出口 11
1.4 用并行數據端口擴展I/O接口 14
1.4.1 子程序3——用8243擴展I/O接口 14
1.4.2 子程序4——用8255A擴展I/O接口 18
1.4.3 子程序5——用8155擴展I/O接口 27
第2章 總線接口的擴展 41
2.1 子程序6——異步通信的軟件模擬 42
2.1.1 異步通信簡要介紹 42
2.1.2 軟件模擬異步通信 43
2.2 子程序7——基于RS-232-C的串口通信 51
2.2.1 RS-232-C接口標準 52
2.2.2 RS-232-C傳輸接口電路的設計 53
2.2.3 單片機與PC機通信程序設計 55
2.2.4 PC機通信軟件的開發 58
2.3 子程序8——基于RS-485的多機通信 65
2.3.1 RS-485接口標準 66
2.3.2 通信系統及接口電路設計 67
2.3.3 多機通信程序設計 68
2.4 子程序9——I2C總線協議的軟件實現 75
2.4.1 I2C總線簡要介紹 76
2.4.2 I/O端口模擬I2C總線接口的軟件設計 78
2.5 子程序10——SPI總線在單片機系統中的實現 83
2.5.1 SPI總線簡要介紹 83
2.5.2 SPI總線時序的軟件實現 85
2.6 子程序11——1-Wire總線協議的軟件實現 88
2.6.1 1-Wire總線簡要介紹 88
2.6.2 1-Wire總線時序的軟件實現 91
第3章 CAN總線接口 95
3.1 CAN總線接口簡要介紹 96
3.3.1 CAN總線的特征 96
3.1.2 CAN總線接口的結構 97
3.1.3 CAN總線的設計方案選擇 97
3.2 SJA1000總線控制器簡要介紹 97
3.2.1 SJAl000結構和主要特點 98
3.2.2 SJA1000的內部結構 98
3.2.3 SJA1000的引腳說明 100
3.3 接口電路設計 100
3.3.1 SJA1000與單片機接口電路設計 100
3.3.2 前端物理接口電路的設計 101
3.3.3 設計電路需要注意的問題 102
3.4 控制程序總體設計 103
3.4.1 BasicCAN方式下的寄存器 103
3.4.2 設計流程 104
3.5 子程序12——硬件驅動程序的設計 105
3.6 子程序13——基本操作程序設計 106
3.7 子程序14——初始化操作 118
3.8 子程序15——通信程序設計 120
3.8.1 寫發送緩沖器 120
3.8.2 讀接收緩沖區 121
3.9 CAN總線的數據格式 122
3.9.1 數據幀 122
3.9.2 遠程幀 125
3.9.3 出錯幀 125
3.9.4 過載幀 126
第4章 存儲器的擴展 127
4.1 存儲器綜述 128
4.1.1 半導體存儲器 128
4.1.2 半導體存儲器的應用 130
4.1.3 各種存儲器性能比較 132
4.1.4 智能卡 133
4.2 子程序16——典型外部程序存儲器的使用 134
4.2.1 器件選擇和接口電路的設計 135
4.2.2 外部存儲器的訪問 136
4.3 子程序17——典型外部數據存儲器的使用 136
4.3.1 器件選擇和接口電路的設計 137
4.3.2 外部數據存儲器的讀寫 138
4.4 子程序18——用鐵電存儲器擴展外部數據存儲器 140
4.4.1 鐵電存儲器FM1808接口電路的設計 140
4.4.2 FM1808讀寫程序設計 141
4.5 子程序19——I2C接口EEPROM的控制 142
4.5.1 AT24C512簡要介紹 143
4.5.2 AT24C512工作時序 144
4.5.3 讀寫程序 146
4.6 子程序20——SPI接口EEPROM的控制 155
4.6.1 AT93CXX簡要介紹 155
4.6.2 AT93CXX的控制時序 157
4.6.3 讀寫程序 160
4.7 子程序21——FLASH存儲器K9F6408U0A的控制 165
4.7.1 K9F6408U0A簡要介紹 165
4.7.2 專用的命令功能和狀態寄存器 167
4.7.3 K9F6408U0A的程序設計 168
4.8 子程序22——SLE4442邏輯加密IC卡的控制 174
4.8.1 SLE4442簡要介紹 175
4.8.2 SLE4442內部結構 176
4.8.3 程序設計 177
第5章 鍵盤接口與控制 185
5.1 鍵盤設計指南 186
5.1.1 鍵盤的物理結構 186
5.1.2 鍵盤的組成形式 187
5.1.3 單片機輸入接口解決方案 191
5.2 獨立式鍵盤的控制 193
5.2.1 子程序23——獨立式中斷鍵盤的設計 193
5.2.2 子程序24——獨立式查詢鍵盤的設計 196
5.2.3 子程序25——獨立式中斷查詢鍵盤的設計 202
5.3 矩陣式鍵盤的控制 206
5.3.1 子程序26——矩陣式掃描按鍵的設計 206
5.3.2 子程序27——矩陣式中斷掃描鍵盤的設計 213
5.3.3 子程序28——矩陣式線反轉法鍵盤的設計 215
5.4 子程序29——矩陣式鍵盤的鎖定 217
5.4.1 鍵盤密碼原理及單片機密碼設置方法 217
5.4.2 程序設計 218
5.5 子程序30——改進型I/O端口復用鍵盤的控制 221
5.5.1 I/O端口復用的原理和接口電路的設計 221
5.5.2 程序設計 222
5.6 子程序31——利用ZLG7279A實現鍵盤顯示 224
5.6.1 ZLG7289A簡要介紹 225
5.6.2 接口電路設計 229
5.6.3 程序設計 230
5.7 子程序32——PS/2鍵盤的設計 233
5.7.1 PS/2接口標準 234
5.7.2 硬件設計 238
5.7.3 軟件設計 239
第6章 顯示和打印機的接口與控制 245
6.1 顯示和打印接口設計指南 246
6.1.1 LED顯示接口 246
6.1.2 LCD顯示接口 247
6.1.3 CRT顯示器 253
6.1.4 打印機 255
6.2 子程序33——LED顯示器在單片機系統中的應用 257
6.2.1 PS7219簡要介紹 258
6.2.2 PS7219與單片機接口電路的設計 260
6.2.3 控制程序設計 260
6.3 子程序34——利用HT16XX實現段式液晶顯示 264
6.3.1 HT1621簡要介紹 264
6.3.2 接口電路設計 267
6.3.3 控制程序設計 268
6.4 子程序35——利用HD44780實現字符顯示 271
6.4.1 HD44780簡單介紹 271
6.4.2 HD44780接口電路的設計 273
6.4.3 控制程序 274
6.5 子程序36——利用SED1520實現點陣顯示 278
6.5.1 SED1520簡要介紹 279
6.5.2 液晶模塊的內部結構及其與單片機接口電路 283
6.5.3 控制程序編寫 285
6.6 子程序37——利用HD66421實現灰度字符顯示 297
6.6.1 HD66421簡要介紹 297
6.6.2 接口電路 300
6.6.3 控制程序編寫 300
6.7 子程序38——CRT顯示器在單片機系統中的應用 303
6.7.1 OCA-93顯示適配器簡要介紹 304
6.7.2 適配器的接口設計 306
6.7.3 驅動程序設計 307
6.8 子程序39——微型打印機在單片機系統中的應用 308
6.8.1 CENTRONICS標準 308
6.8.2 SP-M系列微型打印機介紹 309
6.8.3 接口電路設計 311
6.8.4 程序設計 312
第7章 數據采集與控制 317
7.1 數據采集技術概述 318
7.1.1 模擬信號采集技術 318
7.1.2 A/D轉換技術 321
7.1.3 A/D轉換器件選型指南 323
7.1.4 數字邏輯信號的采集 324
7.2 子程序40——模擬量輸入選擇接口 324
7.2.1 模擬開關的主要技術指標 325
7.2.2 模擬開關的的選型 326
7.2.3 模擬開關接口電路的設計 327
7.2.4 用CD4051實現多路模擬信號的輸入 329
7.3 子程序41——用模擬比較器實現A/D轉換 332
7.3.1 測量原理 333
7.3.2 電路設計 334
7.3.3 測量過程 334
7.3.4 控制程序設計 335
7.4 子程序42——8位并行接口ADC080X的接口與驅動 338
7.4.1 ADC0808/ADC0809簡要介紹 339
7.4.2 ADC0808/0809 與單片機的接口設計 340
7.4.3 編寫程序 342
7.5 子程序43——SPI接口A/D轉換器TLC2543的應用 345
7.5.1 TLC2543簡要介紹 346
7.5.2 LC2543與單片機的接口電路 347
7.5.3 控制程序 347
7.6 子程序44——I2C接口A/D轉換器ADS11XX的應用 350
7.6.1 ADS11XX簡要介紹 351
7.6.2 ADS1100與單片機的接口電路 353
7.6.3 ADS1100的控制方法 353
7.6.4 ADS1100控制程序 355
7.7 子程序45——16位A/D轉換器AD7715的應用 360
7.7.1 AD7715簡要介紹 360
7.7.2 AD7715與單片機的接口電路 361
7.7.3 AD7715的寄存器 362
7.7.4 AD7715控制程序設計 364
7.8 子程序46——等精度數字頻率計的實現 367
7.8.1 等精度頻率測量原理 367
7.8.2 設計CPLD的邏輯功能 368
7.8.3 頻率信號預處理 370
7.8.4 主控制器程序設計 371
7.9 子程序47——1-wire測溫芯片DS18XX的應用 375
7.9.1 DS18XX簡要介紹 375
7.9.2 DS18B20簡要介紹 376
7.9.3 DS18B20的接口電路 378
7.9.4 控制程序的設計 379
7.10 子程序48——時鐘日歷芯片PCF8563的應用 382
7.10.1 PCF8563簡要介紹 383
7.10.2 PCF8563硬件電路 384
7.10.3 PCF8583的控制程序設計 385
第8章 單片機后向通道接口與控制 393
8.1 單片機后向通道概述 394
8.1.1 模擬量的輸出技術概述 394
8.1.2 頻率合成技術概述 396
8.1.3 機電控制技術概述 398
8.2 子程序49——并行接口電壓輸出型D/A轉換器的控制 399
8.2.1 MAX530簡要介紹 399
8.2.2 MAX530接口電路的設計 401
8.2.3 控制程序的設計 403
8.3 子程序50——并行接口電流輸出型D/A轉換器的控制 405
8.3.1 DAC083X簡要介紹 406
8.3.2 DAC083X系列D/A轉換器與單片機的接口電路 407
8.3.3 控制程序的設計 409
8.4 子程序51——串行接口電壓輸出型D/A轉換器的控制 412
8.4.1 MAX532簡要介紹 412
8.4.2 MAX532與單片機接口電路的設計 413
8.4.3 控制程序 414
8.5 子程序52——I2C接口的A/D及D/A轉換器的應用 417
8.5.1 PCF859l簡要介紹 418
8.5.2 PCF8591與單片機接口電路的設計 420
8.5.3 控制程序的設計 420
8.6 子程序53——基于AD9850的數字信號發生器 426
8.6.1 AD9850簡要介紹 426
8.6.2 AD9850接口電路的設計 430
8.6.3 控制程序設計 433
8.7 子程序54——直流電機的開環控制 437
8.7.1 直流電機驅動電路的基本原理 437
8.7.2 直流電動機驅動芯片LMD18200簡要介紹 438
8.7.3 接口電路的設計 441
8.7.4 直流電機的驅動 442
8.8 子程序55——直流電機的閉環控制 444
8.8.1 閉環控制系統工作原理 444
8.8.2 光電編碼器簡要介紹 445
8.8.3 接口電路的設計 446
8.8.4 控制程序設計 446
下載