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

📄 armok0137229.txt

📁 用AVR单片机做的LC测量仪。(ATMEGA8+GCC)
💻 TXT
📖 第 1 页 / 共 3 页
字号:
;8、****	初识化I/O口*************************************************END

;9、****	设定T/C0、T/C1、T/C2的工作方式。T0作计数器,*******************
;			T1作PWM定时器(1S宽度正脉冲OC1A输出),T2作CLKio/2频率OC2输出
InitTime:
	push	temp0
	ldi		temp0,InitTIMSK			;
	out		TIMSK,temp0

;****	设定T/C0的一般计数方式
	clr		temp0
	out		TCNT0,temp0
	ldi		temp0,InitTCCR0
	out		TCCR0,temp0				;

;****	设定T/C1工作方式
	ldi		temp0,InitTCCR1A		;
	out		TCCR1A,temp0			;
	ldi		temp0,InitTCCR1B		;
	out		TCCR1B,temp0			;
	ldi		temp0,high(InitOCR1A)	;
	out		OCR1AH,temp0
	ldi		temp0,low(InitOCR1A)			
	out		OCR1AL,temp0
	ldi		temp0,high(InitICR1)	;
	out		ICR1H,temp0
	ldi		temp0,low(InitICR1)			
	out		ICR1L,temp0
	
;****	设定T/C2的方式
	ldi		temp0,InitTCCR2			;
	out		TCCR2,temp0				;
	ldi		temp0,InitOCR2			;
	out		OCR2,temp0

InitTimeEnd:
	pop		temp0
	ret
;****	设定1000、10的9次方、10的21次方和pi的浮点值
InitData:
	ldi		YH,HIGH(DataStack)
	ldi		YL,LOW(DataStack)

	ldi		R16,LOW(4)						;4的浮点值
	ldi		R17,HIGH(4)
	rcall	INT2FP
	sts		Float4Byte0,R16
	sts		Float4Byte1,R17
	sts		Float4Byte2,R18
	sts		Float4Byte3,R19

	ldi		R16,LOW(1)						;1的浮点值
	ldi		R17,HIGH(1)
	rcall	INT2FP
	sts		Float10E0Byte0,R16
	sts		Float10E0Byte1,R17
	sts		Float10E0Byte2,R18
	sts		Float10E0Byte3,R19

	ldi		R16,LOW(1000)					;10的3次方的浮点值
	ldi		R17,HIGH(1000)
	rcall	INT2FP
	sts		Float10E3Byte0,R16
	sts		Float10E3Byte1,R17
	sts		Float10E3Byte2,R18
	sts		Float10E3Byte3,R19

	ldi		R31,6
	mov		R21,R16							;10的21次方的浮点值=1000的7次方
	mov		R22,R17
	mov		R23,R18
	mov		R24,R19
Float10E21Loop:
	rcall	MPY32F							
	lds		R21,Float10E3Byte0
	lds		R22,Float10E3Byte1
	lds		R23,Float10E3Byte2
	lds		R24,Float10E3Byte3
	dec		R31
	brne	Float10E21Loop
	sts		Float10E21Byte0,R16
	sts		Float10E21Byte1,R17
	sts		Float10E21Byte2,R18
	sts		Float10E21Byte3,R19

Initpi:
	ldi		R16,LOW(100000000)				;10的8次方的浮点值
	ldi		R17,BYTE2(100000000)
	ldi		R18,BYTE3(100000000)
	ldi		R19,BYTE4(100000000)
	rcall	LONG2FP
	sts		Float10E8Byte0,R16
	sts		Float10E8Byte1,R17
	sts		Float10E8Byte2,R18
	sts		Float10E8Byte3,R19

	ldi		R16,LOW(314159265)				;pi的浮点值
	ldi		R17,BYTE2(314159265)
	ldi		R18,BYTE3(314159265)
	ldi		R19,BYTE4(314159265)
	rcall	LONG2FP
	lds		R21,Float10E8Byte0
	lds		R22,Float10E8Byte1
	lds		R23,Float10E8Byte2
	lds		R24,Float10E8Byte3
	rcall	DIV32F
	sts		FloatpiByte0,R16
	sts		FloatpiByte1,R17
	sts		FloatpiByte2,R18
	sts		FloatpiByte3,R19
	ret
