您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 51单片机汇编程序库
首页|基础教程|单片机设计实例|常用芯片|电子基础当前位置:单片机教程单片机设计实例浏览文章今天是:单片机设计实例51单片机汇编程序库作者:来源:本站原创点击数:更新时间:2007年09月07日下面是一些51单片机汇编语言编程常用到的子程序代码库,点击即可跳到您所需要的汇编程序位置,如要补充请联系我1、片内RAM初始化子程序2、片外RAM初始化子程序3、片外RAM初始化子程序(双字节个单元)4、内部RAM数据复制程序5、外部RAM数据复制程序6、外部RAM数据复制程序7、外部RAM数据复制到内部RAM程序8、限幅滤波程序9、中位值滤波程序10、N点算术平均滤波11、N点加权平均滤波12、一阶加权滞后滤波程序13、双字节取补程序14、N节取补程序15、双字节无符号数加法程序16、N字节无符号数加法程序17、双字节无符号数减法程序18、N字节无符号数减法程序19、单字节无符号数乘法程序20、单字节无符号数乘法程序21、单字节无符号数乘法程序22、双字节无符号数乘法程序23、双字节无符号数乘法程序24、N字节无符号数乘法程序25、单字节无符号除法程序推荐文章单片机一键多功能按键识别设阅读排行keil教程单片机课程设计单片机DS18B20水温控制系统单片机电子时钟设计单片机交通灯设计单片机数字钟设计单片机时钟设计单片机键盘程序(4×4矩阵式四组智力竞赛抢答器电路设计单片机秒表设计相关文章暂无相关链接26、单字节无符号除法程序27、双字节无符号除法程序28、N字节无符号除法程序(组合)29、N字节无符号除法程序30、N字节数据左移程序31、原码有符号双字节减法程序32、原码有符号双字节加法程序33、原码有符号双字节乘法程序34、原码有符号双字节除法程序35、单字节顺序查找程序36、单字节顺序查找程序37、双字节字符串顺序查找程序38、双字节字符串顺序查找程序39、N字节字符串顺序查找程序40、单字节最值查找程序41、浮点数顺序查找程序42、浮点数最值查找程序43、单字节折半查找程序;片内RAM初始化子程序IBCLR:MOVA,R0MOVR1,ACLRAIBC1:MOV@R1,AINCR1DJNZR7,IBC1RET;片外RAM初始化子程序EBCLR1:MOVA,ADDPLMOVDPL,AMOVA,ADDPHMOVDPH,ACLRCEBC11:MOVX@DPTR,AINCDPTRDJNZR7,EBC11RET;片外RAM初始化子程序(双字节个单元)EBCLR2:MOVA,ADDPLMOVDPL,AMOVA,ADDPHMOVDPH,AMOVA,R7JZEBC21INCR6EBC21:CLRAMOVX@DPTR,AINCDPTRDJNZR7,EBC21DJNZR6,EBC21RET;内部RAM数据复制程序;入口:R0,R7;占用资源:A;堆栈需求:2字节;出口:R1IBMOV:MOVA,R0ADDA,R7MOVR0,AMOVA,R1ADDA,R7MOVR1,AIBM1:DECR0DECR1MOVA,@R0MOV@R1,ADJNZR7,IBM1RET;外部RAM数据复制程序;入口:ADDPH,ADDPL,R7;占用资源:ACC;堆栈需求:2字节;出口:R0,R1EBMOV1:MOVA,ADDPLADDA,R7MOVDPL,ACLRAADDCA,ADDPHMOVDPH,AMOVA,R7ADDA,R1XCHA,R0ADDCA,#00HMOVP2,AEBM11:DECR0CJNER0,#0FFH,EBM12DECP2EBM12:DECDPLMOVA,DPLCJNEA,#0FFH,EBM13DECDPHEBM13:MOVXA,@R0MOVX@DPTR,ADJNZR7,EBM11RET;外部RAM数据复制程序;入口:ADDPH,ADDPL,R6,R7;占用资源:ACC;堆栈需求:2字节;出口:R0,R1EBMOV2:MOVA,ADDPLADDA,R7MOVDPL,AMOVA,R6ADDCA,ADDPHMOVDPH,AMOVA,R7ADDA,R1XCHA,R0ADDCA,R6MOVP2,AMOVA,R7JZEBM21INCR6EBM21:DECR0CJNER0,#0FFH,EBM22DECP2EBM22:DECDPLMOVA,DPLCJNEA,#0FFH,EBM23DECDPHEBM23:MOVXA,@R0MOVX@DPTR,ADJNZR7,EBM21DJNZR6,EBM21RET;外部RAM数据复制到内部RAM程序;入口:ADDPH,ADDPL,R7;占用资源:ACC;堆栈需求:2字节;出口:R0ITEMOV:MOVA,ADDPLADDA,R7MOVDPL,AMOVA,ADDPHADDCA,#00HMOVDPH,AMOVA,R0ADDA,R7MOVR0,AITEM1:DECR0DECDPLMOVA,DPLCJNEA,#0FFH,ITEM2DECDPHITEM2:MOVXA,@DPTRMOV@R0,ADJNZR7,ITEM1RET;限幅滤波程序;入口:A,SDAT,DELTY;占用资源:B;堆栈需求:2字节;出口:AJUGFILT:MOVB,ACLRCSUBBA,SDATJNCJUGFT1CPLAINCAJUGFT1:SETBASUBBA,#DELTYJNCJUGFT3MOVA,SDATRETJUGFT3:MOVA,BMOVSDAT,ARET;中位值滤波程序;入口:ADDPH,ADDPL,N;占用资源:ESELSORT;堆栈需求:4字节;出口:AMEDFILT:LCALLESELSORTMOVA,NCLRCRRCAADDA,ADDPLMOVDPL,AMOVA,ADDPHMOVDPH,AJNCMEDFT1INCDPHMEDFT1:MOVXA,@DPTRRET;N点算术平均滤波;入口:ADDPH,ADDPL,N;占用资源:B,R3,R4;堆栈需求:2字节;出口:AAVFILT:MOVA,ADDPLMOVDPL,AMOVA,ADDPHMOVDPH,ACLRAMOVR3,AMOVR4,AMOVR7,NAVFT1:MOVXA,@DPTRINCDPTRADDA,R4MOVR4,AJNCAVFT2INCR3AVFT2:DJNZR7,AVFT1MOVR7,NMOVR2,#00HLCALLNDIV31MOVA,R4RET;N点加权平均滤波;入口:ADDPH,ADDPL,N;占用资源:B,R3,R4;堆栈需求:2字节;出口:AQAVFILT:CLRAMOVR3,AMOVR4,AMOVR7,NMOVP2,ADDPHMOVR1,ADDPLMOVDPTR,#QAVTABQAVFT1:MOVCA,@A+DPTRMOVB,AMOVXA,@R1INCDPTRINCR1MULABADDA,R4MOVR4,AMOVA,BADDCA,R3MOVR3,ADJNZR7,QAVFT1MOVA,R4JNBACC.7,QAVFT2INCR3QAVFT2:MOVA,R3RETQAVTAB:DB;一阶加权滞后滤波程序;入口:A,DELTY;占用资源:B,R3,R4;堆栈需求:2字节;出口:ABQFILT:MOVB,ACLRAMOVDPTR,#ABTABMOVCA,@A+DPTRMULABMOVR4,AMOVR3,BMOVA,#01HMOVCA,@A+DPTRMOVB,DELTYMULABADDA,R4MOVR4,AMOVA,BADDCA,R3MOVR3,AMOVA,R4JNBACC.7,FT1INCR3FT1:MOVA,R3MOVDELTY,ARETBQTAB:DB80H,80H;双字节取补程序/(R3R4)=(R3R4);入口:R3,R4;占用资源:ACC;堆栈需求:2字节;出口:R3,R4CMPT:MOVA,R4CPLAADDA,#01HMOVR4,AMOVA,R3CPLAADDCA,#00HMOVR3,ARET;N节取补程序/([R0])=([R0]);入口:R0,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R0NCMPTN:MOVB,R0SETBCNCPT1:MOVA,@R0CPLAADDCA,#00HMOV@R0,AINCR0DJNZR7,NCPT1MOVR0,BRET;双字节无符号数加法程序(R3R4+R6R7)=(R3R4);入口:R3,R4,R6,R7;占用资源:ACC;堆栈需求:2字节;出口:R3,R4,CFNADD:MOVA,R4ADDA,R7MOVR4,AMOVA,R3ADDCA,R6MOVR3,ARET;N字节无符号数加法程序([R0]+[R1])=([R0]);入口:R0,R1,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R0,CFNADDN:MOVB,R0CLRCNADN1:MOVA,@R0ADDCA,@R1MOV@R0,AINCR0INCR1DJNZR7,NADN1MOVR0,BRET;双字节无符号数减法程序(R3R4-R6R7)=(R3R4);入口:R3,R4,R6,R7;占用资源:ACC;堆栈需求:2字节;出口:R3,R4NSUB:MOVA,R4CLRCSUBBA,R7MOVR4,AMOVA,R3SUBBA,R6MOVR3,ARET;N字节无符号数减法程序([R0]-[R1])=([R0]);入口:R0,R1,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R0,CFNSUBN:MOVB,R0MOVR7,NCLRCNSUBN1:MOVA,@R0SUBBA,@R1MOV@R0,AINCR0INCR1DJNZR7,NSUBN1MOVR0,BRET;单字节无符号数乘法程序(R3R4*R7)=(R2R3R4);入口:R3,R4,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R2,R3,R4NMUL21:MOVA,R4MOVB,R7MULABMOVR4,AMOVA,BXCHA,R3MOVB,R7MULABADDA,R3MOVR3,ACLRAADDCA,BMOVR2,ACLROVRET;单字节无符号数乘法程序(R2R3R4*R7)=(R5R2R3R4);入口:R2,R3,R4,R6,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R5,R2,R3,R4NMUL31:MOVA,R4MOVB,R7MULABMOVR4,AMOVA,BXCHA,R3MOVB,R7MULABADDA,R3MOVR3,ACLRAADDCA,BXCHA,R2MOVB,R7MULABADDA,R2MOVR2,ACLRAADDCA,BMOVR5,ACLROVRET;单字节无符号数乘法程序(R5R2R3R4*R7)=(R7R5R2R3R4);入口:R5,R2,R3,R4,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R7,R5,R2,R3,R4NMUL41:MOVA,R4MOVB,R7MULABMOVR4,AMOVA,BXCHA,R3MOVB,R7MULABADDA,R3MOVR3,ACLRAADDCA,BXCHA,R2MOVB,R7MULABADDA,R2MOVR2,ACLRAADDCA,BXCHA,R5MOVB,R7MULABADDA,R5MOVR5,ACLRAADDCA,BMOVR7,ACLROVRET;双字节无符号数乘法程序(R3R4*R6R7)=(R5R2R3R4);入口:R3,R4,R6,R7;占用资源:ACC,B;堆栈需求:2字节;出口:R5,R2,R3,R4NMUL22:MOVA,R4MOVB,R7MULABXCHA,R4MOVR5,BMOVB,R6MULABADDA,R5MOVR5,ACLRAADDCA,BMOVR2,AMOVA,R3MOVB,R7MULABADDA,R5MOVR5,AMOVA,BADDCA,R2MOVR2,ACLRAADDCA,#00HXCHA,R3MOVB,R6MULABADDA,R2MOVR2,AMOVA,BADDCA,R3XCHA,R5MOVR3,ACLROVRET;双字节无符号数乘法程序(R2R3R4*
本文标题:51单片机汇编程序库
链接地址:https://www.777doc.com/doc-3826487 .html