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