;9、****	设定T/C0、T/C1、T/C2的工作方式。************************END


;****	四字节浮点数运算程序

;INT2FP 16 位整数转换成四字节浮点数运算子程
;	入口 r17:r16 出口r19:r18:r17:r16
;	使用的寄存器r16,r17,r18,r19,r20,r26
;LONG2FP 32 位长整数转换成四字节浮点数运算子程
;	入口r19:r18:r17:r16 出口r19:r18:r17:r16
;	使用的寄存器r16,r17,r18,r19,r20,r26
;FP2INT 四字节浮点数转换成16 位整数运算子程
;	入口 r19:r18:r17:r16 出口r19:r18
;	使用的寄存器r16,r17,r18,r19,r20,r26
;FP2LONG 四字节浮点数转换成32 位长整数运算子程
;	入口r19:r18:r17:r16 出口r19:r18:r17:r16
;	使用的寄存器r16,r17,r18,r19,r20,r26
;ADD32F 四字节浮点加法运算子程
;	入口r19:r18:r17:r16 + r24:r23:r22:r21 出口r19:r18:r17:r16
;	使用的寄存器r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r28,r29
;	使用的SRAM Y-5 Y-4 Y-3 Y-2 Y-1
;SUB32F 四字节浮点减法运算子程
;	入口r19:r18:r17:r16 - r24:r23:r22:r21 出口r19:r18:r17:r16
;	使用的寄存器r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r28,r29
;	使用的SRAM Y-5 Y-4 Y-3 Y-2 Y-1
;DIV32F 四字节浮点除法运算子程
;	入口r19:r18:r17:r16 / r24:r23:r22:r21 出口r19:r18:r17:r16
;	使用的寄存器r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r28,r29
;	使用的SRAM Y-1
;MPY32F 四字节浮点乘法运算子程
;	入口r19:r18:r17:r16 * r24:r23:r22:r21 出口r19:r18:r17:r16
;	使用的寄存器r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r28,r29
;	使用的SRAM Y-1

INT2FP: 					; 16 位整数转换成四字节浮点数运算子程
	CLR		R18
	SBRC	R17,7 			; R17:R16 为待转换的整数
	COM		R18
	CLR 	R19 			; 16 位整数按数符位扩展成32 位长整数
	SBRC 	R18,7 			; 为正R19,R18 清零
	COM 	R19 			; 为负R19,R18 置为$FFFF
LONG2FP: 					; 32 位长整数转换成四字节浮点数运算子程
	CLR 	R20 			; 清符号位R20
	AND 	R19,R19 		; 先判+/-
	BRPL 	LONG2FP_1 		; 为正跳至LONG2FP_1
	RCALL 	QUBU 			; 为负调QUBU 子程取补
	COM 	R20 			; 符号位R20 取反
LONG2FP_1:
	MOV 	R26,R16 		; 再判R19:R18:R17:R16 是否全零
	OR 		R26,R17
	OR 		R26,R18
	OR 		R26,R19
	BRNE 	LONG2FP_2		; 不为零跳至LONG2FP_2
	RJMP 	JGW0 			; 为零跳至JGW0 结果为零
LONG2FP_2:
	LDI 	R26,$16 		; 令R26 = 22
	RJMP 	LONG2FP_4
LONG2FP_3:
	INC 	R26
	LSR 	R19
	ROR 	R18
	ROR 	R17
	ROR 	R16
LONG2FP_4:
	AND 	R19,R19 		; 判高位是否为零
	BRNE 	LONG2FP_3 		; 不为零右移一位阶码加 1
LONG2FP_5:
	AND 	R18,R18 		; 判次高位是否为零
	BRNE 	LONG2FP_7
	SUBI 	R26,$08 		; 为零阶码减 8
	MOV 	R18,R17 		; 数左移 8 位
	MOV 	R17,R16
	LDI 	R16,$00 		; 低位以 $00 填充
	RJMP 	LONG2FP_5
LONG2FP_6:
	DEC 	R26
	ADD 	R16,R16
	ADC 	R17,R17
	ADC 	R18,R18
LONG2FP_7:
	BRPL 	LONG2FP_6 		; R18 第7 为0 再左移一位
	MOV 	R19,R26 		; 阶码减 1 直到R18 第7 位为1
	RJMP 	GGH
