Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
CRC16校验的程序
来源:www.EC66.com   作者:
字体大小:[大][中][小]

;==========================================================
        DATA_BUFF       EQU        10H
        CRC_NUM         EQU        22H
        CRC_DATA        EQU        23H
        CRC_POINTER     EQU        30H
;==========================================================
        CRC_XORH        EQU        10H        ;11021=2^16+2^12+2^5+1
        CRC_XORL        EQU        21H
;==========================================================
               ORG 0000H
               AJMP MAIN
MAIN:      MOV CRC_DATA,#DATA_BUFF
           MOV CRC_NUM,#3
           ACALL CRC
           AJMP MAIN
;==========================================================
;               *****RC校验子程序*****
;               多项式=2^16+2^12+2^5+1=11021H
;CRC_DATA-----进行CRC校验的数据指针,保存需要进行CRC校验的数据首址
;CRC_POINTER--缓冲保存CRC校验数据首址
;CRC_NUM------保存所需进行CRC校验的字节数
;R7-----------所有进行CRC校验字节的位数,=(CRC_NUM+2)*8-16
;==========================================================
CRC:       MOV R0,CRC_DATA
           MOV R1,#CRC_POINTER
           MOV R2,CRC_NUM
           MOV A,CRC_NUM       ;R7=CRC_NUM*8
           ADD A,#2
           RL A
           RL A
           RL A
           CLR C
           SUBB A,#16           ;CRC码为2个字节,16位
           MOV R7,A
CRC1:      MOV A,@R0            ;缓存原数据
           MOV @R1,A
           INC R0
           INC R1
           DJNZ R2,CRC1
           CLR A                ;在原数据后添加2个零字节
           MOV @R1,A
           INC R1
           MOV @R1,A
CRC2:      MOV A,#CRC_POINTER   ;从最后一个字节开始左移一位
           ADD A,CRC_NUM        ;共有CRC_NUM+2个字节
           ADD A,#1             ;最后一个数据地址为
           MOV R0,A             ;R0=CRC_POINTER+CRC_NUM+2-1
           MOV A,CRC_NUM        ;计算参与移位计算的字节数
           ADD A,#2             ;保存在R1中
           MOV R1,A             ;R1=CRC_NUM+2
           CLR C
CRC3:      MOV A,@R0
           RLC A
           MOV @R0,A
           DEC R0
           DJNZ R1,CRC3         ;判断每移动一位,所有参与移位的字节是否移完
           JNC CRC4             ;进行异或条件判断
           MOV A,#CRC_XORH
           XRL A,CRC_POINTER
           MOV CRC_POINTER,A
           MOV A,#CRC_XORL
           XRL A,CRC_POINTER+1
           MOV CRC_POINTER+1,A
CRC4:      DJNZ R7,CRC2         ;判断移位是否结束

CRC_END:
          RET

Upload by 小刘(2007-1-23)
IC
·VHDL设计中电路优化问题探讨
·VHDL设计中信号与变量问题的探讨
·基于VHDL语言的定时时基校正电路设..
·HDMI分配器的设计与实现
·基于CPLD的声发射信号传输系统设计
·一种用VHDL语言实现的帧同步算法
·VHDL语言在PSpice中的仿真应..
·SDRAM控制器的设备与VHDL实现
·简易通用型PCI接口的VHDL
·基于VHDL语言的实用电梯控制器的设..
·VHDL在高速图像采集系统中的应用设..
·你能过关吗?J2EE面试题集锦(附答..
·关于J2EE层次设计架构实例的分析详..
·Java EE/J2EE面向对象实战..
·J2EE初学者需要理解的问题
·初学者如何开发出一个高质量的J2EE..
·J2EE的13种核心技术简介
·开发J2EE应用应遵循的几点原则
·使用JBoss Eclipse ID..
·Java/J2EE中文问题终极解决之..
·关于对J2EE几点误解和错误认识的澄..
·J2ME小Tip:setClip方法..
·Java程序最容易犯的21种错误实例..
·基础教程之——RMI一步一步学习
·J2EE的Web和企业架构(WEA)..
·J2EEJTA和数据库的transa..
·使用异步Servlet扩展AJAX应..
·J2EE技术
·对于Struts和Spring两种M..
·Session机制使用的详细讲解
·如何解决JSP页面显示乱码问题
·cookie技术在Java ME平台..
·J2ME中读取Unicode和UTF..
·揭开J2EE集群Cluster的神秘..
·EJB技术的数据库应用
·J2EE应用系统内部的WebServ..
·J2EEMVC模式JSF与Strut..
·JAVA手机编程技术
·将J2EE平台提升到一个新的高度
·MCS-51单片机实用子程序库
IC
推荐技术文章:
IC
IC

©2007 版权归ICGLE所有   页面执行时间:62.500毫秒