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

📄 gps.asm

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	st	AH,@H'ffea	; %r5
	movax
	ld	AH,@H'ffe9	; %r4
	st.b	AH,@(75,X)
;	
;	GPGSV3.CR_LF[0] = CR;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?248.1:
	ld	AH,#'\r'
	st	AH,@H'ffe9	; %r4
	ld	AL,#$GPGSV3
	ld	AH,#0
	asl	#1
	st	AL,@H'ffeb	; %r5
	st	AH,@H'ffea	; %r5
	movax
	ld	AH,@H'ffe9	; %r4
	st.b	AH,@(74,X)
;	GPGSV3.CR_LF[1] = LF;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?249.1:
	ld	AH,#'\n'
	st	AH,@H'ffe9	; %r4
	ld	AL,#$GPGSV3
	ld	AH,#0
	asl	#1
	st	AL,@H'ffeb	; %r5
	st	AH,@H'ffea	; %r5
	movax
	ld	AH,@H'ffe9	; %r4
	st.b	AH,@(75,X)
;	
;	GPGSV4.CR_LF[0] = CR;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?251.1:
	ld	AH,#'\r'
	st	AH,@H'ffe9	; %r4
	ld	AL,#$GPGSV4
	ld	AH,#0
	asl	#1
	st	AL,@H'ffeb	; %r5
	st	AH,@H'ffea	; %r5
	movax
	ld	AH,@H'ffe9	; %r4
	st.b	AH,@(74,X)
;	GPGSV4.CR_LF[1] = LF;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?252.1:
	ld	AH,#'\n'
	st	AH,@H'ffe9	; %r4
	ld	AL,#$GPGSV4
	ld	AH,#0
	asl	#1
	st	AL,@H'ffeb	; %r5
	st	AH,@H'ffea	; %r5
	movax
	ld	AH,@H'ffe9	; %r4
	st.b	AH,@(75,X)
;	
;	GPS_TX_ready_flag = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?254.1:
	ld	AL,#0
	st	AL,@$GPS_TX_ready_flag
;	receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?255.1:
	st	AL,@$receive_buffer_count
;	receive_flag = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?256.1:
	st	AL,@$receive_flag
;	gps_state = '0';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?257.1:
	ld	AL,#'0'
	st	AL,@H'ffe1	; %r0
	ld	AL,#lwrd(2*$gps_state)
	ld	AH,#hwrd(2*$gps_state)
	movax
	st	AL,@H'ffe9	; %r4
	st	AH,@H'ffe8	; %r4
	ld	AL,@H'ffe1	; %r0
	st.b	AL,@(0,X)
;	GPS_TX_gradation_flag = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?258.1:
	ld	AL,#0
	st	AL,@$GPS_TX_gradation_flag
;	GPS_TX_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?259.1:
	st	AL,@$GPS_TX_count
;	_GSV_TX_sum_ = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?260.1:
	st	AL,@H'ffe1	; %r0
	ld	AL,#lwrd(2*$_GSV_TX_sum_)
	ld	AH,#hwrd(2*$_GSV_TX_sum_)
	movax
	st	AL,@H'ffe9	; %r4
	st	AH,@H'ffe8	; %r4
	ld	AL,@H'ffe1	; %r0
	st.b	AL,@(0,X)
;	
;	GPGGA_TX_pointer = (char *)(&GPGGA);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?262.1:
	ld	AL,#$GPGGA
	ld	AH,#0
	asl	#1
	st	AL,@$GPGGA_TX_pointer+H'1
	st	AH,@$GPGGA_TX_pointer
;	GPGSA_TX_pointer = (char *)(&GPGSA);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?263.1:
	ld	AL,#$GPGSA
	ld	AH,#0
	asl	#1
	st	AL,@$GPGSA_TX_pointer+H'1
	st	AH,@$GPGSA_TX_pointer
;	GPGSV1_TX_pointer = (char *)(&GPGSV1);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?264.1:
	ld	AL,#$GPGSV1
	ld	AH,#0
	asl	#1
	st	AL,@$GPGSV1_TX_pointer+H'1
	st	AH,@$GPGSV1_TX_pointer
;	GPGSV2_TX_pointer = (char *)(&GPGSV2);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?265.1:
	ld	AL,#$GPGSV2
	ld	AH,#0
	asl	#1
	st	AL,@$GPGSV2_TX_pointer+H'1
	st	AH,@$GPGSV2_TX_pointer
;	GPGSV3_TX_pointer = (char *)(&GPGSV3);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?266.1:
	ld	AL,#$GPGSV3
	ld	AH,#0
	asl	#1
	st	AL,@$GPGSV3_TX_pointer+H'1
	st	AH,@$GPGSV3_TX_pointer
;	GPGSV4_TX_pointer = (char *)(&GPGSV4);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?267.1:
	ld	AL,#$GPGSV4
	ld	AH,#0
	asl	#1
	st	AL,@$GPGSV4_TX_pointer+H'1
	st	AH,@$GPGSV4_TX_pointer
;	GPRMC_TX_pointer = (char *)(&GPRMC);
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?268.1:
	ld	AL,#$GPRMC
	ld	AH,#0
	asl	#1
	st	AL,@$GPRMC_TX_pointer+H'1
	st	AH,@$GPRMC_TX_pointer
Lstab?15c:
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?270.1:
?L55F4:
	add	Y,#2
	ld	XH,@(-2,Y)
	bra	@(-1,Y)
Lstab?16c:
;
;	    
;}   
;    
;/******************************************************************************
;NAME
;    display_gps_data
;
;SYNOPSIS
;    void display_gps_data(void)
;
;FUNCTION
;    Display gps data.
;
;RETURNS
;    Nothing.
;******************************************************************************/
;
;/******************************************************************************
;end
;******************************************************************************/
;
;void __irq_code RMC_receive(void)
;
$RMC_receive?:
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?290.1:
	st	XH,@(-2,Y)
	st	X,@(-1,Y)
Lstab?17c:
;{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?291.1:
;	switch(receive_flag)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?292.1:
	ld	AL,@$receive_flag
	sub	AL,#1
	add	Y,#-2
Lstab?18a:
	cmp	AL,#12
	bcc	?L5F5
	st	AL,@$?irq_scratchpad?+1	; %r0
	ld	X,@$?irq_scratchpad?+1	; %r0
	add	X,@$?irq_scratchpad?+1	; %r0
	brxl
	bra2	?L17F5
	bra2	?L16F5
	bra2	?L15F5
	bra2	?L14F5
	bra2	?L13F5
	bra2	?L12F5
	bra2	?L11F5
	bra2	?L10F5
	bra2	?L9F5
	bra2	?L8F5
	bra2	?L7F5
	bra2	?L6F5
?L17F5:
;			if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?295.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	?L20F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?296.1:
;				GPRMC.UTC_timer[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?297.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	; %r4
	addc	AH,@$?irq_scratchpad?+8	; %r4
	st	AL,@$?irq_scratchpad?+7	; %r3
	st	AH,@$?irq_scratchpad?+6	; %r3
	movax
	ld	AH,@$?irq_scratchpad?+5	; %r2
	st.b	AH,@(7,X)
;				receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?298.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 10)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?299.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#10
	bne	?L23F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?300.1:
;					receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?301.1:
	ld	AL,@$receive_buffer_count
	add	AL,#-1
	st	AL,@$receive_buffer_count
?L23F5:
	bra	?L28F5
?L20F5:
;				}
;			}
;			else
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?305.1:
;				GPRMC.UTC_timer[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?306.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,@(7,X)
;				while(receive_buffer_count < (10 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?307.1:
?L31F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?307.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#9
	bcc	?L32F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?308.1:
;					receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?309.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;					GPRMC.UTC_timer[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?310.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,@(7,X)
	bra	?L31F5
?L32F5:
;					
;				}
;				
;				receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?314.1:
	ld	AL,#0
	st	AL,@$receive_buffer_count
;				receive_flag = RMC_WORK_STATE;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?315.1:
	ld	AL,#2
	st	AL,@$receive_flag
?L28F5:
;			}
;			break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?317.1:
	bra	?L4F5
?L16F5:
;			if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?321.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	?L38F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?322.1:
;				GPRMC.work_state[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?323.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,@(17,X)
;				receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?324.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 2)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?325.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#2
	bne	?L41F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?326.1:
;					receive_buffer_count--;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?327.1:
	ld	AL,@$receive_buffer_count
	add	AL,#-1
	st	AL,@$receive_buffer_count
?L41F5:
	bra	?L46F5
?L38F5:
;				}
;			}
;			else
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?331.1:
;				GPRMC.work_state[receive_buffer_count] = ',';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?332.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,@(17,X)
;				while(receive_buffer_count < (2 - 1))
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?333.1:
?L49F5:
; ^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?333.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#1
	bcc	?L50F5
;				{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?334.1:
;					receive_buffer_count ++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?335.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;					GPRMC.work_state[receive_buffer_count] = ' ';
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?336.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,@(17,X)
	bra	?L49F5
?L50F5:
;					
;				}
;				
;				receive_buffer_count = 0;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?340.1:
	ld	AL,#0
	st	AL,@$receive_buffer_count
;				receive_flag = RMC_LATITUDE;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?341.1:
	ld	AL,#3
	st	AL,@$receive_flag
?L46F5:
;			}
;			break;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?343.1:
	bra	?L4F5
?L15F5:
;			if(c != ',')
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?346.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	?L56F5
;			{
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?347.1:
;				GPRMC.latitude[receive_buffer_count] = c;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?348.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,@(19,X)
;				receive_buffer_count++;
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?349.1:
	ld	AL,@$receive_buffer_count
	add	AL,#1
	st	AL,@$receive_buffer_count
;				if(receive_buffer_count == 10)
^gps___gps.'D:\simcom\software\SIM300C\gps.c'.?350.1:
	ld	AL,@$receive_buffer_count
	cmp	AL,#10
	bne	?L59F5
;				{

⌨️ 快捷键说明

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