FP2INT: 					; 四字节浮点数转换成16 位整数运算子程
	LDI 	R26,$0E 		; 令R26 = 14
	RJMP 	FP2LONG_1 		; 跳至FP2LONG_1
FP2LONG: 					; 四字节浮点数转换成32 位长整数运算子程
	LDI 	R26,$1E 		; 令R26 = 30
FP2LONG_1:
	RCALL 	FP2LONG_11 		; 调FP2LONG_11 子程
	BREQ 	FP2LONG_4 		; 相等即阶码为 0 按 0 处理
	SUB 	R26,R19 		; R26(14)- 阶码差值
	BREQ 	FP2LONG_2 		; 为 0 则跳至FP2LONG_2
	BRPL 	FP2LONG_5 		; 为正 则跳至FP2LONG_5 无溢出
FP2LONG_2: 					; 有溢出
	AND 	R20,R20 		; 符号为正
	BRMI 	FP2LONG_3 		; 符号为负则跳至FP2LONG_3
	LDI 	R16,$FF
	LDI 	R17,$FF
	LDI 	R18,$FF
	LDI 	R19,$7F
	RET 					; 正向溢出结果置为 $7F FF FF FF
FP2LONG_3:
	LDI 	R16,$00
	LDI 	R17,$00
	LDI 	R18,$00
	LDI 	R19,$80
	RET 					; 负向溢出结果置为 $80 00 00 00
FP2LONG_4:
	LDI 	R16,$00
	LDI 	R17,$00
	LDI 	R18,$00
	LDI 	R19,$00
	RET 					; 结果为 0 置为 $00 00 00 00
FP2LONG_5: 					; 无溢出
	INC 	R19 			; 阶码差值 + 1
	BRMI 	FP2LONG_4 		; 为负即( 阶码 < $7E) 按零处理
	LDI 	R19,$00 		; 清R19
	SUBI 	R26,$08 		;R26(14- 阶码差值) -8
	BRPL 	FP2LONG_7 		; 为正转FP2LONG_7
	SUBI 	R26,$F8 		; 不够减则加 8
	MOV 	R19,R18 		;左移 8 位
	MOV 	R18,R17
	MOV 	R17,R16
	LDI 	R16,$7F 		; 低位以 $7F 填充
	RJMP 	FP2LONG_8 		; 跳至 FP2LONG_8
FP2LONG_6:
	MOV 	R16,R17 		; 右移 8 位
	MOV 	R17,R18
	LDI 	R18,$00 		; 高位以 $00 填充
	SUBI 	R26,$08 		; R26-8
FP2LONG_7:
	CPI 	R26,$08 		; R26 值与 8 相比较
	BRCC 	FP2LONG_6 		; 有借位跳至FP2LONG_6
FP2LONG_8: 					;无借位
	AND 	R26,R26
	BREQ 	FP2LONG_10
FP2LONG_9:
	LSR 	R19 			; 右移一位
	ROR 	R18
	ROR 	R17
	ROR 	R16
	DEC 	R26 			;R26-1, 不为 0 跳至FP2LONG_9
	BRNE 	FP2LONG_9 		; 直到R26 为 0 为止
FP2LONG_10: 				; 考虑符号位
	SBRC 	R20,7
	RJMP 	QUBU 			; 为负则跳至QUBU 取补 返回
	RET 					; 为正返回
FP2LONG_11:
	MOV 	R20,R19 		; 取浮点数数符存于R20 最高位
	ANDI 	R20,$80
	ADD 	R18,R18 		; 将阶码移至R19
	ADC 	R19,R19
	SUBI 	R19,$80 		; 阶码减 $80 存于R19
	SEC
	ROR 	R18 			; 恢复尾数最高位 1
	CPI 	R19,$80 		; 阶码差值与 $80 相比较
	RET
ADD32F_1: 					; 存储结果
	MOV 	R20,R25
	MOV 	R19,R24
	MOV 	R18,R23
	MOV 	R17,R22
	MOV 	R16,R21
ADD32F_2:
	RJMP 	GGH 			; 跳至GGH 处理结果
SUB32F: 					; 四字节浮点减法运算子程
	SUBI 	R24,$80 		; 减数取反视为浮点加法运算
