?? send_ofs.lst
字號:
C51 COMPILER V7.50 SEND_OFS 11/30/2006 11:39:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SEND_OFS
OBJECT MODULE PLACED IN send_ofs.OBJ
COMPILER INVOKED BY: g:\Keil\C51\BIN\C51.EXE send_ofs.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "ext_temp.h"
2 extern unsigned char toasc(unsigned char m);
3 extern SendDSP(void);
4 extern unsigned char *char_to_asc(unsigned char m,bit ch);
5 extern unsigned long mul_div(unsigned char a[16],unsigned long divisor);
6 extern WriteCont(unsigned char CMD,unsigned char addr,unsigned char DataArray[],unsigned char offset);
7 extern wdt(void);
8
9 extern send_ofs(void)
10 {
11 1 unsigned char num[16];//做除法用
12 1 long xdata temp;
13 1 unsigned char par,*b;
14 1 char i;
15 1
16 1 wdt();
17 1
18 1
19 1 // **********數據轉換算法
20 1 temp =ay_par-az_par;
21 1 if (temp>=500000000)//大于500000000就為負值
22 1 {
23 2 temp=1000000000-temp;//得到負值的正數
24 2 c_flag=1;
25 2 }
26 1 else
27 1 c_flag=0;
28 1
29 1 /* temp -=500000000;
30 1 if (temp<0) //如果是負數,將轉換成正數,再運算
31 1 {
32 1 c_flag=1;//負數
33 1 temp=temp^0xffffffff;
34 1 temp++; //取反加1
35 1 }
36 1 else
37 1 c_flag=0;//正數和0
38 1 /************對數組賦值,準備作除法運算
39 1 ***temp左移23位再除5^9
40 1 ***
41 1 ***************************************/
42 1 temp=temp<<3;//先左移3位,相當于*8
43 1 for(i=10;i>2;i=i-2)//左移20位
44 1 {
45 2 par=temp;
46 2 num[i]=par&0x0f;
47 2 num[i-1]=par>>4;
48 2 temp=temp>>8;
49 2 }
50 1 // a[1]=temp;a[0]=0;//
51 1 for(i=11;i<16;i++)
52 1 num[i]=0x00;
53 1 num[1]=0;num[0]=0;
54 1 num[2]=0;
55 1
C51 COMPILER V7.50 SEND_OFS 11/30/2006 11:39:45 PAGE 2
56 1 temp=mul_div(num,1953125);//除5^9
57 1
58 1 if (c_flag) //temp是負值,將得到的值取負號
59 1 {
60 2 temp=temp^0xffffffff;
61 2 temp=temp+1;//取反加1
62 2 }
63 1 //重組$BDOFS幀
64 1 rdata[0]='$';rdata[1]='B';
65 1 rdata[2]='D';rdata[3]='O';
66 1 rdata[4]='F';rdata[5]='S';
67 1 rdata[6]=',';
68 1
69 1 par =temp;
70 1 b=char_to_asc(par,1);
71 1 rdata[13]=*b++;
72 1 rdata[14]=*b;
73 1 par =temp>>8;
74 1 b=char_to_asc(par,1);
75 1 rdata[11]=*b++;
76 1 rdata[12]=*b;
77 1 par =temp>>16;
78 1 b=char_to_asc(par,1);
79 1 rdata[9]=*b++;
80 1 rdata[10]=*b;
81 1 par =temp>>24;
82 1 b=char_to_asc(par,1);
83 1 rdata[7]=*b++;
84 1 rdata[8]=*b;
85 1 rdata[15]=',';
86 1 for (i=0;i<4;i++)
87 1 pps_asc[i]=rdata[i+9];//提取PPS部分值
88 1
89 1 for (i=16;i<=23;i++)
90 1 rdata[i]=0x30;//0
91 1 rdata[24]=0x0d;
92 1 rdata[25]=0x0a;
93 1
94 1 /***************存取OFS幀*****************/
95 1 WriteCont(0x02,0x60,rdata,0);
96 1 WriteCont(0x02,0x70,rdata,16);
97 1 WriteCont(0x02,0x80,rdata,32);
98 1 /*******************************************/
99 1 temp = ay_par;
100 1 for(i=3;i>=0;i--)
101 1 {
102 2 num[i]=temp;
103 2 temp=temp>>8;
104 2 }
105 1 temp = az_par;
106 1 for(i=7;i>=4;i--)
107 1 {
108 2 num[i]=temp;
109 2 temp=temp>>8;
110 2 }
111 1 WriteCont(0x02,0xA0,num,0);
112 1
113 1 /*********************************/
114 1 RXLen =26;
115 1
116 1 //**發送經DSP
117 1 SendDSP();
C51 COMPILER V7.50 SEND_OFS 11/30/2006 11:39:45 PAGE 3
118 1
119 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 870 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 4
PDATA SIZE = ---- ----
DATA SIZE = ---- 21
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 + -