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

📄 gps.asm

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 6)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?455.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#6
	bne	?L131F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?456.1:
;					receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?457.1:
	ld	AL,@$receive_buffer_count
	add	AL,#-1
	st	AL,@$receive_buffer_count
?L131F5:
	bra	?L136F5
?L128F5:
;				}
;			}
;			else
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?461.1:
;				GPRMC.speed[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?462.1:
	ld	AH,#','
	st	AH,@$?irq_scratchpad?+9	; %r4
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+7	; %r3
	addc	AH,@$?irq_scratchpad?+6	; %r3
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+9	; %r4
	st.b	AH,@(44,X)
;				while(receive_buffer_count < (6 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?463.1:
?L139F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?463.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#5
	bcc	?L140F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?464.1:
;					receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?465.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;					GPRMC.speed[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?466.1:
	ld	AH,#' '
	st	AH,@$?irq_scratchpad?+7	; %r3
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+9	; %r4
	st	AH,@$?irq_scratchpad?+8	; %r4
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+9	; %r4
	addc	AH,@$?irq_scratchpad?+8	; %r4
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+7	; %r3
	st.b	AH,@(44,X)
	bra	?L139F5
?L140F5:
;					
;				}
;				
;				receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?470.1:
	ld	AL,#0
	st	AL,@$receive_buffer_count
;				receive_flag = RMC_ASPECT;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?471.1:
	ld	AL,#8
	st	AL,@$receive_flag
?L136F5:
;			}
;			break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?473.1:
	bra	?L4F5
?L10F5:
;			if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?476.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	movax
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	ld.bu	AL,@(0,X)
	cmp	AL,#','
	beq	?L146F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?477.1:
;				GPRMC.bearing_pointer[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?478.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld.bu	AH,@(0,X)
	st	AH,@$?irq_scratchpad?+5	; %r2
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+7	; %r3
	addc	AH,@$?irq_scratchpad?+6	; %r3
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	movax
	ld	AH,@$?irq_scratchpad?+5	; %r2
	st.b	AH,@(50,X)
;				receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?479.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 6)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?480.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#6
	bne	?L149F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?481.1:
;					receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?482.1:
	ld	AL,@$receive_buffer_count
	add	AL,#-1
	st	AL,@$receive_buffer_count
?L149F5:
	bra	?L154F5
?L146F5:
;				}
;			}
;			else
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?486.1:
;				GPRMC.bearing_pointer[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?487.1:
	ld	AH,#','
	st	AH,@$?irq_scratchpad?+9	; %r4
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+7	; %r3
	addc	AH,@$?irq_scratchpad?+6	; %r3
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+9	; %r4
	st.b	AH,@(50,X)
;				while(receive_buffer_count < (6 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?488.1:
?L157F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?488.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#5
	bcc	?L158F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?489.1:
;					receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?490.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;					GPRMC.bearing_pointer[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?491.1:
	ld	AH,#' '
	st	AH,@$?irq_scratchpad?+7	; %r3
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+9	; %r4
	st	AH,@$?irq_scratchpad?+8	; %r4
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+9	; %r4
	addc	AH,@$?irq_scratchpad?+8	; %r4
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+7	; %r3
	st.b	AH,@(50,X)
	bra	?L157F5
?L158F5:
;					
;				}
;				
;				receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?495.1:
	ld	AL,#0
	st	AL,@$receive_buffer_count
;				receive_flag = RMC_DATE;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?496.1:
	ld	AL,#9
	st	AL,@$receive_flag
?L154F5:
;			}
;			break;	
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?498.1:
	bra	?L4F5
?L9F5:
;			if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?502.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	movax
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	ld.bu	AL,@(0,X)
	cmp	AL,#','
	beq	?L164F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?503.1:
;				GPRMC.UTC_date[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?504.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld.bu	AH,@(0,X)
	st	AH,@$?irq_scratchpad?+5	; %r2
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+7	; %r3
	addc	AH,@$?irq_scratchpad?+6	; %r3
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	movax
	ld	AH,@$?irq_scratchpad?+5	; %r2
	st.b	AH,@(56,X)
;				receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?505.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 7)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?506.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#7
	bne	?L167F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?507.1:
;					receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?508.1:
	ld	AL,@$receive_buffer_count
	add	AL,#-1
	st	AL,@$receive_buffer_count
?L167F5:
	bra	?L172F5
?L164F5:
;				}
;			}
;			else
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?512.1:
;				GPRMC.UTC_date[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?513.1:
	ld	AH,#','
	st	AH,@$?irq_scratchpad?+7	; %r3
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+9	; %r4
	st	AH,@$?irq_scratchpad?+8	; %r4
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+9	; %r4
	addc	AH,@$?irq_scratchpad?+8	; %r4
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+7	; %r3
	st.b	AH,@(56,X)
;				while(receive_buffer_count < (7 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?514.1:
?L175F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?514.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#6
	bcc	?L176F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?515.1:
;					receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?516.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;					GPRMC.UTC_date[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?517.1:
	ld	AH,#' '
	st	AH,@$?irq_scratchpad?+7	; %r3
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+9	; %r4
	st	AH,@$?irq_scratchpad?+8	; %r4
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+9	; %r4
	addc	AH,@$?irq_scratchpad?+8	; %r4
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+7	; %r3
	st.b	AH,@(56,X)
	bra	?L175F5
?L176F5:
;					
;				}
;				
;				receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?521.1:
	ld	AL,#0
	st	AL,@$receive_buffer_count
;				receive_flag = RMC_SUN_DATA1;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?522.1:
	ld	AL,#10
	st	AL,@$receive_flag
?L172F5:
;			}
;			break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?524.1:
	bra	?L4F5
?L8F5:
;			if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?528.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	movax
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	ld.bu	AL,@(0,X)
	cmp	AL,#','
	beq	?L182F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?529.1:
;				GPRMC.sun_data1[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?530.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld.bu	AH,@(0,X)
	st	AH,@$?irq_scratchpad?+5	; %r2
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+7	; %r3
	addc	AH,@$?irq_scratchpad?+6	; %r3
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	movax
	ld	AH,@$?irq_scratchpad?+5	; %r2
	st.b	AH,@(63,X)
;				receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?531.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 6)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?532.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#6
	bne	?L185F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?533.1:
;					receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?534.1:
	ld	AL,@$receive_buffer_count
	add	AL,#-1
	st	AL,@$receive_buffer_count
?L185F5:
	bra	?L190F5
?L182F5:
;				}
;			}
;			else
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?538.1:
;				GPRMC.sun_data1[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?539.1:
	ld	AH,#','
	st	AH,@$?irq_scratchpad?+7	; %r3
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+9	; %r4
	st	AH,@$?irq_scratchpad?+8	; %r4
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+9	; %r4
	addc	AH,@$?irq_scratchpad?+8	; %r4
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+7	; %r3
	st.b	AH,@(63,X)
;				while(receive_buffer_count < (6 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?540.1:
?L193F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?540.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#5
	bcc	?L194F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?541.1:
;					receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?542.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;					GPRMC.sun_data1[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?543.1:
	ld	AH,#' '
	st	AH,@$?irq_scratchpad?+7	; %r3
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+5	; %r2
	addc	AH,@$?irq_scratchpad?+4	; %r2
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld	AH,@$?irq_scratchpad?+7	; %r3
	st.b	AH,@(63,X)
	bra	?L193F5
?L194F5:
;					
;				}
;				
;				receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?547.1:
	ld	AL,#0
	st	AL,@$receive_buffer_count
;				receive_flag = RMC_SUN_DATA2;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?548.1:
	ld	AL,#11
	st	AL,@$receive_flag
?L190F5:
;			}
;			break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?550.1:
	bra	?L4F5
?L7F5:
;		
;			if(c != '*')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?554.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	movax
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	ld.bu	AL,@(0,X)
	cmp	AL,#'*'
	beq	?L200F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?555.1:
;				GPRMC.sun_data2[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?556.1:
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	AL,#lwrd(2*$c)
	ld	AH,#hwrd(2*$c)
	st	AL,@$?irq_scratchpad?+5	; %r2
	st	AH,@$?irq_scratchpad?+4	; %r2
	movax
	ld.bu	AH,@(0,X)
	st	AH,@$?irq_scratchpad?+5	; %r2
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$?irq_scratchpad?+9	; %r4
	st	AH,@$?irq_scratchpad?+8	; %r4
	ld	AL,@$receive_buffer_count
	ld	AH,#0
	add	AL,@$?irq_scratchpad?+9

⌨️ 快捷键说明

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