ADD32F: 					; 四字节浮点加法运算子程
	RCALL 	YCL 			; 调YCL 子程
	CPI	 	R24,$80 		; 先判加数是否为 0
	BREQ 	ADD32F_2 		; 为 0 则和为被加数 跳至ADD32F_2
	CPI 	R19,$80 		; 再判被加数是否为 0
	BREQ 	ADD32F_1 		; 为 0 则和为加数 跳至ADD32F_1
ADD32F_3:
	MOV 	R26,R19 		; 转存被加数阶码
	SUB 	R26,R24 		;R26= 被加数阶码 减 加数阶码
	BRVS 	ADD32F_2 		; 溢出跳至ADD32F_2 即加数可忽略
	BRMI 	ADD32F_4 		; 为负跳至ADD32F_4
	BRNE 	ADD32F_5 		; 不等跳至ADD32F_5
	CP 		R16,R21
	CPC 	R17,R22
	CPC 	R18,R23
	BRCC 	ADD32F_5
ADD32F_4:
	RCALL 	ADD32F_16 		; 调ADD32F_16 被加数和加数相交换
	RJMP 	ADD32F_3 		; 跳至ADD32F_3
ADD32F_5:
	CPI 	R26,$18 		;阶码差值与 24 相比较
	BRCS 	ADD32F_6 		;C=1 跳至ADD32F_6 即 < 24
	CLR 	R21 			; > 24 加数清 0
	CLR 	R22
	CLR 	R23
ADD32F_6:
	CPI 	R26,$08 		; 阶码差值与 8 相比较
	BRCS 	ADD32F_7 		;C=1 跳至ADD32F_7 ( 直至 < 8)
	MOV 	R21,R22 		; 加数尾数右移 8 位
	MOV 	R22,R23 		; 高 8 位清 0
	CLR 	R23
	SUBI 	R26,$08 		; 阶码差值再减 8
	RJMP 	ADD32F_6 		; 跳至ADD32F_6
ADD32F_7:
	AND 	R26,R26
	BREQ 	ADD32F_9 		; 直至R26=0 跳至ADD32F_9
ADD32F_8:
	LSR 	R23 			; 加数尾数右移 1 位
	ROR 	R22
	ROR 	R21
	DEC 	R26 			; 阶码差值减 1
	BRNE 	ADD32F_8 		; 不为 0 跳至ADD32F_8
ADD32F_9:
	MOV 	R26,R20 		; 被加数和加数是否同号
	EOR 	R26,R25
	BRMI 	ADD32F_10 		; 异号跳至ADD32F_10
	RCALL 	ADD32F_13 		; 同号调ADD32F_13 子程尾数相加
	BRCC 	ADD32F_2 		; C=0, 无溢出跳至ADD32F_2
	ROR 	R18 			; C=1, 溢出尾数右移 1 位
	ROR 	R17
	ROR 	R16
	SUBI 	R19,$FF 		; 阶码加 1
	BRVC 	ADD32F_2 		; 无溢出跳至ADD32F_2 处理结果
	RJMP 	JGZD 			; 溢出跳至JGZD 出结果
ADD32F_10:
	RCALL 	ADD32F_14 		;调ADD32F_14 子程尾数相减
	BRNE 	ADD32F_11 		; 不等跳至ADD32F_11
	RJMP 	JGW0 			; 跳至JGW0 出结果
ADD32F_11:
	BRCC 	ADD32F_12 		;C=0, 够减跳至ADD32F_12
	RCALL 	ADD32F_15 		;C=1, 不够减调ADD32F_15 子程取补
ADD32F_12:
	AND 	R18,R18 		; 判R18 最高位是否位 1
	BRMI 	ADD32F_2 		; 为 1 跳至ADD32F_2 处理结果
	ADD 	R16,R16 		; 为 0 尾数左移一位
	ADC 	R17,R17
	ADC 	R18,R18
	SUBI 	R19,$01 		; 阶码减 1
	BRVC 	ADD32F_12 		; 无溢出跳至ADD32F_12
	RJMP 	JGZD 			; 溢出跳至JGZD 出结果
ADD32F_13: 					; 尾数相加
	ADD 	R16,R21
	ADC 	R17,R22
	ADC 	R18,R23
	RET
ADD32F_14: 					; 尾数相减
	SUB 	R16,R21
	SBC 	R17,R22
	SBC 	R18,R23
	RET
