第1章 51單片機的內部模塊 11.1 51單片機及其應用系統(tǒng)概述 11.1.1 51單片機應用系統(tǒng)的構成和設計流程 21.1.2 “最小”51單片機應用系統(tǒng) 41.2 51單片機內部模塊的基礎應用 51.2.1 內部模塊基礎 51.2.2 并行I/O模塊 61.2.3 定時計數器模塊 71.2.4 中斷系統(tǒng)和外部中斷模塊 131.2.5 串行通信模塊 181.3 51單片機內部模塊的高級應用 241.3.1 使用定時計數器擴展外部中斷 241.3.2 使用I/O端口模擬串行通信端口 251.3.3 串行通信模塊的波特率自適應 291.3.4 使用軟件擴展多級中斷應用 321.3.5 定時計數器的可控PWM輸出 36第2章 51單片機的常用算法和函數模塊 392.1 51單片機的庫函數基礎 392.1.1 函數庫和頭文件分類 392.1.2 自定義庫 402.1.3 庫函數的使用 412.2 51單片機常用函數模塊 412.2.1 內部函數_crol_() 412.2.2 內部函數_nop_() 422.2.3 輸入/輸出函數putchar() 442.2.4 輸入/輸出函數printf() 452.2.5 隨機數生成函數rand()和srand() 482.3 51單片機的常用算法模塊 522.3.1 統(tǒng)計字節(jié)中1的個數 522.3.2 軟件延時/定時 532.3.3 排序算法 53第3章 擴展51單片機外圍模塊的方法 553.1 地址—數據總線擴展 553.2 串行通信模塊擴展 583.3 I2C總線擴展 583.3.1 I2C總線基礎 583.3.2 I2C總線接口擴展的驅動庫函數 613.4 SPI總線擴展 673.4.1 SPI總線基礎 673.4.2 SPI總線接口擴展的驅動庫函數 693.5 1-wire總線擴展 703.5.1 1-wire總線擴展原理 703.5.2 1-wire總線擴展的驅動庫函數 72第4章 51單片機的I/O引腳模塊 754.1 譯碼器模塊 754.1.1 譯碼器模塊的應用場合 754.1.2 譯碼器模塊的應用基礎 764.1.3 譯碼器模塊的應用實例——簡易流水燈 784.2 鎖存器模塊 794.2.1 鎖存器模塊的應用場合 804.2.2 鎖存器模塊的應用基礎 804.2.3 鎖存器模塊的應用實例——秒表 824.3 三態(tài)門模塊 844.3.1 三態(tài)門模塊的應用場合 844.3.2 三態(tài)門模塊的應用基礎 844.3.3 三態(tài)門模塊的應用實例——地址輸入 864.4 串行輸入并行輸出模塊 884.4.1 串行輸入并行輸出模塊的應用場合 884.4.2 串行輸入并行輸出模塊的應用基礎 884.4.3 串行輸入并行輸出模塊的應用實例——秒計時 904.5 并行輸入串行輸出模塊 934.5.1 并行輸入串行輸出模塊的應用場合 934.5.2 并行輸入串行輸出模塊的應用基礎 934.5.3 并行輸入串行輸出模塊的應用實例——讀取撥碼開關狀態(tài) 954.6 可編程I/O擴展芯片Intel8255 964.6.1 可編程I/O擴展芯片Intel8255的應用場合 964.6.2 可編程I/O擴展芯片Intel8255的應用基礎 974.6.3 可編程I/O擴展芯片Intel8255的應用實例——擴展輸入/輸出 1004.7 I/O引腳模塊的應用實例——電子抽獎系統(tǒng) 1024.7.1 電子抽獎系統(tǒng)的需求分析 1034.7.2 電子抽獎系統(tǒng)的電路設計 1034.7.3 電子抽獎系統(tǒng)的應用代碼 105第5章 51單片機的用戶輸入通道模塊 1115.1 獨立按鍵 1115.1.1 獨立按鍵的應用場合 1115.1.2 獨立按鍵的應用基礎 1125.1.3 獨立按鍵的應用實例——加減計數 1135.2 撥碼開關 1165.2.1 撥碼開關的應用場合 1165.2.2 撥碼開關的應用基礎 1175.2.3 撥碼開關的應用實例——開關狀態(tài)顯示 1185.3 行列掃描鍵盤 1205.3.1 行列掃描鍵盤的應用場合 1215.3.2 行列掃描鍵盤的應用基礎 1215.3.3 行列掃描鍵盤的應用實例 1235.4 PS/2鍵盤 1265.4.1 PS/2鍵盤的應用場合 1265.4.2 PS/2鍵盤的應用基礎 1265.4.3 PS/2鍵盤的應用實例——掃描碼輸出 1305.5 用戶輸入模塊的應用實例——帶計時功能的計算器 1375.5.1 計算器的需求分析 1385.5.2 計算器的電路設計 1395.5.3 計算器的應用代碼 140第6章 51單片機的LED顯示模塊 1516.1 發(fā)光二極管 1516.1.1 發(fā)光二極管的應用場合 1516.1.2 發(fā)光二極管的應用基礎 1526.1.3 發(fā)光二極管的應用實例——流水燈 1536.2 單位數碼管 1556.2.1 單位數碼管的應用場合 1556.2.2 單位數碼管的應用基礎 1556.2.3 單位數碼管的應用實例——“流水數字”顯示 1596.3 多位數碼管 1616.3.1 多位數碼管的應用場合 1616.3.2 多位數碼管的應用基礎 1616.3.3 多位數碼管的應用實例——移動數字效果顯示 1656.4 數碼管驅動芯片MAX7219 1676.4.1 數碼管驅動芯片MAX7219的應用場合 1676.4.2 數碼管驅動芯片MAX7219的應用基礎 1686.4.3 數碼管驅動芯片MAX7219的應用實例——當前日期顯示 1756.5 數碼管和鍵盤驅動芯片CH452 1766.5.1 數碼管和鍵盤驅動芯片CH452的應用場合 1766.5.2 數碼管和鍵盤驅動芯片CH452的應用基礎 1766.5.3 數碼管和鍵盤驅動芯片CH452的應用實例——串口數據顯示和按鍵狀態(tài)返回 1906.6 LED顯示模塊的應用實例——簡易頻率計 1936.6.1 簡易頻率計的需求分析 1936.6.2 簡易頻率計的電路設計 1956.6.3 簡易頻率計的應用代碼 196第7章 51單片機的液晶顯示模塊 2017.1 數字字符液晶1602 2017.1.1 數字字符液晶1602的應用場合 2017.1.2 數字字符液晶1602的應用基礎 2027.1.3 數字字符液晶1602的應用實例——字符串顯示 2087.2 漢字圖形液晶12864 2087.2.1 漢字圖形液晶12864的應用場合 2087.2.2 漢字圖形液晶12864的應用基礎 2097.2.3 漢字圖形液晶12864的應用實例——混合顯示 2157.3 點陣顯示模塊 2217.3.1 點陣顯示模塊的應用場合 2217.3.2 點陣顯示模塊的應用基礎 2217.3.3 點陣顯示模塊的應用實例——“流水字符”顯示 2247.4 帶字庫的漢字圖形液晶12864 2277.4.1 帶字庫的漢字圖形液晶12864的應用場合 2277.4.2 帶字庫的漢字圖形液晶12864的應用基礎 2287.4.3 帶字庫的漢字圖形液晶12864的應用實例——顯示串口接收數據和圖形 2387.5 液晶顯示模塊的應用實例——俄羅斯方塊 2427.5.1 俄羅斯方塊的需求分析 2427.5.2 俄羅斯方塊的電路設計 2447.5.3 俄羅斯方塊的應用代碼 245第8章 51單片機的語音和打印輸出模塊 2598.1 蜂鳴器 2598.1.1 蜂鳴器的應用場合 2598.1.2 蜂鳴器的應用基礎 2608.1.3 蜂鳴器的應用實例——按鍵提示音 2628.2 錄放音芯片 2648.2.1 錄放音芯片的應用場合 2648.2.2 錄放音芯片的應用基礎 2648.2.3 錄放音芯片的應用實例——錄放操作 2688.3 文本語言芯片 2718.3.1 文本語音芯片的應用場合 2718.3.2 文本語音芯片的應用基礎 2718.3.3 文本語音芯片的應用實例——來電提示音 2798.4 打印機模塊 2818.4.1 打印機模塊的應用場合 2818.4.2 打印機模塊的應用基礎 2818.4.3 打印機模塊的應用實例——溫度打印輸出 2858.5 語音和打印輸出的應用實例——簡易電子琴 2888.5.1 簡易電子琴的需求分析 2888.5.2 簡易電子琴的電路設計 2908.5.3 簡易電子琴的應用代碼 291第9章 51單片機的驅動和執(zhí)行機構 2979.1 三極管 2979.1.1 三極管的應用場合 2979.1.2 三極管的應用基礎 2989.1.3 三極管的應用實例——大功率燈泡閃爍 2999.2 達林頓管 3009.2.1 達林頓管的應用場合 3009.2.2 達林頓管的應用基礎 3009.2.3 達林頓管的應用實例——發(fā)光二極管流水點亮 3029.3 光電隔離器 3029.3.1 光電隔離器的應用場合 3039.3.2 光電隔離器的應用基礎 3049.3.3 光電隔離器的應用實例 3069.4 直流電動機 3069.4.1 直流電動機的應用場合 3069.4.2 直流電動機的應用基礎 3069.4.3 直流電動機的應用實例——串口控制直流電動機轉動 3099.5 步進電動機 3129.5.1 步進電動機的應用場合 3129.5.2 步進電動機的應用基礎 3129.5.3 步進電動機的應用實例——串口控制步進電動機轉動 3179.6 步進電動機驅動模塊 3219.6.1 步進電動機驅動模塊的應用場合 3219.6.2 步進電動機驅動模塊的應用基礎 3219.6.3 步進電動機驅動模塊的應用實例——按鍵控制步進電動機轉動 3239.7 繼電器 3269.7.1 繼電器的應用場合 3279.7.2 繼電器的應用基礎 3279.7.3 繼電器的應用實例——繼電器控制 3299.8 驅動和執(zhí)行機構的應用實例——天車控制系統(tǒng) 3329.8.1 天車控制系統(tǒng)的需求分析 3329.8.2 天車控制系統(tǒng)的電路設計 3339.8.3 天車控制系統(tǒng)的應用代碼 335第10章 51單片機的A/D模塊 33910.1 A/D模塊基礎 33910.1.1 A/D變換的過程 34010.1.2 A/D變換的應用電路構成 34210.1.3 A/D變換的保持電路 34310.1.4 A/D芯片的分類 34310.1.5 A/D芯片的選擇 34310.1.6 A/D芯片對電源的需求 34510.2 8位并行8通道A/D芯片 34510.2.1 ADC0809的應用基礎 34510.2.2 ADC0809的應用實例——串口輸出ADC0809多通道模擬信號采集 35310.3 12位并行8通道A/D芯片 35610.3.1 MAX197的應用基礎 35610.3.2 MAX197的應用實例——串口輸出MAX197多通道模擬信號采集 36010.4 12位串行多通道A/D芯片 36310.4.1 TLC2543的應用基礎 36410.4.2 TLC2543的應用實例——串口輸出TLC2543多通道模擬信號采集 36910.5 I2C接口高精度A/D芯片 37110.5.1 ADS1100的應用基礎 37110.5.2 ADS1100的應用實例 38010.6 16位串行接口多通道A/D芯片 38010.6.1 AD977A的應用基礎 38010.6.2 AD977A的應用實例 38810.7 A/D模塊的應用實例——太陽能電池監(jiān)控模塊 38810.7.1 太陽能電池監(jiān)控模塊的需求分析 38810.7.2 太陽能電池監(jiān)控模塊的電路設計 38910.7.3 太陽能電池監(jiān)控模塊的應用代碼 393第11章 51單片機的D/A模塊 40711.1 D/A模塊基礎 40711.1.1 D/A轉換的過程 40711.1.2 D/A芯片的分類 40911.1.3 D/A芯片的選擇 40911.1.4 D/A芯片對電源的需求 41011.2 8位并行D/A芯片 41111.2.1 DAC0832的應用基礎 41111.2.2 DAC0832的應用實例——模擬波形輸出 41611.3 8位串行D/A芯片 42011.3.1 MAX517的應用基礎 42011.3.2 MAX517的應用實例——輸出正弦波 42211.4 10位串行D/A芯片 42411.4.1 TLC5615的應用基礎 42411.4.2 TLC5615的應用實例——輸出鋸齒波 42711.5 12位并行D/A芯片 42811.5.1 MAX527的應用基礎 42811.5.2 MAX527的應用實例 43311.6 16位串行D/A芯片 43311.6.1 MAX541的應用基礎 43311.6.2 MAX541的應用實例 43611.7 串行A/D和D/A芯片 43611.7.1 PCF8591的應用基礎 43711.7.2 PCF8591的應用實例——AD模擬量采集和DA模擬量輸出 44011.8 信號發(fā)生器芯片MAX038 44111.8.1 MAX038的應用基礎 44111.8.2 MAX038的應用實例 44411.9 D/A模塊的應用實例——簡易波形發(fā)生器 44411.9.1 簡易波形發(fā)生器的需求分析 44411.9.2 簡易波形發(fā)生器的電路設計 445
11.9.3 簡易波形發(fā)生器的應用代碼 446第12章 51單片機的時鐘傳感器模塊 45112.1 51單片機應用系統(tǒng)中的時鐘信息獲取 45112.2 內部定時計數器 45212.3 并行總線接口時鐘模塊 45312.3.1 DS12C887的應用基礎 45312.3.2 DS12C887的應用實例——路燈自動開關控制 46112.4 I2C總線接口時鐘模塊 46312.4.1 PCF8563的應用基礎 46412.4.2 PCF8563的應用實例 47212.5 SPI總線接口時鐘模塊 47412.5.1 DS1302的應用基礎 47412.5.2 DS1302的應用實例——時鐘信息讀取 47912.6 時鐘傳感器模塊的應用實例——簡單數字時鐘 48112.6.1 簡單數字時鐘的需求分析 48112.6.2 簡單數字時鐘的電路設計 48212.6.3 簡單數字時鐘的應用代碼 483第13章 51單片機的溫度傳感器模塊 48513.1 51單片機應用系統(tǒng)中的溫度信息獲取 48513.2 1-wire總線接口溫度模塊 48613.2.1 DS18B20的應用基礎 48713.2.2 DS18B20的應用實例——DS18B20溫度數據采集 49213.3 I2C總線接口溫度模塊 49413.3.1 DS1621的應用基礎 49413.3.2 DS1621的應用實例——DS1621溫度數據采集 49813.4 SPI總線接口溫度模塊 50013.4.1 TC77的應用基礎 50013.4.2 TC77的應用實例 50413.5 溫度傳感器模塊的應用實例——多點溫度采集系統(tǒng) 50413.5.1 多點溫度采集系統(tǒng)的需求分析 50513.5.2 多點溫度采集系統(tǒng)的電路設計 50613.5.3 多點溫度采集系統(tǒng)的應用代碼 507第14章 51單片機的常用其他傳感器模塊 51514.1 溫度傳感器 51514.1.1 SHT75的應用基礎 51514.1.2 SHT75的應用實例——SHT75濕度和溫度數據采集 52314.2 壓力傳感器 52514.2.1 MPX4115的應用基礎 52514.2.2 MPX4115的應用實例 52714.3 定位傳感器 52714.3.1 數字羅盤基礎 52714.3.2 GPS模塊基礎 52814.3.3 NMEA-1083規(guī)范 52814.4 數字羅盤傳感器 53214.4.1 HMR3000的應用基礎 53214.4.2 HMR3000的應用實例——航向、俯仰、橫滾數據采集 53514.5 GPS傳感器 53714.5.1 GARMIN 25LP的應用基礎 53714.5.2 GARMIN 25LP的應用實例——GPS地理信息采集 54114.6 傾角傳感器 54514.6.1 TS1120的應用基礎 54614.6.2 TS1120的應用實例 54814.7 超聲距離傳感器 54814.7.1 HC-SR04的應用基礎 54914.7.2 HC-SR04的應用實例——距離測量 55114.8 傳感器模塊的應用實例——手持傾角儀 55414.8.1 手持傾角儀的需求分析 55414.8.2 手持傾角儀的電路設計 55414.8.3 手持傾角儀的應用代碼 556第15章 51單片機的有線通信模塊 56715.1 51單片機的有線通信模塊設計概述 56715.2 RS-232協(xié)議芯片 56815.2.1 MAX232的應用基礎 56815.2.2 MAX232的應用實例 57115.3 RS-485協(xié)議芯片 57215.3.1 MAX485的應用基礎 57215.3.2 MAX485的應用實例——51單片機和PC進行遠程數據交換 57415.4 RS-422協(xié)議芯片 57615.4.1 MAX491的應用基礎 57615.4.2 MAX491的應用實例 57915.5 高速光電隔離芯片 57915.5.1 6N137的應用基礎 58015.5.2 6N137的應用實例 58215.6 CAN總線芯片 58315.6.1 SJA1000的應用基礎 58315.6.2 SJA1000的應用實例——串口CAN總線橋 58815.7 電力線總線芯片 59215.7.1 SSC P300的應用基礎 59315.7.2 SSC P300的應用實例——SSC P300數據發(fā)送和接收 59715.8 USB通信橋芯片 60015.8.1 CP2102的應用基礎 60015.8.2 CP2102的應用實例 60515.9 51單片機應用系統(tǒng)的通信模型和通信協(xié)議設計 60515.9.1 51單片機應用系統(tǒng)的通信模型 60615.9.2 51單片機應用系統(tǒng)的通信協(xié)議設計 60615.10 有線通信模塊的應用實例——遠程倉庫溫度監(jiān)測系統(tǒng) 60715.10.1 遠程倉庫濕度監(jiān)測系統(tǒng)的需求分析 60715.10.2 遠程倉庫濕度監(jiān)測系統(tǒng)的電路設計 60815.10.3 遠程倉庫濕度監(jiān)測系統(tǒng)的應用代碼 609第16章 51單片機的無線通信模塊 61316.1 51單片機的無線通信模塊設計概述 61316.2 紅外芯片 61316.2.1 紅外芯片的應用基礎 61416.2.2 紅外芯片的應用實例——紅外按鍵信息解析 62116.3 433MHz無線通信模塊 62316.3.1 無線通信模塊的應用基礎 62316.3.2 無線通信模塊的應用實例——PTR8000串口通信橋 633第17章 51單片機的小容量存儲模塊 63717.1 外部單口RAM芯片 63717.1.1 6264的應用基礎 63817.1.2 6264的應用實例——外部大容量RAM的使用 64117.2 外部雙口RAM芯片 64317.2.1 IDT7132的應用基礎 64317.2.2 IDT7132的應用實例——使用雙口RAM進行雙機通信 64717.3 外部ROM芯片 64917.3.1 2716的應用基礎 64917.3.2 2716的應用實例 65117.4 FIFO芯片 65117.4.1 CY7C419的應用基礎 65117.4.2 CY7C419的應用實例——使用FIFO存放臨時數據 65417.5 I2C總線接口的E2PROM芯片 65717.5.1 AT24系列芯片的應用基礎 65817.5.2 AT24系列芯片的應用實例——使用AT24C04存放用戶數據 66517.6 SPI總線接口的E2PROM芯片 66817.6.1 93系列芯片的應用基礎 66817.6.2 93系列芯片的應用實例——使用93C46存放用戶數據 674 17.7 接觸式加密智能卡 67717.7.1 接觸式智能卡基礎 67717.7.2 SLE4442接觸式加密卡的應用基礎 67917.7.3 SLE4442的應用實例——SLE4442卡的讀寫 69017.8 非接觸式智能卡 69317.8.1 非接觸式智能卡基礎 69317.8.2 非接觸式智能卡讀寫模塊的應用基礎 69717.8.3 非接觸式智能卡讀寫模塊的應用實例 709第18章 51單片機的大容量存儲模塊 71118.1 Flash芯片 71118.1.1 Flash芯片的應用基礎 71118.1.2 Flash的應用實例——K9F5608芯片的應用 71718.2 U盤讀寫芯片 71718.2.1 CH376的應用基礎 71718.2.2 CH376的應用實例——U盤讀寫 74118.3 SD卡 74518.3.1 SD卡的應用基礎 74518.3.2 SD卡的應用實例 756