《PIC单片机子程序库及运算平台》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:庞〓英,曹海建著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2004
  • ISBN:7810775235
  • 页数:318 页
图书介绍:本书针对PIC单片机提供了178个汇编语言实用子程序和一个汇编语言运算程序生成器,包括科学计算、信息处理、查表技术、串行通信、数字滤波、键盘、显示、打印和各种模块应用等方面。

1.1关于定点算法库 1

1.1.1定点算法库的命名规范 1

第1章 基本概念和规范 1

1.1.2定点算法库的设计原则和接口规范 2

1.1.3定点算法库的使用方法 2

1.2关于浮点算法库 3

1.2.1PIC?单片机汇编语言中的浮点数格式 3

1.2.2浮点算法库的命名规范 3

1.2.3浮点算法库的设计原则和接口规范 4

1.2.4浮点算法库的使用方法 4

1.3关于内置模块和常用外围电路驱动程序库 4

1.4.2用户算式示例 5

1.4.4软件说明及注意事项 5

1.4.3软件使用步骤 5

1.4.1软件支持的运算符 5

1.4关于汇编运算程序生成器的使用说明 5

1.4.5软件界面 6

1.5与用资源列表 7

第2章 定点算法库 10

2.1定点算术运算 10

2.1.1加法 10

PGM001单字节无符号数加法(SUADD) 10

PGM002双字节无符号数加法(DUADD) 10

PGM003多字节无符号数加法(MUADD) 10

PGM004双字节有符号数加法(DSADD) 11

PGM005多字节有符号数加法(MSADD) 12

PGM006单字节非压缩BCD码加法(SUBCDADD) 13

PGM007单字节压缩BCD码加法(SCOBCDADD) 14

PGM008多字节非压缩BCD码加法(MUBCDADD) 14

PGM009多字节压缩BCD码加法(MCOBCDADD) 16

2.1.2减法 17

PGM010双字节无符号数减法(DUSUB) 17

PGM011多字节无符号数减法(MUSUB) 17

PGM012双字节有符号数减法(DSSUB) 18

PGM013多字节有符号数减法(MSSUB) 19

PGM014单字节非压缩BCD码减法(SUBCDSUB) 19

PGM015单字节压缩BCD码减法(SCOBCDSUB) 20

PGM016多字节非压缩BCD码减法(MUBCDSUB) 20

PGM017多字节压缩BCD码减法(MCOBCDSUB) 21

2.1.3求“补” 22

PGM018双字节有符号数求“补”(DSNEG) 22

PGM019多字节有符号数求“补”(MSNEG) 23

PGM020单字节非压缩BCD码求“补”(SUBCDNEG) 23

PGM022多字节非压缩BCD码求“补”(MUBCDNEG) 24

PGM021单字节压缩BCD码求“补”(SCOBCDNEG) 24

PGM023多字节压缩BCD码求“补”(MCOBCDNEG) 25

2.1.4乘法 26

PGM024单字节无符号数乘法(SUMUL) 26

PGM025单字节有符号数乘法(SSMUL) 27

PGM026双字节无符号数乘法(DUMUL) 28

PGM027双字节有符号数乘法(DSMUL) 29

PGM028多字节无符号数乘法(MUMUL) 30

PGM029多字节有符号数乘法(MSMUL) 31

PGM030单字节非压缩BCD码乘法(SUBCDMUL) 34

PGM031单字节压缩BCD码乘法(SCOBCDMUL) 35

PGM032双字节压缩BCD码乘法(DCOBCDMUL) 35

PGM033多字节非压缩BCD码乘法(MUBCDMUL) 37

PGM034多字节压缩BCD码乘法(MCOBCDMUL) 38

PGM035多字节压缩BCD码乘以2(MCOBCDML2) 40

PGM036单字节无符号数除法(SUDIV) 43

PGM037双字节无符号数除法(DUDIV) 43

2.1.5除法 43

PGM038多字节无符号数除法(MUDIV) 46

PGM039单字节有符号数除法(SSDIV) 48

PGM040双字节有符号数除法(DSDIV) 49

PGM041多字节有符号数除法(MSDIV) 50

PGM042单字节压缩BCD码除法(SCOBCDDIV) 52

PGM043双字节压缩BCD码除法(DCOBCDDIV) 54

PGM044多字节非压缩BCD码除法(MUBCDDIV) 55

PGM045多字节压缩BCD码除法(MCOBCDDIV) 57

2.1.6开方 58

PGM046单字节二进制数开方(SBSQR) 58

PGM047双字节二进制数开方(DBSQR) 58

2.2.1二进制到BCD码 60

PGM048小于64H的单字节二进制数到非压缩BCD码(SBTBCD1) 60

2.2码制转换 60

PGM049单字节二进制数到压缩BCD码(SBTBCD2) 61

PGM050双字节二进制数到压缩BCD码(DBTCOBCD) 62

PGM051多字节二进制数到压缩BCD码(MBTCOBCD) 63

PGM052单字节二进制小数到BCD码(SDCBTBCD) 65

PGM053多字节二进制小数到BCD码(MDCBTBCD) 66

