?? send_lla.lst
字號:
C51 COMPILER V7.06 SEND_LLA 11/19/2006 12:35:42 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SEND_LLA
OBJECT MODULE PLACED IN send_lla.OBJ
COMPILER INVOKED BY: E:\keil\C51\BIN\C51.EXE send_lla.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "ext_temp.h"
2
3 extern senddsp(void);
4 extern unsigned char toasc(unsigned char m);
5 extern unsigned char *long_to_asc(long p);
6 extern unsigned char *char_to_asc(unsigned char m,bit ch);
7 extern wdt(void);
8 extern WriteCont(unsigned char CMD,unsigned char addr,unsigned char DataArray[],unsigned char offset);
9
10 extern send_lla(void)
11 {
12 1 unsigned char temp,i,*b;
13 1 long p;
14 1 unsigned char a[16];
15 1 char j;
16 1 wdt();
17 1
18 1 rdata[0]='$';rdata[1]='B';
19 1 rdata[2]='D';rdata[3]='L';
20 1 rdata[4]='L';rdata[5]='A';
21 1 rdata[6]=',';
22 1 //**緯度
23 1 // for (i=7;i<=40;i++)
24 1
25 1 if (lat_par>=0)
26 1 p=lat_par;
27 1 else
28 1 {
29 2 p=lat_par^0xffffffff;
30 2 p+=1;
31 2 }
32 1 temp=p/3600000; //緯度度部分(度)
33 1 b=char_to_asc(temp,0);
34 1 rdata[7]=*b++;
35 1 rdata[8]=*b;
36 1 /* rdata[7]=toasc(temp/10); //十位
37 1 rdata[8]=toasc(temp%10); //個位*/
38 1 /***********************/
39 1 temp=(p/60000)%60;//緯度分部分
40 1 b=char_to_asc(temp,0);
41 1 rdata[9]=*b++;
42 1 rdata[10]=*b;
43 1 /* rdata[9]=toasc(temp/10); //十位
44 1 rdata[10]=toasc(temp%10); //個位*/
45 1 for (i=0;i<4;i++)
46 1 lat_asc[i]=rdata[i+7]; //存取緯度ASCII值
47 1
48 1 rdata[11]='.';
49 1 /**********************/
50 1 b= long_to_asc(p);
51 1 for(i=12;i<=16;i++)//緯度分小數部分
52 1 {
53 2 rdata[i]=*b++;
54 2 }
55 1 /************************/
C51 COMPILER V7.06 SEND_LLA 11/19/2006 12:35:42 PAGE 2
56 1 rdata[17]=',';
57 1 if (lat_par >=0)
58 1 rdata[18]='N'; //北緯
59 1 else
60 1 rdata[18]='S'; //南緯
61 1 //**經度
62 1 rdata[19]=',';
63 1 /******************************/
64 1 if (long_par>=0)
65 1 p=long_par;
66 1 else
67 1 {
68 2 p=long_par^0xffffffff;
69 2 p+=1;
70 2 }
71 1 //p=long_par;
72 1 temp=p/360000000; //經度 度
73 1 rdata[20]=toasc(temp); //百
74 1 temp=p/3600000%100;
75 1
76 1 b=char_to_asc(temp,0);
77 1 rdata[21]=*b++;
78 1 rdata[22]=*b;
79 1 /*****************************/
80 1 temp=(p/60000)%60;//經度 分
81 1 b=char_to_asc(temp,0);
82 1 rdata[23]=*b++;
83 1 rdata[24]=*b;
84 1 for(i=0;i<4;i++)
85 1 long_asc[i]=rdata[i+21];//存取經度ASCII值
86 1
87 1 rdata[25]='.';
88 1 /************************/
89 1 b= long_to_asc(p);
90 1 for(i=26;i<=30;i++)//經度分小數部分
91 1 {
92 2 rdata[i]=*b++;
93 2 }
94 1 rdata[31]=',';
95 1 if (long_par >=0)
96 1 rdata[32]='E'; //東經
97 1 else
98 1 rdata[32]='W'; //西經
99 1 rdata[33]=',';
100 1 /***************高度***********/
101 1 // p=high_par/100; //整數部分
102 1 if ((high_par&0x80000000)!=0)
103 1 {
104 2 p=high_par^0xffffffff; //取反
105 2 p+=1;rdata[34]='-';}
106 1 else
107 1 {
108 2 p=high_par%1000000;
109 2 rdata[34]=toasc(high_par/1000000);
110 2
111 2 } //取最高位
112 1 temp=p/10000; //千百
113 1 b=char_to_asc(temp,0);
114 1 rdata[35]=*b++;
115 1 rdata[36]=*b;
116 1 temp=p/100%100;//十個
117 1 b=char_to_asc(temp,0);
C51 COMPILER V7.06 SEND_LLA 11/19/2006 12:35:42 PAGE 3
118 1 rdata[37]=*b++;
119 1 rdata[38]=*b;
120 1
121 1 rdata[39]='.';
122 1 temp=p%100;
123 1 b=char_to_asc(temp,0);
124 1 rdata[40]=*b++;
125 1 rdata[41]=*b;//小數
126 1
127 1 rdata[42]=0x0d;
128 1 rdata[43]=0x0a;
129 1 RXLen =44;
130 1 /****************************存取LLA幀***/
131 1 WriteCont(0x02,0x00,rdata,0);
132 1 WriteCont(0x02,0x10,rdata,16);
133 1 WriteCont(0x02,0x20,rdata,32);
134 1 WriteCont(0x02,0x30,rdata,48);
135 1 /********************************/
136 1 p=lat_par;
137 1 for(j=3;j>=0;j--)
138 1 {
139 2 a[j] =p;
140 2 p=p>>8;
141 2 }
142 1 p=long_par;
143 1 for (j=7;j>=4;j--)
144 1 {
145 2 a[j] =p;
146 2 p=p>>8;
147 2 }
148 1 p=high_par;
149 1 for (j=11;j>=8;j--)
150 1 {
151 2 a[j] =p;
152 2 p=p>>8;
153 2 }
154 1 WriteCont(0x02,0x90,a,0);
155 1 senddsp();
156 1 }
157
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1362 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 25
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -