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