ADD32F_15: 					; 结果取补
	COM 	R17
	COM 	R18
	NEG 	R16
	SBCI 	R17,$FF
	SBCI 	R18,$FF
	RET
ADD32F_16: 					; 两个数相交换
	ST 		-Y,R21
	ST 		-Y,R22
	ST 		-Y,R23
	ST 		-Y,R24
	ST 		-Y,R25
	MOV 	R24,R19
	MOV 	R21,R16
	MOV 	R22,R17
	MOV 	R23,R18
	MOV 	R25,R20
	LD 		R20,Y+
	LD 		R19,Y+
	LD 		R18,Y+
	LD 		R17,Y+
	LD 		R16,Y+
	RET
YCL:
	MOV 	R20,R19
	LDI 	R26,$80
	ADD 	R18,R18
	ADC 	R19,R19 		; 将阶码移至R19
	EOR 	R19,R26 		; 阶码减 $80 存于R19
	ADD 	R26,R26
	ROR 	R18 			; 恢复尾数最高位 1
	ANDI 	R20,$80 		; 取浮点数数符存于R20 最高位
	MOV 	R25,R24
	LDI 	R26,$80
	ADD 	R23,R23 		; 将阶码移至R24
	ADC 	R24,R24
	EOR 	R24,R26 		; 阶码减 $80 存于R24
	ADD 	R26,R26
	ROR 	R23 			; 恢复尾数最高位 1
	ANDI 	R25,$80 		; 取浮点数数符存于R25 最高位
	CPI 	R19,$80
	RET
GGH: 						; 规格化
	ADD 	R18,R18 		; 隐含尾数最高位为 1
	LDI 	R26,$80 		; 考虑符号位
	EOR 	R26,R19 ;
	ADD 	R20,R20
	ROR 	R26 			; 右移R26,R18
	ROR 	R18
	MOV 	R19,R26 		;R26移至R19
	RET
DIV32F_1:
	ST 		-Y,R26 			; 转存R26
	CLR 	R13 			; 清R15:R14:R13
	CLR 	R14
	CLR 	R15
	LDI 	R26,$18 		; 令R26=$18(24)
DIV32F_2:
	CP 		R16,R21 		; 被除数( 余数) 与除数两尾数相比
	CPC 	R17,R22
	CPC 	R18,R23
	BRCS 	DIV32F_3 		; 被除数( 余数) < 除数
	SUB 	R16,R21 		; 余数 = 被除数 - 除数
	SBC 	R17,R22
	SBC 	R18,R23
	SEC
	RJMP 	DIV32F_4
DIV32F_3:
	CLC 					; 清除进位位
DIV32F_4:
	ADC 	R13,R13 		; 商左移一位并加上进位位
	ADC 	R14,R14
	ADC 	R15,R15
	ADD 	R16,R16 		; 余数左移一位
	ADC 	R17,R17
	ADC 	R18,R18
	DEC 	R26 			; R26-1
	BRNE 	DIV32F_2 		; 循环 24 次
	MOV 	R16,R13 		; 取出商
	MOV 	R17,R14
	MOV 	R18,R15
	LD 		R26,Y+ 			; 恢复R26
	RET
DIV32F: 					; 四字节浮点除法运算子程
	AND 	R24,R24
	BREQ 	DIV32F_7 		; 跳至DIV32F_7 出结果
	AND 	R19,R19 		; 判被除数是否为 0
	BREQ 	JGW0 			; 为 0 则结果为 0
	RCALL 	YCL 			; 调YCL 子程
	BREQ 	JGW0 			; 跳至JGW0 结果为 0
	EOR 	R20,R25 		; 取商的符号位存于R20
	SEC
	SBC 	R19,R24 		; 取出商的阶码
	BRVS 	JGZD 			; 溢出跳至JGZD
	LSR 	R23 			; 无溢出
	ROR 	R22 			; 将被除数与除数得尾数
	ROR 	R21 			; 右移一位最高位置 0
	LSR 	R18
	ROR 	R17
	ROR 	R16
	RCALL 	DIV32F_1 		; 调DIV32F_1 子程进行运算
	AND 	R18,R18 		; 判R18 最高位是否为 0
	BRMI 	DIV32F_5 		; 为 1
	ADD 	R16,R16 		; 为 0 左移被除数尾数
	ADC 	R17,R17
	ADC 	R18,R18
	SUBI 	R19,$01 		; 阶码减 1
	BRVS 	JGZD 			; 溢出 跳至JGZD
