《流行單片機實用子程式及套用實例》是2002年西安電子科技大學出版社出版的圖書,作者是楊振江、杜鐵軍、李群。
基本介紹
- 書名:流行單片機實用子程式及套用實例
- 作者:楊振江 杜鐵軍 李群
- ISBN:7-5606-1137-0/TP0578
- 定價:16.15元
- 出版社:西安電子科技大學出版社
- 出版時間:2002-07
內容簡介,目錄,
內容簡介
本書從套用角度出發,精選了在我國最流行的MCS-51、PIC和MCS-96三種單片機的實用子程式和典型器件套用實例20多類100餘種。內容包括單片機的基本運算、排序、數碼轉換、數字濾波、軟體抗干擾、串列通信、中斷處理、器件接口等實用程式。書中所涉及的內容大部分都經過上機驗證,具有很強的實用性。有些例子直接來自於科學研究和生產實踐,有些例子稍加修改就可解決工作中的實際問題。
本書對從事智慧型儀器設計、數據採集、自動控制、數字通信及計算機接口等領域工作的科技人員和廣大的單片機愛好者都具有很高的使用和參考價值,也可作為工科大專院校有關課程的教學參考書。
目錄
第 1 章 MCS-51單片機基本運運算元程式 1
1.1 二進制基本運運算元程式 1
1.1.1 兩個半位元組數合併成一個一位元組數子程式RZD-YZD 1
1.1.2 雙位元組數取補子程式D-QBSUB 1
1.1.3 雙位元組補碼(或原碼)加法子程式D-BYJSUB 2
1.1.4 兩個無符號雙位元組數相加子程式DW-ADD1 2
1.1.5 多位元組無符號加法子程式D-WADD1 3
1.1.6 多位元組無符號整數加法子程式D-WADD2 3
1.1.7 雙位元組補碼(或原碼)減法子程式D-QYJSUB 4
1.1.8 多位元組無符號整數減法子程式D-NISUB1 4
1.1.9 多位元組無符號減法子程式D-NISUB2 5
1.1.10 雙位元組無符號乘法子程式D-MULSUB 5
1.1.11 雙位元組乘法子程式H2MUL-SUB 6
1.1.12 雙位元組無符號快速乘法子程式D-MULSUB2 7
1.1.13 多位元組數乘10子程式D-MUL10 8
1.1.14 三位元組乘二位元組乘法子程式H3MUL-SUB 9
1.1.15 四位元組乘四位元組乘法子程式H4MUL-SUB 10
1.1.16 多位元組無符號數乘法子程式D-WMUL1 12
1.1.17 多位元組無符號整數乘法子程式D-NIMUL2 14
1.1.18 雙位元組平方根子程式SQRT-SUB 15#;
1.1.19 雙位元組無符號除法子程式D-WFHDIV 16
1.1.20 多位元組無符號除法子程式D-NIDIV 17
1.1.21 帶符號雙位元組除單位元組除法子程式SHF-1DIV 18
1.1.22 雙位元組除以雙位元組除法子程式SHZ-2DIV 20
1.1.23 三位元組除雙位元組商為三位元組除法子程式SH-32DIV 22
1.1.24 四位元組除雙位元組商為二位元組除法子程式SH-42DIV 23
1.1.25 五位元組除五位元組除法子程式SHZ-5DIV 25
1.1.26 程式轉入相應的分支子程式JMP-XX 26
1.2 二進制符點運運算元程式 27
1.2.1 原碼有符號雙位元組小數乘法子程式YD-2MUL 27
1.2.2 雙位元組帶符號小數乘法子程式SHF-2MUL 28
1.2.3 原碼有符號雙位元組小數除法子程式YD-DIVX 30
1.2.4 尾數用原碼錶示的雙位元組浮點數乘法子程式WS-2FMUL 31
1.2.5 尾數用原碼錶示的雙位元組除單位元組浮點數除法子程式WS-1FDIV 33
1.2.6 浮點數比較大小子程式FD-CMPP 35
1.3 十進制(BCD碼)運運算元程式 36
1.3.1 單位元組BCD碼轉換成壓縮BCD碼子程式D-BCD-Y 36
1.3.2 十進制求補運運算元程式BCD-QMP 36
1.3.3 多位元組十進制加法子程式D-BCDADD 37
1.3.4 多位元組十進制減法子程式D-BCDSSUB 38
1.3.5 多位元組十進制BCD碼減法子程式D-BCDSUB 38
1.3.6 無符號十進制數乘法子程式W-BCDCMUL 39
1.3.7 無符號十進制數除法子程式W-BCDDIV 40
1.3.8 四位元組十進制除法子程式DEV-BCD4 42
1.3.9 多位元組無符號BCD碼除法子程式D-WBCDDIV 44
1.3.10 單位元組BCD碼平方根子程式D-1SQR-SUB 46
1.3.11 雙位元組BCD碼平方根子程式D-2SQR-SUB 47
1.3.12 三位元組BCD碼平方根子程式D-3SQR-SUB 48
第 2 章 MCS-51單片機排序、數碼轉換等子程式 51
2.1 數據排序子程式 51
2.1.1 單位元組無符號數排序子程式SQRT-1WP 51
2.1.2 單位元組無符號數據塊排序子程式SQRT-2WP 51
2.1.3 單位元組帶符號數按由小到大排序子程式SQRT-3WP 52
2.1.4 雙位元組無符號數由小到大排序子程式SQRT-4WP 53
2.1.5 存儲器無符號數據排序子程式DATA-SORT 54
2.1.6 單位元組順序檢索子程式DZ-1FIND 55
2.1.7 測試字元串的長度子程式T-CHAR 56
2.1.8 比較兩個無符號數大小子程式CMP-DX 56
2.1.9 大於256個位元組表的雙位元組查表子程式D-FIND 56
2.2 數碼轉換子程式 57
2.2.1 二進制數轉換成ASCII碼字元串子程式BIN-ASCII 57
2.2.2 四位二進制數轉換為ASCII碼子程式SBIN-ASCII 58
2.2.3 十六進制數轉換成ASCII碼子程式HEX-ASCII 58
2.2.4 十六進制數轉換成二位ASCII碼子程式HEX-ASCII 59
2.2.5 ASCII碼轉換為四位二進制數子程式ASII-SBIN 60
2.2.6 ASCII碼轉換成十六進制數子程式ASCII-HEX 60
2.2.7 二進制數轉換成十六進制數子程式BIN-16BCH 61
2.2.8 BCD碼轉換成二進制數轉換子程式BCD-BIN 61
2.2.9 四位元組非壓縮BCD碼數據轉換成二進制數子程式S-BCD-BIN 62
2.2.10 四位十進制數(BCD碼)轉換為二進制碼子程式S-BCDBIN 62
2.2.11 四位BCD碼轉換成十六位二進制數子程式SZ-16BIN-S 64
2.2.12 雙位元組二進制數轉換成三位元組BCD碼子程式SBIN-BCD 65
2.2.13 雙位元組二進制小數轉換成四位元組BCD碼子程式DXS-SBCD 66
2.2.14 三位元組二進制整數轉換成四位元組BCD碼子程式SBIN-SBCD 67
2.2.15 三位元組小數BCD碼轉換成四位元組二進制數子程式SXB-SBIN 68
2.2.16 帶符號小數BCD碼轉換成二進制數子程式DX-BINSUB 69
2.3 其它實用子程式 70
2.3.1 讀取漢字字模子程式LOAD-ZM 70
2.3.2 點與點畫圖子程式POINT-P 73
2.3.3 幾種散轉程式PRG-JMP1/2/3/4/5 76
2.3.4 子程式調用時的幾種參數傳遞程式PRG-CALL1/2/3/4 80
第 3 章 MCS-51單片機軟體抗干擾、串口等子程式 85
3.1 單片機執行過程中的軟體抗干擾措施 85
3.1.1 採用指令冗餘對程式“跑飛”的一種軟體處理 85
3.1.2 採用軟體陷阱對程式“跑飛”的一種軟體處理 85
3.1.3 使用“看門狗”對程式“跑飛”的軟體處理 87
3.1.4 採用8155晶片對單片機“當機”的處理 89
3.1.5 通過“復位”使系統恢復正常 90
3.2 數字濾波子程式 93
3.2.1 中值數字濾波子程式ZZ-FILLE 93
3.2.2 防脈衝干擾數字濾波子程式FG-FILIE 94
3.2.3 循環冗餘檢測(CRC)子程式LOP-CRCS 96
3.3 中斷服務子程式 97
3.3.1 利用定時/計數器T0、T1端作為外部中斷源子程式TO-T0SUB 97
3.3.2 精確定時子程式TIMES-P 98
3.3.3 擴展外部中斷源子程式IO-POOP 101
3.4 串列通信子程式 102
3.4.1 全雙工串列通信子程式QS-COMMA 102
3.4.2 多機串口通信子程式D-COMMA 105
3.4.3 用外部中斷配合查詢接收串列數據子程式YW-READCX 107
3.4.4 PC機與51單片機的快速串列通信程式COMUN-PC/COMUN-51 110
3.4.5 帶糾錯的串列通信子程式JERR-COM 115
第 4 章 MCS-51單片機應用程式 119
4.1 步進電機控制子程式MOT-DRVB 119
4.1.1 硬體描述 119
4.1.2 應用程式 120
4.2 八位串列輸出A/D轉換器TLC548/549及應用程式 121
4.2.1 硬體描述 121
4.2.2 數據採集程式 124
4.3 11路12位串列A/D轉換器TLC2543及應用程式 124
4.3.1 硬體描述 124
4.3.2 數據採集程式 131
4.4 10位串列D/A轉換器TLC5615及應用程式 133
4.4.1 硬體描述 133
4.4.2 應用程式 135
4.5 八位串列LED顯示驅動器MAX7219/7221及應用程式 136
4.5.1 硬體描述 136
4.5.2 應用程式 142
4.6 液晶顯示驅動器HD61202及套用子程式 143
4.6.1 硬體描述 143
4.6.2 驅動程式的編寫 146
4.7 液晶顯示控制器SED1330/1335/1336/E1330及應用程式 149
4.7.1 硬體描述 149
4.7.2 應用程式 154
4.8 點陣液晶顯示控制器MSM6255及應用程式 162
4.8.1 硬體描述 162
4.8.2 驅動及應用程式 168
4.9 高性能低功耗帶RAM實時時鐘晶片DS1302及應用程式 172
4.9.1 硬體描述 172
4.9.2 應用程式 177
4.10 跨越2000年的時鐘晶片DS12C887及應用程式 182
4.10.1 硬體描述 182
4.10.2 器件的軟體編程 186
4.11 二匯流排串列EEPROM AT24C01/02/04/08/16及應用程式 188
4.11.1 硬體描述 188
4.11.2 應用程式 193
4.12 51單片機中兩種典型的查表程式設計 195
4.12.1 RAM表的程式設計 195
4.12.2 ROM表的程式設計 196
4.13 μP-16B微印表機與51單片機的硬體接口與應用程式 198
4.13.1 硬體接口描述 198
4.13.2 軟體編程 199
第 5 章 PIC單片機與MCS-96單片機應用程式 201
5.1 PIC單片機套用子程式 201
5.1.1 單位元組無符號數BCD碼加法子程式WBCD-ADD 201
5.1.2 單位元組無符號數BCD碼減法子程式WBCD-SUBB 202
5.1.3 雙精度加法運運算元程式DJD-ADD 203
5.1.4 雙精度減法運運算元程式DJD-SUBB 203
5.1.5 雙精度乘法運運算元程式D-MULSUB 204
5.1.6 雙精度除法運運算元程式DJD-DIV 206
5.1.7 二進制數轉換成BCD碼子程式PICBIN-BCD 208
5.1.8 BCD碼轉換成二進制數子程式PICBCD-BIN 209
5.2 MCS-96單片機應用程式 210
5.2.1 單位元組ASCII碼轉換成十六進制數子程式DASCII-HEX 210
5.2.2 單位元組十六進制數轉換成ASCII子程式DHEX-ASCII 210
5.2.3 二通道數據採集程式SCD2-SUB 211
5.2.4 轉速系統的測量與控制程式ZHUAN-CTR 213
5.2.5 用定時器0定時中斷髮送ASCII碼字元串程式T0-INTESUB 216
5.2.6 通過HSO0中斷髮送ASCII碼字串程式HSO0-INTE 218
5.2.7 對應用程式進行加密程式PRG-SAVE 220