2.2.2BCD码到二进制数 68

PGM054双字节非压缩BCD码到二进制数(DUBCDTB) 68

PGM055单字节压缩BCD码到二进制数(SCOBCDTB) 69

PGM056双字节压缩BCD码到二进制数(DCOBCDTB) 69

PGM057多字节非压缩BCD码到二进制数(MUBCDTB) 71

PGM058多字节压缩BCD码到二进制数(MCOBCDTB) 73

PGM059单字节压缩BCD码小数到二进制数(SDCBCDTB) 75

PGM060多字节压缩BCD码小数到二进制数(MDCBCDTB) 75

2.2.3十六进制和ASCII码相互转化 76

PGM0611位十六进制数到ASCII码(SHTASC) 76

PGM0622位十六进制数到ASCII码(DHTASC) 77

PGM063ASCII码转化为十六进制数(ASCTH) 79

2.2.4BCD码和ASCII码相互转化 80

PGM064单字节压缩BCD码转化为ASCII码(SCOBCDTASC) 80

PGM065ASCII码转化为BCD码(ASCTBCD) 81

2.2.5BCD码到BCD码 81

PGM066单字节压缩BCD码转化为非压缩BCD码(SCOBCDTU) 81

PGM067双字节压缩BCD码转化为非压缩BCD码(DCOBCDTU) 81

PGM0683字节压缩BCD码转化为非压缩BCD码(CO3BCDTU) 82

PGM069多字节压缩BCD码转化为非压缩BCD码(MCOBCDTU) 83

PGM0704字节非压缩BCD码转化为压缩BCD码(U4BCDTCO) 84

PGM071多字节非压缩BCD码转化为压缩BCD码(MUBCDTCO) 84

2.3移位 85

2.3.1二进制数移位 85

PGM072多字节二进制数非循环左移1位(MSHL) 85

PGM073多字节二进制数非循环右移1位(MSHR) 85

PGM074多字节二进制数循环左移1位(MROL) 86

PGM075多字节二进制数循环右移1位(MROR) 87

2.3.2BCD码移位 87

PGM076多字节非压缩BCD码非循环左移1位(MUBCDSHL) 87

PGM077多字节非压缩BCD码非循环右移1位(MUBCDSHR) 88

PGM078多字节压缩BCD码非循环左移1位(MCOBCDSHL) 89

PGM079多字节压缩BCD码非循环右移1位(MCOBCDSHR) 90

PGM080多字节非压缩BCD码循环左移1位(MUBCDROL) 91

PGM081多字节非压缩BCD码循环右移1位(MUBCDROR) 92

PGM082多字节压缩BCD码循环左移1位(MCOBCDROL) 92

PGM083多字节压缩BCD码循环右移1位(MCOBCDROR) 93

2.4数据信息的检索和处理 94

2.4.1查找极值 94

PGM084查找单字节无符号数极大值(FSUMA) 94

PGM085查找双字节无符号数极大值(FDUMA) 95

PGM086查找单字节无符号数极小值(FSUMI) 96

PGM087查找双字节无符号数极小值(FDUMI) 98

PGM088查找单字节有符号数极大值(FSSMA) 99

PGM089查找双字节有符号数极大值(FDSMA) 101

PGM090查找单字节有符号数极小值(FSSMI) 103

PGM091查找双字节有符号数极小值(FDSMI) 105

2.4.2查找特定值 107

PGM092顺序查找单字节特定值(FSKW) 107

PGM093顺序查找双字节特定值(FDKW) 107

PGM094对分查找增序排列单字节特定值(DFSKWINC) 109

PGM095对分查找降序排列单字节特定值(DFSKWDEC) 110

2.4.3排序 112

PGM096单字节无符号数增序排列(SUINC) 112

PGM097双字节无符号数增序排列(DUINC) 113

PGM098单字节有符号数增序排列(SSINC) 115

PGM099双字节有符号数增序排列(DSINC) 117

PGM100单字节无符号数降序排列(SUDEC) 120

PGM101双字节无符号数降序排列(DUDEC) 122

PGM102单字节有符号数降序排列(SSDEC) 123

PGM103双字节有符号数降序排列(DSDEC) 124

2.5其他定点子程序 126

2.5.1保护和恢复现场 126

PGM104保护现场(非通用)(SAVE) 126

PGM105恢复现场(非通用)(RENEW) 127

2.5.2软件延时 127

PGM106延时5Nμs(DLY5NUS) 127

PGM107延时Nms(DLYNMS) 128

2.5.3数据校验 129

PGM108奇偶校验(OECHK) 129

PGM109和校验(XRCHK) 129

2.5.4软件滤波 130

PGM110限幅滤波(PROGET) 130

PGM112算术平均值滤波(ARIFILE) 131

PGM111中位值滤波(MEDIAN) 131

3.1浮点库辅助子程序 133

第3章 浮点算法库 133

3.2定点数与浮点数之间的转换 153

PGM113双字节有符号数转化为浮点数(DSTFLO) 153

PGM114浮点数转化为双字节有符号数(FLOTDS) 154

3.3浮点数格式化(左规) 155

PGM115标准浮点数左规(FLONRM) 155

3.4四则运算 156

PGM116两浮点数相加(FLOADD) 156

PGM117两浮点数相减(FLOSUB) 159

PGM118两浮点数相乘(FLOMUL) 160

PGM119两浮点数相除(FLODIV) 161

PGM120两浮点数比较大小(TAEQB,TANEB,TAGEB,TAGTB,TALEB, 163

TALTB) 163

PGM121浮点数取整函数(FLOFLOOR) 169

3.5函数运算 169

PGM122浮点数开平方(FLOSQR) 172

PGM123浮点数正弦和余弦函数(FLOSIN,FLOCOS) 175

PGM124浮点数以e为底的对数函数(FLOLN) 184

PGM125浮点数以10为底的对数函数(FLOLOG10) 191

PGM126浮点数以e为底的指数函数(FLOEXP) 196

PGM127浮点数以10为底的指数函数(FLOEXP10) 202

第4章 内部功能模块和外设的应用程序库 209

4.1定时/计数 209

PGM128定时Nms(TIMNMS) 209

PGM129脉冲计数(COUNTER) 210

PGM130时钟程序(TIMER) 212

4.2CCP功能 215

PGM131方波周期和正脉冲宽度测量(CATCHER) 215

PGM132输出频率和占空比可调的方波(COMPARE) 217

PGM133利用PWM功能实现D/A转换(PWMDA) 219

4.3A/D转换 221

PGM134内置A/D转换模块应用程序(SAD) 221

PGM135PIC与TC7135的接口程序(DRV7135) 221

4.4非易失性数据存储器 225

4.4.1片内数据存储器 225

PGM136从内部E2PROM读取数据(MEETOR) 225

PGM137从内部FLASH读取数据(MFTOR) 225

PGM138向内部E2PROM写入数据(MRTOEE) 227

PGM139向内部FLASH写入数据(MRTOF) 228

4.4.2片外扩展SPI类型E2PROM 230

PGM140从E2PROM指定起始地址读取多字节数据(SPIEERD) 230

PGM141向E2PROM指定起始地址写入多字节数据(SPIEEWR) 231

PGM142向E2PROM写入2字节数据(IICMWB) 235

4.4.3片外扩展I2C类型E2PROM 235

PGM143对E2PROM进行页写入(IICMWP) 237

PGM144从E2PROM当前地址读取数据(IICMRC) 238

PGM145从E2PROM指定地址读取数据(IICMRR) 240

4.5通信功能 244

4.5.1SSP串行通信模块 244

PGM146SPI主控方式发送和接收数据(SPIM) 244

PGM147SPI从动方式发送和接收数据(SPIS) 245

PGM148I2C主控发送双字节数据(同IICMWB) 246

PGM149I2C主控发送多字节数据(同IICMWP) 246

PGM150I2C主控接收多字节数据(同IICMRC) 246

PGM151I2C从动发送和接收(IICS) 246

4.5.2USART串行通信模块 249

PGM152USART异步发送数据(UAT) 249

PGM153USART异步接收数据(UAR) 250

PGM154USART同步主控发送数据(USMT) 251

PGM155USART同步主控接收数据(USMR) 252

PGM156USART同步从动发送数据(USST) 253

PGM157USART同步从动接收数据(USSR) 254

4.5.3红外通信 255

PGM158PIC?与MCP2120的接口程序1(发送TX2120) 255

PGM159PIC?与MCP2120的接口程序2(接收RX2120) 257

4.5.4MODEM通信 259

PGM160MODEM拨号和发送数据(MODEMT) 259

PGM161MODEM接收数据(MODEMR) 264

4.6键盘显示控制 269

PGM162矩阵式键盘扫描程序(ROWSCAN) 269

PGM163串行动态扫描显示(SDDP) 273

PGM164PIC?与键盘显示控制器HD7279A的接口程序(DRV7279) 275

PGM165LCD显示控制模块SED1335的初始化程序(INIT1335) 280

PGM166SED1335的字符和汉字显示程序(CHR1335) 284

PGM167SED1335的块状光标显示程序(CSR1335) 288

PGM168SED1335的一般图形显示程序(DOT1335) 290

PGM169SED1335任意两点之间显示直线(LINE1335) 293

4.7打印机驱动 296

PGM170WH40-PT系列微打初始化程序(PRINTINIT) 296

PGM171汉字打印程序(PRINTZI) 296

PGM172点打印程序(PRINTP) 298

PGM173方波打印程序(PRINTJU) 300

4.8其他芯片驱动 304

PGM174D/A转换芯片TC1320的驱动程序(DRV1320) 304

PGM175数字温度传感器芯片TMP100的驱动程序(DRV100) 306

PGM176数字温度传感器芯片TC77的驱动程序(DRV77) 309

4.9虚拟串行总线软件包 312

PGM177虚拟I2C总线程序(VI2C) 312

PGM178虚拟SPI总线程序(VSPI) 316

附录 光盘内容简介 317

参考文献 318