DIV32F_5: 					; 无溢出
	MOV 	R26,R16
	LSR 	R26
	BRCS 	DIV32F_6 		; 进位位为 1 跳至DIV32F_6
	AND 	R16,R16
	BRPL 	DIV32F_6 		; 为正跳至DIV32F_6
	AND 	R17,R17
	BRPL 	DIV32F_6 		; 为正跳至DIV32F_6
	LDI 	R26,$01 		; 尾数加 1
	ADD 	R16,R26
	CLR 	R26
	ADC 	R17,R26
	ADC 	R18,R26
DIV32F_6:
	RJMP 	GGH
DIV32F_7:
	RJMP 	JGW0
JGZD: 						; 结果置为 $7FFFFFFF
	LDI 	R26,$7F
	MOV 	R19,R26
	OR 		R18,R26
	LDI 	R26,$FF
	MOV 	R16,R26
	MOV 	R17,R26
	RET
JGW0: 						; 结果置为 $00000000
	CLR 	R16
	CLR 	R17
	CLR 	R18
	CLR 	R19
	CLR 	R20
	RET
MPY32F: 					; 四字节浮点乘法运算子程
	RCALL 	YCL 			; 调YCL 子程 并判乘数是否为 0
	BREQ 	JGW0 			; 被乘数为 0 跳至JGW0 结果为 0
	CPI 	R24,$80 		; 判乘数是否为 0
	BREQ 	JGW0 			; 乘数为 0 跳至JGW0 结果为 0
	EOR 	R20,R25 		; 符号位相异或
	SEC
	ADC 	R19,R24 		; 恢复阶码存于R19
	BRVS 	JGZD 			; 溢出跳至JGZD
	RCALL 	MPY32F_2 		; 无溢出调MPY32F_2 子程
	AND 	R18,R18 		; 判R18 最高位是否为 1
	BRMI 	MPY32F_1 		; 为负即R18 最高位为1 跳至MPY32F_1
	DEC 	R19 			; 为正即R18 最高位为 0 阶码减 1
	ADD 	R15,R15 		; 尾数左移一位
	ADC 	R16,R16
	ADC 	R17,R17
	ADC 	R18,R18 		; 直至R18 最高位为 1 止
MPY32F_1:
	SUBI 	R19,$FF 		; 阶码加 1
	BRVS 	JGZD 			; 溢出跳至JGZD
	RJMP 	GGH 			; 跳至GGH 出结果
MPY32F_2:
	ST 		-Y,R24 			; 转存R24
	CLR 	R13 			; 清R26 R15 R14 R13
	CLR 	R14
	CLR 	R15
	CLR 	R26
	LDI 	R24,$18 		; 令R24=$18 24
MPY32F_3:
	ADD 	R13,R13 		; 积的尾数在R18:R17:R16:R15:R14:R13
	ADC 	R14,R14
	ADC 	R15,R15
	ADC 	R16,R16 		; 尾数左移
	ADC 	R17,R17
	ADC 	R18,R18
	BRCC 	MPY32F_4 		; 无进位R24 减 1 不加乘数
	ADD 	R13,R21 		; 有进位R24 减 1 加乘数到尾数低位
	ADC 	R14,R22
	ADC 	R15,R23
	ADC 	R16,R26
	ADC 	R17,R26
	ADC 	R18,R26
MPY32F_4:
	DEC 	R24 			; 循环 24 次
	BRNE 	MPY32F_3
	LD 		R24,Y+ 			; 恢复R24
	RET 					; 取高 24 位
QUBU: 						; 取补运算
	COM 	R16
	COM 	R17
	COM 	R18
	COM 	R19
	SUBI 	R16,$FF
	SBCI 	R17,$FF
	SBCI 	R18,$FF
	SBCI 	R19,$FF
	RET

Soft_ID: 	.DB	"DG_Meter"
			.DB "多功能测量计"
Version:	.DB	"0010"
			.DB "2005011008"
Author:		.DB	"Author:CHQ_陈海强"	
			.DB "END"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -