MOV A, #0AH ;
XCH A, B ;
DIV AB ; B = A % B
SWAP A ;
ORL A, B ;
RET ;
; Calculate CRC-8 Values. Uses The CCITT-8 Polynomial, Expressed As
; X^8 + X^5 + X^4 + 1
CRC8CAL: PUSH ACC ;
MOV R7, #08H ; Number Bits In Byte
;
CRC8LOOP1: XRL A, B ; Calculate CRC
RRC A ; MOV e To Carry
MOV A, B ; Get The Last CRC Value
JNC CRC8LOOP2 ; Skip If Data == 0
XRL A, #18H ; Update The CRC Value
;
CRC8LOOP2: RRC A ; Position The New CRC
MOV B, A ; Store The New CRC
POP ACC ; Get The Remaining Bits
RR A ; Position The Next Bit
PUSH ACC ; Save The Remaining Bits
DJNZ R7, CRC8LOOP1 ; Repeat For 8 Bits
POP ACC ;
RET ;
;显示子程序
;显示数据在70H-73H单元内,用4位LED共阳数码管显示
DISP1: SETB CS2
CLR CS1
MOV X,#0BAH
MOV Y,#48H
MOV DPTR,#DDB
MOV MUL_,72H
ACALL DISP_
MOV X,#0BAH
MOV Y,#50H
MOV MUL_,71H
ACALL DISP_
MOV X,#0BAH
MOV Y,#60H
MOV MUL_,70H
ACALL DISP_
MOV X,#0BAH
MOV Y,#58H
MOV DPTR,#TAB1
MOV MUL_,#00H
ACALL DISP_
RET
;************************8位字宽显示子程序: (CODE0待设)**********************
DISP_: MOV B,#10H ;要显示的数是几就用几乘以16,得到基址起始地址
MOV A,MUL_
MUL AB
MOV CODE0,A
MOV 39H,#02H
MOV COUNT,#08H
LP_: MOV COM,X ;设置页地址
LCALL INST
MOV COM,Y ;设置列地址
LCALL INST
W_: MOV A,CODE0
MOV C A,@A+DPTR
MOV DAT,A
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
本文关键字:温度计 51单片机,单片机-工控设备 - 51单片机