⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1

📁 RM51单片机实验板配套实验例程库
💻
📖 第 1 页 / 共 5 页
字号:
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 + -