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 異步通信簡(jiǎn)要介紹 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ī)通信軟件的開(kāi)發(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總線簡(jiǎn)要介紹 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總線簡(jiǎn)要介紹 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總線簡(jiǎn)要介紹 88
2.6.2 1-Wire總線時(shí)序的軟件實(shí)現(xiàn) 91
第3章 CAN總線接口 95
3.1 CAN總線接口簡(jiǎn)要介紹 96
3.3.1 CAN總線的特征 96
3.1.2 CAN總線接口的結(jié)構(gòu) 97
3.1.3 CAN總線的設(shè)計(jì)方案選擇 97
3.2 SJA1000總線控制器簡(jiǎn)要介紹 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的引腳說(shuō)明 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ì)電路需要注意的問(wèn)題 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 寫(xiě)發(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 過(guò)載幀 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ǔ)器的訪問(wèn) 136
4.3 子程序17——典型外部數(shù)據(jù)存儲(chǔ)器的使用 136
4.3.1 器件選擇和接口電路的設(shè)計(jì) 137
4.3.2 外部數(shù)據(jù)存儲(chǔ)器的讀寫(xiě) 138
4.4 子程序18——用鐵電存儲(chǔ)器擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器 140
4.4.1 鐵電存儲(chǔ)器FM1808接口電路的設(shè)計(jì) 140
4.4.2 FM1808讀寫(xiě)程序設(shè)計(jì) 141
4.5 子程序19——I2C接口EEPROM的控制 142
4.5.1 AT24C512簡(jiǎn)要介紹 143
4.5.2 AT24C512工作時(shí)序 144
4.5.3 讀寫(xiě)程序 146
4.6 子程序20——SPI接口EEPROM的控制 155
4.6.1 AT93CXX簡(jiǎn)要介紹 155
4.6.2 AT93CXX的控制時(shí)序 157
4.6.3 讀寫(xiě)程序 160
4.7 子程序21——FLASH存儲(chǔ)器K9F6408U0A的控制 165
4.7.1 K9F6408U0A簡(jiǎn)要介紹 165
4.7.2 專用的命令功能和狀態(tài)寄存器 167
4.7.3 K9F6408U0A的程序設(shè)計(jì) 168
4.8 子程序22——SLE4442邏輯加密IC卡的控制 174
4.8.1 SLE4442簡(jiǎn)要介紹 175
4.8.2 SLE4442內(nèi)部結(jié)構(gòu) 176
4.8.3 程序設(shè)計(jì) 177
第5章 鍵盤(pán)接口與控制 185
5.1 鍵盤(pán)設(shè)計(jì)指南 186
5.1.1 鍵盤(pán)的物理結(jié)構(gòu) 186
5.1.2 鍵盤(pán)的組成形式 187
5.1.3 單片機(jī)輸入接口解決方案 191
5.2 獨(dú)立式鍵盤(pán)的控制 193
5.2.1 子程序23——獨(dú)立式中斷鍵盤(pán)的設(shè)計(jì) 193
5.2.2 子程序24——獨(dú)立式查詢鍵盤(pán)的設(shè)計(jì) 196
5.2.3 子程序25——獨(dú)立式中斷查詢鍵盤(pán)的設(shè)計(jì) 202
5.3 矩陣式鍵盤(pán)的控制 206
5.3.1 子程序26——矩陣式掃描按鍵的設(shè)計(jì) 206
5.3.2 子程序27——矩陣式中斷掃描鍵盤(pán)的設(shè)計(jì) 213
5.3.3 子程序28——矩陣式線反轉(zhuǎn)法鍵盤(pán)的設(shè)計(jì) 215
5.4 子程序29——矩陣式鍵盤(pán)的鎖定 217
5.4.1 鍵盤(pán)密碼原理及單片機(jī)密碼設(shè)置方法 217
5.4.2 程序設(shè)計(jì) 218
5.5 子程序30——改進(jìn)型I/O端口復(fù)用鍵盤(pán)的控制 221
5.5.1 I/O端口復(fù)用的原理和接口電路的設(shè)計(jì) 221
5.5.2 程序設(shè)計(jì) 222
5.6 子程序31——利用ZLG7279A實(shí)現(xiàn)鍵盤(pán)顯示 224
5.6.1 ZLG7289A簡(jiǎn)要介紹 225
5.6.2 接口電路設(shè)計(jì) 229
5.6.3 程序設(shè)計(jì) 230
5.7 子程序32——PS/2鍵盤(pán)的設(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簡(jiǎn)要介紹 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簡(jiǎn)要介紹 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簡(jiǎn)單介紹 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簡(jiǎn)要介紹 279
6.5.2 液晶模塊的內(nèi)部結(jié)構(gòu)及其與單片機(jī)接口電路 283
6.5.3 控制程序編寫(xiě) 285
6.6 子程序37——利用HD66421實(shí)現(xiàn)灰度字符顯示 297
6.6.1 HD66421簡(jiǎn)要介紹 297
6.6.2 接口電路 300
6.6.3 控制程序編寫(xiě) 300
6.7 子程序38——CRT顯示器在單片機(jī)系統(tǒng)中的應(yīng)用 303
6.7.1 OCA-93顯示適配器簡(jiǎn)要介紹 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 模擬信號(hào)采集技術(shù) 318
7.1.2 A/D轉(zhuǎn)換技術(shù) 321
7.1.3 A/D轉(zhuǎn)換器件選型指南 323
7.1.4 數(shù)字邏輯信號(hào)的采集 324
7.2 子程序40——模擬量輸入選擇接口 324
7.2.1 模擬開(kāi)關(guān)的主要技術(shù)指標(biāo) 325
7.2.2 模擬開(kāi)關(guān)的的選型 326
7.2.3 模擬開(kāi)關(guān)接口電路的設(shè)計(jì) 327
7.2.4 用CD4051實(shí)現(xiàn)多路模擬信號(hào)的輸入 329
7.3 子程序41——用模擬比較器實(shí)現(xiàn)A/D轉(zhuǎn)換 332
7.3.1 測(cè)量原理 333
7.3.2 電路設(shè)計(jì) 334
7.3.3 測(cè)量過(guò)程 334
7.3.4 控制程序設(shè)計(jì) 335
7.4 子程序42——8位并行接口ADC080X的接口與驅(qū)動(dòng) 338
7.4.1 ADC0808/ADC0809簡(jiǎn)要介紹 339
7.4.2 ADC0808/0809 與單片機(jī)的接口設(shè)計(jì) 340
7.4.3 編寫(xiě)程序 342
7.5 子程序43——SPI接口A/D轉(zhuǎn)換器TLC2543的應(yīng)用 345
7.5.1 TLC2543簡(jiǎn)要介紹 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簡(jiǎn)要介紹 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簡(jiǎn)要介紹 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 等精度頻率測(cè)量原理 367
7.8.2 設(shè)計(jì)CPLD的邏輯功能 368
7.8.3 頻率信號(hào)預(yù)處理 370
7.8.4 主控制器程序設(shè)計(jì) 371
7.9 子程序47——1-wire測(cè)溫芯片DS18XX的應(yīng)用 375
7.9.1 DS18XX簡(jiǎn)要介紹 375
7.9.2 DS18B20簡(jiǎn)要介紹 376
7.9.3 DS18B20的接口電路 378
7.9.4 控制程序的設(shè)計(jì) 379
7.10 子程序48——時(shí)鐘日歷芯片PCF8563的應(yīng)用 382
7.10.1 PCF8563簡(jiǎn)要介紹 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簡(jiǎn)要介紹 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簡(jiǎn)要介紹 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簡(jiǎn)要介紹 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簡(jiǎn)要介紹 418
8.5.2 PCF8591與單片機(jī)接口電路的設(shè)計(jì) 420
8.5.3 控制程序的設(shè)計(jì) 420
8.6 子程序53——基于AD9850的數(shù)字信號(hào)發(fā)生器 426
8.6.1 AD9850簡(jiǎn)要介紹 426
8.6.2 AD9850接口電路的設(shè)計(jì) 430
8.6.3 控制程序設(shè)計(jì) 433
8.7 子程序54——直流電機(jī)的開(kāi)環(huán)控制 437
8.7.1 直流電機(jī)驅(qū)動(dòng)電路的基本原理 437
8.7.2 直流電動(dòng)機(jī)驅(qū)動(dòng)芯片LMD18200簡(jiǎn)要介紹 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 光電編碼器簡(jiǎn)要介紹 445
8.8.3 接口電路的設(shè)計(jì) 446
8.8.4 控制程序設(shè)計(jì) 446
下載