📄 spfrsasc.lst
字号:
C51 COMPILER V3.20, SN-50203013 SPFRSASC 05/24/00 15:58:39 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE SPFRSASC
OBJECT MODULE PLACED IN SPFRSASC.OBJ
COMPILER INVOKED BY: C:\MANLEY\C51\BIN\C51.EXE SPFRSASC.C DB OE SMALL ROM(LARGE)
stmt level source
1 #include<reg51.h>
2 #include<absacc.h>
3
4 #define beginram 0x0000
5 #define save_begin 0x0100
6 #define middle_begin 0x1000
7 #define out_begin 0x5000
8 #define ulong unsigned long
9 #define uint unsigned int
10 #define uchar unsigned char
11
12 sbit ram_cs=P1^0;
13 sbit P1_1=P1^1;
14 uint addr_ram_save,addr_ram_middle,addr_ram_out,addr_ram_save1;
15 uint i,j;
16 uchar k,a;
17 uint num,g,m,n,flra,fhra,fra,senddata;
18 uchar rstemp,select,sendok,temp,temp1,temp2,temp3,temp4;
19 uchar flashdata;
20 uchar tempa,tempb,tempc,tempd,tempe,tempf;
21 uchar order[]={0x41,0x54,0x2b,0x43,0x4d,0x47,0x52,0x3d};/*AT+CMGR=*/
22 void initial()
23 {
24 1
25 1 PCON=0x80;//0x00;//0x80;
26 1 TMOD=0X20; /*工作方式2*/
27 1 TL1=0xf3;//0Xf3; /*波特率为4800*/
28 1 TH1=0xf3;//0Xf3;
29 1 SCON=0x50;//0X50; /*工作方式2*/
30 1 TR1=1;
31 1 EA=1;
32 1 ES=1;
33 1 //ET1=0;
34 1 //receiveok=0;
35 1 ram_cs=0;
36 1 P1_1=0;
37 1 //rstemp=1;
38 1 num=0; /*存储的信息条数*/
39 1 g=m=n=0; /*短信字节数*/
40 1 k=2;
41 1 sendok=0;
42 1 addr_ram_save=save_begin;
43 1 //addr_ram_save1=save_begin;
44 1 //addr_ram_middle=middle_begin;
45 1 addr_ram_out=out_begin;
46 1 }
47
48 receive() interrupt 4 using 2
49 {
50 1 while(!RI);
51 1 g++;
52 1 RI=0;
53 1 rstemp=SBUF;
54 1 //if(rstemp=='$')
55 1 //m=1;
C51 COMPILER V3.20, SN-50203013 SPFRSASC 05/24/00 15:58:39 PAGE 2
56 1 //m++;
57 1 //if(rstemp=='$'&m>0)
58 1 //{n=m;m=0;}
59 1 XBYTE[addr_ram_save]=rstemp;
60 1 addr_ram_save=addr_ram_save+1;
61 1 //RI=0;
62 1
63 1 }
64
65
66 void delay(uint i1)
67 {
68 1 uint i2;
69 1 for(i2=0;i2<i1;i2++);
70 1 }
71
72
73 void unicode_to_quwei()
74 {
75 1
76 1 addr_ram_save=save_begin+74;
77 1 //addr_ram_middle=middle_begin;
78 1 for(i=0;i<(g-82)/4;i++)
79 1 {
80 2 P1_1=1;
81 2 tempa=XBYTE[addr_ram_save];
82 2 tempb=XBYTE[addr_ram_save+1];
83 2 if(tempa<0x40)
84 2 tempa=tempa<<4;
85 2 else
86 2 tempa=(tempa-0x37)<<4;
87 2 /*a,b,c,d是字节变量*/
88 2 if(tempb<0x40)
89 2 tempb=tempb<<4;
90 2 else
91 2 tempb=(tempb-0x37)<<4;
92 2 tempb=tempb>>4;
93 2 tempc=XBYTE[addr_ram_save+2];
94 2 tempd=XBYTE[addr_ram_save+3];
95 2 if(tempc<0x40)
96 2 tempc=tempc<<4;
97 2 else
98 2 tempc=(tempc-0x37)<<4;
99 2 if(tempd<0x40)
100 2 tempd=tempd<<4;
101 2 else
102 2 tempd=(tempd-0x37)<<4;
103 2 tempd=tempd>>4;
104 2 tempe=tempa|tempb;/*e,f是字节变量*/
105 2 tempf=tempc|tempd;
106 2 if(tempe<0x4e)
107 2 {fhra=tempe;
108 3 fhra=fhra<<8;
109 3 flra=tempf;
110 3 //flra=XBYTE[addr_ram_save+1];
111 3 fra=fhra|flra;
112 3 fra=fra*2;
113 3 ram_cs=1;
114 3 P1_1=0;
115 3 m=P1&0x1f;
116 3 //XBYTE[0x2200]=0x01;
117 3 P1=m|0x00;
C51 COMPILER V3.20, SN-50203013 SPFRSASC 05/24/00 15:58:39 PAGE 3
118 3 }
119 2 else
120 2 {
121 3 fhra=tempe-0x4e;
122 3 //fhra=XBYTE[addr_ram_save]-0x4e;
123 3 fhra=fhra<<8;
124 3 flra=tempf;
125 3 //flra=XBYTE[addr_ram_save+1];
126 3 fra=fhra|flra;
127 3 fra=fra*2;
128 3 ram_cs=1;
129 3 P1_1=0;
130 3 m=P1&0x1f;
131 3 //XBYTE[0x2200]=0x01;
132 3 P1=m|0x20;
133 3 };
134 2 flashdata=XBYTE[fra];
135 2 temp1=flashdata/16;
136 2 temp2=flashdata-temp1*6;
137 2 temp3=temp2/16;
138 2 temp3=temp3<<4;
139 2 temp4=temp2%16;
140 2 flashdata=temp3|temp4;
141 2 ram_cs=0;
142 2 XBYTE[addr_ram_out]=flashdata;
143 2 ram_cs=1;
144 2 flashdata=XBYTE[fra+1];
145 2 temp1=flashdata/16;
146 2 temp2=flashdata-temp1*6;
147 2 temp3=temp2/16;
148 2 temp3=temp3<<4;
149 2 temp4=temp2%16;
150 2 flashdata=temp3|temp4;
151 2 ram_cs=0;
152 2 XBYTE[addr_ram_out+1]=flashdata;
153 2 addr_ram_out=addr_ram_out+2;
154 2 addr_ram_save=addr_ram_save+4;
155 2 //addr_ram_save=addr_ram_save+2;
156 2 }
157 1 }
158 void send()
159 {
160 1 addr_ram_out=out_begin;
161 1 PCON=0X80;
162 1 TL1=0Xf3;
163 1 TH1=0Xf3;
164 1 TMOD=0X20;
165 1 SCON=0X40;
166 1 TR1=1;
167 1 EA=0;
168 1 //ram_send=beginram;
169 1 for(i=0;i<(g-82)/2;i++)
170 1 {
171 2 P1_1=1;
172 2 senddata=XBYTE[addr_ram_out];
173 2 addr_ram_out=addr_ram_out+1;
174 2 SBUF=senddata;
175 2 while(!TI);
176 2 TI=0;
177 2 //if(senddata=='&')
178 2 //break;
179 2 }
C51 COMPILER V3.20, SN-50203013 SPFRSASC 05/24/00 15:58:39 PAGE 4
180 1 PCON=0x80;//0x80;
181 1 /*继续等待接受,初始化串口*/
182 1 TMOD=0X20;
183 1 TL1=0xf3;//0Xf3;
184 1 TH1=0xf3;//0Xf3;
185 1 SCON=0x50;//0X50;
186 1 TR1=1;
187 1 EA=1;
188 1 ES=1;
189 1
190 1
191 1 }
192
193
194 void send1()
195 {
196 1 //addr_ram_out=order;
197 1 PCON=0X80;
198 1 TL1=0Xf3;
199 1 TH1=0Xf3;
200 1 TMOD=0X20;
201 1 SCON=0X50;
202 1 TR1=1;
203 1 EA=0;
204 1 for(i=0;i<8;i++)
205 1 {
206 2 //P1_1=1;
207 2 //if(i==9)
208 2 // {
209 2 //EA=1;
210 2 // }
211 2 SBUF=order[i];
212 2 while(!TI);
213 2 TI=0;
214 2
215 2 }
216 1 //a=0x30+k;
217 1 a=k;
218 1 SBUF=a;
219 1 //SBUF=0x30+k;
220 1 while(!TI);
221 1 TI=0;
222 1 EA=1;
223 1 SBUF=0x0a;
224 1 while(!TI);
225 1 TI=0;
226 1
227 1
228 1
229 1 }
230
231 main()
232 { initial();
233 1 while(1)
234 1 {
235 2 while(!g);
236 2 delay(5000);
237 2 P1_1=1;
238 2 k=XBYTE[addr_ram_save-3];
239 2 P1_1=0;
240 2 addr_ram_save=save_begin;
241 2 //k++;
C51 COMPILER V3.20, SN-50203013 SPFRSASC 05/24/00 15:58:39 PAGE 5
242 2 g=0;
243 2 send1();
244 2 delay(0xffff);
245 2
246 2
247 2 //addr_ram_out=out_begin;
248 2 //delay(9999);
249 2 //asc_to_unicode();
250 2 //unicode_to_quwei();
251 2 //while(!m); //if(!g)
252 2 //{
253 2 //initial();
254 2 //asc_to_unicode();
255 2 unicode_to_quwei();
256 2 send();
257 2 addr_ram_save=save_begin;
258 2 addr_ram_out=out_begin;
259 2 g=0;
260 2 }
261 1
262 1
263 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 906 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 53 ----
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 + -