📄 1
字号:
070F 22 RET ;
;
;
;****************************************************************************
; Calculate CRC-8 Values. Uses The CCITT-8 Polynomial, Expressed As
; X^8 + X^5 + X^4 + 1
;****************************************************************************
0710 C0E0 CRC8CAL: PUSH ACC ;
0712 7F08 MOV R7, #08H ; Number Bits In Byte
;
0714 65F0 CRC8LOOP1: XRL A, B ; Calculate CRC
0716 13 RRC A ; Move To Carry
0717 E5F0 MOV A, B ; Get The Last CRC Value
0719 5002 JNC CRC8LOOP2 ; Skip If Data == 0
071B 6418 XRL A, #18H ; Update The CRC Value
;
071D 13 CRC8LOOP2: RRC A ; Position The New CRC
D:\温度时钟器示范程序\25.ASM
页 23
11-20-05
09:53:56
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
071E F5F0 MOV B, A ; Store The New CRC
0720 D0E0 POP ACC ; Get The Remaining Bits
0722 03 RR A ; Position The Next Bit
0723 C0E0 PUSH ACC ; Save The Remaining Bits
0725 DFED DJNZ R7, CRC8LOOP1 ; Repeat For 8 Bits
0727 D0E0 POP ACC ;
0729 22 RET ;
;
;------------ 以下24C16读写程序----------------------
;CLR A
;MOV R0, #10H
;MOV R7, #55H
;LCALL C16BYWR
;
;MOV R6, #00H
;MOV R7, #064H
;LCALL DELAY
;
;LCALL C16CURD
;
;CLR A
;MOV R0, A
;LCALL C16CURD
;
;-----------------------------------------------
; 24C16字节写入程序
; 将R7中的数据写入到(Acc^R0)指定的单元中
;-----------------------------------------------
072A 23 C16BYWR: RL A
072B 44A0 ORL A, #0A0H
072D 1207DB LCALL STA
0730 120821 LCALL WRBYT
0733 120814 LCALL EXTCL
0736 E8 MOV A, R0
0737 120821 LCALL WRBYT
073A 120814 LCALL EXTCL
073D EF MOV A, R7
073E 120821 LCALL WRBYT
0741 120814 LCALL EXTCL
0744 1207EC LCALL STOP
0747 22 RET
;
;-----------------------------------------------
; 24C16页写入程 序 (R7中的数据在1-16内)
; 将以R1为首地址R7个内存中的数据写入
;到(Acc^R0)指定首地址的连续单元中
;-----------------------------------------------
C16PAWR:
D:\温度时钟器示范程序\25.ASM
页 24
11-20-05
09:53:56
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
0748 23 RL A
0749 44A0 ORL A, #0A0H
074B 1207DB LCALL STA
074E 120821 LCALL WRBYT
0751 120814 LCALL EXTCL
0754 E8 MOV A, R0
0755 120821 LCALL WRBYT
0758 120814 LCALL EXTCL
075B E7 C16PAWR1: MOV A, @R1
075C 120821 LCALL WRBYT
075F 120814 LCALL EXTCL
0762 09 INC R1
0763 DFF6 DJNZ R7, C16PAWR1
0765 1207EC LCALL STOP
0768 22 RET
;
;-----------------------------------------------
; 24C16当前字节读程序
; 读出的数据在Acc中
;-----------------------------------------------
0769 74A1 C16CURD: MOV A, #0A1H
076B 1207DB LCALL STA
076E 120821 LCALL WRBYT
0771 120814 LCALL EXTCL
0774 120832 LCALL RDBYT
0777 120807 LCALL MNACK
077A 1207EC LCALL STOP
077D 22 RET
;
;-----------------------------------------------
; 24C16随机字节读程序
; 将(Acc^R0)指定的字节数据读出到Acc中
;-----------------------------------------------
077E 23 C16RARD: RL A
077F 44A0 ORL A, #0A0H
0781 1207DB LCALL STA
0784 120821 LCALL WRBYT
0787 120814 LCALL EXTCL
078A E8 MOV A, R0
078B 120821 LCALL WRBYT
078E 120814 LCALL EXTCL
0791 74A1 MOV A, #0A1H
0793 1207DB LCALL STA
0796 120821 LCALL WRBYT
0799 120814 LCALL EXTCL
079C 120832 LCALL RDBYT
079F 120807 LCALL MNACK
07A2 1207EC LCALL STOP
D:\温度时钟器示范程序\25.ASM
页 25
11-20-05
09:53:56
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
07A5 22 RET
;
;-----------------------------------------------
; 24C16顺序读取程序
; 将(Acc^R0)指定起始的R7个字节数据读出
;到R1为首地址的内存单元中
;-----------------------------------------------
07A6 23 C16SERD: RL A
07A7 44A0 ORL A, #0A0H
07A9 1207DB LCALL STA
07AC 120821 LCALL WRBYT
07AF 120814 LCALL EXTCL
07B2 E8 MOV A, R0
07B3 120821 LCALL WRBYT
07B6 120814 LCALL EXTCL
07B9 74A1 MOV A, #0A1H
07BB 1207DB LCALL STA
07BE 120821 LCALL WRBYT
07C1 120814 LCALL EXTCL
07C4 120832 LCALL RDBYT
07C7 F7 MOV @R1, A
07C8 09 INC R1
07C9 1F DEC R7
07CA 1207F9 C16SERD1: LCALL MACK
07CD 120832 LCALL RDBYT
07D0 F7 MOV @R1, A
07D1 09 INC R1
07D2 DFF6 DJNZ R7, C16SERD1
07D4 120807 LCALL MNACK
07D7 1207EC LCALL STOP
07DA 22 RET
;
;-----------------------------------------------
; 24C16基本操作子程序们
;-----------------------------------------------
;
07DB D2B6 STA: SETB VSDA
07DD D2B5 SETB VSCL
07DF 00 NOP
07E0 00 NOP
07E1 00 NOP
07E2 00 NOP
07E3 C2B6 CLR VSDA
07E5 00 NOP
07E6 00 NOP
07E7 00 NOP
07E8 00 NOP
07E9 C2B5 CLR VSCL
D:\温度时钟器示范程序\25.ASM
页 26
11-20-05
09:53:56
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
07EB 22 RET
;
07EC C2B6 STOP: CLR VSDA
07EE 00 NOP
07EF D2B5 SETB VSCL
07F1 00 NOP
07F2 00 NOP
07F3 00 NOP
07F4 00 NOP
07F5 D2B6 SETB VSDA
07F7 00 NOP
07F8 22 RET
;
07F9 C2B6 MACK: CLR VSDA
07FB 00 NOP
07FC D2B5 SETB VSCL
07FE 00 NOP
07FF 00 NOP
0800 00 NOP
0801 00 NOP
0802 C2B5 CLR VSCL
0804 D2B6 SETB VSDA
0806 22 RET
;
0807 D2B6 MNACK: SETB VSDA
0809 00 NOP
080A D2B5 SETB VSCL
080C 00 NOP
080D 00 NOP
080E 00 NOP
080F 00 NOP
0810 C2B5 CLR VSCL
0812 00 NOP
0813 22 RET
;
0814 D2B6 EXTCL: SETB VSDA
0816 00 NOP
0817 D2B5 SETB VSCL
0819 00 NOP
081A 00 NOP
081B 00 NOP
081C 00 NOP
081D C2B5 CLR VSCL
081F 00 NOP
0820 22 RET
;
0821 7D08 WRBYT: MOV R5, #08H
0823 33 WLP: RLC A
D:\温度时钟器示范程序\25.ASM
页 27
11-20-05
09:53:56
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
0824 92B6 MOV VSDA, C
0826 00 NOP
0827 D2B5 SETB VSCL
0829 00 NOP
082A 00 NOP
082B 00 NOP
082C 00 NOP
082D C2B5 CLR VSCL
082F DDF2 DJNZ R5, WLP
0831 22 RET
;
0832 7D08 RDBYT: MOV R5, #08H
0834 D2B6 SETB VSDA
0836 D2B5 RLP: SETB VSCL
0838 00 NOP
0839 A2B6 MOV C, VSDA
083B 33 RLC A
083C C2B5 CLR VSCL
083E 00 NOP
083F 00 NOP
0840 DDF4 DJNZ R5, RLP
0842 22 RET
;===============================================
END
D:\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -