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

📄 main.asm

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; generated by Norcroft eCOG C Compiler V1.10 $BuildRevision$
; special options:  -g
;
	MODULE main___main
	.CODE
	.LARGE
	; TARGET_MAX_STACK_OVERRUN = 8
;/******************************************************************************
;MODE:		AML--#GPS+accelerator+compass
;MCU:		Cyan eCOG1k
;COMPILER:	CyanIDE v1.41
;FILE NAME:	main C source code files
;******************************************************************************/
;#define main_code
;
;/******************************************************************************
;Project level include files.
;******************************************************************************/
;#include <ecog.h>
;#include <ecog1.h>
;#include "gps.h"
;#include "key_scan.h"
;#include "cyan_base_driver.h"
;
;/******************************************************************************
;Global variables.
;******************************************************************************/
;unsigned int	led_timer_count = 0;
;unsigned int	a_baud_save = 162;
;
;char			send_latitude[10];
;char			send_latitude_aspect[2];
;char			send_longitude[11];
;char			send_longitude_aspect[2];
;char			send_antenna_height[9];
;char			send_gps_state[2];
;
;char			receive_temp_buf[20];
;unsigned int	receive_p;
;/******************************************************************************
;Private constants and types.
;******************************************************************************/
;#define RESPONSE_TIME		1000//ms
;#define CTRL_Z 				26
;/******************************************************************************
;Declaration of static functions.
;******************************************************************************/
;void SIM300C_initialization(void);
;/******************************************************************************
;main functions.
;******************************************************************************/
;int main(int argc, char* argv[])
;
$main:
^main___main.'D:\simcom\software\SIM300C\main.c'.?45.1:
	add	Y,#-12
Lstab?0a:
	st	AL,@(10,Y)
	st	AH,@(11,Y)
	st	XH,@(8,Y)
	st	X,@(9,Y)
	st	AH,@(5,Y)	; %r18 (argv)
	st	AL,@(7,Y)	; %r19 (argc)
Lstab?1c:
;{
^main___main.'D:\simcom\software\SIM300C\main.c'.?46.1:
Lstab?2c:
^main___main.'D:\simcom\software\SIM300C\main.c'.?47.1:
	ld	AL,#0
;	unsigned int i,key_value = 0;
;	
;	timer_initialization();
	st	AL,@(3,Y)	; %r17 (key_value)
^main___main.'D:\simcom\software\SIM300C\main.c'.?49.1:
	bsr	$timer_initialization
;	uart_initialization();
^main___main.'D:\simcom\software\SIM300C\main.c'.?50.1:
	bsr	$uart_initialization
;	gps_initialization();
^main___main.'D:\simcom\software\SIM300C\main.c'.?51.1:
	bsr	$gps_initialization
;	
;	delay_ms(5000);
^main___main.'D:\simcom\software\SIM300C\main.c'.?53.1:
	ld	AL,#5000
	bsr	$delay_ms
;	delay_ms(5000);
^main___main.'D:\simcom\software\SIM300C\main.c'.?54.1:
	ld	AL,#5000
	bsr	$delay_ms
;	
;	SIM300C_initialization();
^main___main.'D:\simcom\software\SIM300C\main.c'.?56.1:
	bsr	$SIM300C_initialization
;	delay_ms(1000);
^main___main.'D:\simcom\software\SIM300C\main.c'.?57.1:
	ld	AL,#1000
	bsr	$delay_ms
;	SIM300C_initialization();
^main___main.'D:\simcom\software\SIM300C\main.c'.?58.1:
	bsr	$SIM300C_initialization
;	delay_ms(1000);
^main___main.'D:\simcom\software\SIM300C\main.c'.?59.1:
	ld	AL,#1000
	bsr	$delay_ms
;	
;	fd.tim.int_en1.cnt1_exp = 1;		//LED3 flash indicate normal operation,
^main___main.'D:\simcom\software\SIM300C\main.c'.?61.1:
	ld	AL,@$fd+H'9b
	or	AL,#4
	st	AL,@$fd+H'9b
;										//Timer1 control it.
;	while(1)
^main___main.'D:\simcom\software\SIM300C\main.c'.?63.1:
?L5F1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?63.1:
;	{	
^main___main.'D:\simcom\software\SIM300C\main.c'.?64.1:
;		if(GPS_RECEIVE_DONE_FLAG)
^main___main.'D:\simcom\software\SIM300C\main.c'.?65.1:
	ld	AL,@$routing_flag
	asr	#12
	and	AL,#15
	beq	?L66F1
;		{
^main___main.'D:\simcom\software\SIM300C\main.c'.?66.1:
;			if(GPGSA.position_MSG[0] < '2')
^main___main.'D:\simcom\software\SIM300C\main.c'.?67.1:
	ld	AL,#$GPGSA
	ld	AH,#0
	asl	#1
	movax
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	ld.bu	AL,@(9,X)
	cmp	AL,#'2'
	blt	?L145F1
	bra	?L11F1
?L145F1:
;			{
^main___main.'D:\simcom\software\SIM300C\main.c'.?68.1:
;				rg.io.gp0_3_out = IO_GP0_3_OUT_SET0_MASK;		//LED0 indicate GPS in position.
^main___main.'D:\simcom\software\SIM300C\main.c'.?69.1:
	ld	AL,#1
	st	AL,@$rg+H'10d
	bra	?L15F1
?L11F1:
;			}
;			else
;			{
^main___main.'D:\simcom\software\SIM300C\main.c'.?72.1:
;				rg.io.gp0_3_out = IO_GP0_3_OUT_CLR0_MASK;
^main___main.'D:\simcom\software\SIM300C\main.c'.?73.1:
	ld	AL,#2
	st	AL,@$rg+H'10d
?L15F1:
;			}
;			
;			GPS_RECEIVE_DONE_FLAG = 0;
^main___main.'D:\simcom\software\SIM300C\main.c'.?76.1:
	ld	AL,@$routing_flag
	and	AL,#4095
	st	AL,@$routing_flag
;			for(i = 0;i < 2;i++)
^main___main.'D:\simcom\software\SIM300C\main.c'.?77.1:
	ld	AL,#0
	st	AL,@(1,Y)	; %r16 (i)
?L19F1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?77.1:
	ld	AH,@(1,Y)	; %r16 (i)
	cmp	AH,#2
	bcs	?L18F1
	bra	?L21F1
?L20F1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?77.1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?77.1:
	ld	AL,@(1,Y)	; %r16 (i)
	add	AL,#1
	st	AL,@(1,Y)	; %r16 (i)
	bra	?L19F1
?L18F1:
;			{
^main___main.'D:\simcom\software\SIM300C\main.c'.?78.1:
;				send_gps_state[i] = GPGSA.position_MSG[i];
^main___main.'D:\simcom\software\SIM300C\main.c'.?79.1:
	ld	AL,#$GPGSA
	ld	AH,#0
	asl	#1
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	ld	AL,@(1,Y)	; %r16 (i)
	ld	AH,#0
	add	AL,@H'ffe5	; %r2
	addc	AH,@H'ffe4	; %r2
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	movax
	ld.bu	AH,@(9,X)
	st	AH,@H'ffe5	; %r2
	ld	AL,@(1,Y)	; %r16 (i)
	ld	AH,#0
	add	AL,#lwrd(2*$send_gps_state)
	addc	AH,#hwrd(2*$send_gps_state)
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	movax
	ld	AH,@H'ffe5	; %r2
	st.b	AH,@(0,X)
;				if(send_gps_state[i] == ',')
^main___main.'D:\simcom\software\SIM300C\main.c'.?80.1:
	ld	AL,@(1,Y)	; %r16 (i)
	ld	AH,#0
	add	AL,#lwrd(2*$send_gps_state)
	addc	AH,#hwrd(2*$send_gps_state)
	movax
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	ld.bu	AL,@(0,X)
	cmp	AL,#','
	bne	?L24F1
;					send_gps_state[i] = 0;
^main___main.'D:\simcom\software\SIM300C\main.c'.?81.1:
	ld	AH,#0
	st	AH,@H'ffe5	; %r2
	ld	AL,@(1,Y)	; %r16 (i)
	add	AL,#lwrd(2*$send_gps_state)
	addc	AH,#hwrd(2*$send_gps_state)
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	movax
	ld	AH,@H'ffe5	; %r2
	st.b	AH,@(0,X)
?L24F1:
	bra	?L20F1
?L21F1:
;			}
;			for(i = 0;i < 10;i++)
^main___main.'D:\simcom\software\SIM300C\main.c'.?83.1:
	ld	AL,#0
	st	AL,@(1,Y)	; %r16 (i)
?L28F1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?83.1:
	ld	AH,@(1,Y)	; %r16 (i)
	cmp	AH,#10
	bcs	?L27F1
	bra	?L30F1
?L29F1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?83.1:
; ^main___main.'D:\simcom\software\SIM300C\main.c'.?83.1:
	ld	AL,@(1,Y)	; %r16 (i)
	add	AL,#1
	st	AL,@(1,Y)	; %r16 (i)
	bra	?L28F1
?L27F1:
;			{
^main___main.'D:\simcom\software\SIM300C\main.c'.?84.1:
;				send_latitude[i] = GPGGA.latitude[i];
^main___main.'D:\simcom\software\SIM300C\main.c'.?85.1:
	ld	AL,#$GPGGA
	ld	AH,#0
	asl	#1
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	ld	AL,@(1,Y)	; %r16 (i)
	ld	AH,#0
	add	AL,@H'ffe5	; %r2
	addc	AH,@H'ffe4	; %r2
	st	AL,@H'ffe5	; %r2
	st	AH,@H'ffe4	; %r2
	movax
	ld.bu	AH,@(17,X)
	st	AH,@H'ffe5	; %r2
	ld	AL,@(1,Y)	; %r16 (i)
	ld	AH,#0
	add	AL,#lwrd(2*$send_latitude)
	addc	AH,#hwrd(2*$send_latitude)
	st	AL,@H'ffe7	; %r3
	st	AH,@H'ffe6	; %r3
	movax
	ld	AH,@H'ffe5	; %r2
	st.b	AH,@(0,X)
;				if(send_latitude[i] == ',')
^main___main.'D:\simcom\software\SIM300C\main.c'.?86.1:
	ld	AL,@(1,Y)	; %r16 (i)
	ld	AH,#0
	add	AL,#lwrd(2*$send_latitude)
	addc	AH,#hwrd(2*$send_latitude)
	movax
	st	AL,@H'ffe5	; %r2

⌨️ 快捷键说明

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