beicheng2s.lst
来自「基于89c2051开发的ptr8000一对多无线通信程序.」· LST 代码 · 共 175 行
LST
175 行
C51 COMPILER V7.06 BEICHENG2S 01/14/2007 17:12:04 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE BEICHENG2S
OBJECT MODULE PLACED IN beicheng2s.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE beicheng2s.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include <absacc.h>
3 #include <stdio.h>
4 #define RBUFFLEN 7
5 #define SBUFFLEN 7
6 unsigned char TLV=0;
7 unsigned char THV=0;
8 unsigned short SECTICKS=18; //65536/(65536-(THV*256+TLV))*18;
9 unsigned short HALFSECTICKS=9;
10 unsigned short adbuff[8];
11 unsigned char rbuff[RBUFFLEN],sbuff[SBUFFLEN];
12 unsigned char rbuffp=0,sbuffp=0;
13 unsigned char count=0,chno=0,lastchno;
14 unsigned char ticks=0;ticks1=0,ticks2=0,ticksl2=0,ticksh2=0;
15 unsigned char in;
16 unsigned short advalue,advl,advh;
17 bit triggle=0,sendbz=0;
18 void delay()
19 {
20 1 unsigned short i,j;
21 1 for(i=0;i<30;i++) j=i;
22 1 }
23 void e0int() interrupt 0
24 {
25 1 //P1=P1 ^ 0x80; // Feed watchdog.
26 1 //advh=XBYTE[0x4002];
27 1 //advl=XBYTE[0x4003];
28 1 //advalue=(advh<<4)+(advl>>4);
29 1 //adbuff[chno]=(adbuff[chno]+advalue)>>1; //advalue;
30 1 ticks1++;
31 1 //XBYTE[0x4000]=0; //Start AD.
32 1 //lastchno=chno;
33 1 //if(++chno == 8) chno=0;
34 1 //P1=0xf8+chno; //Change channl.}
35 1 }
36 void e1int() interrupt 2
37 {
38 1 ticks2++;
39 1 }
40 void t0int() interrupt 1
41 {
42 1 //unsigned char i;
43 1 count++;
44 1 //XBYTE[0x4000]=0; //Start AD.
45 1 if(count == HALFSECTICKS)
46 1 {
47 2 //sbuff[17]=XBYTE[0x2103]; //Read PC.
48 2 //for(i=0;i<22;i++) putchar(sbuff[i]);
49 2 triggle=1;
50 2 }
51 1 if(count == SECTICKS)
52 1 {
53 2 count=0;
54 2 ticks=ticks1;
55 2 ticks1=ticks2=0;
C51 COMPILER V7.06 BEICHENG2S 01/14/2007 17:12:04 PAGE 2
56 2 triggle=1;
57 2 }
58 1 }
59 void comint() interrupt 4
60 {
61 1 if(RI)
62 1 {
63 2 RI=0;
64 2 rbuff[rbuffp]=SBUF;
65 2 if((rbuff[rbuffp] == 'E') && (rbuff[(rbuffp+RBUFFLEN-4)%RBUFFLEN] == 'S'))
66 2 {
67 3 switch (rbuff[(rbuffp+RBUFFLEN-3)%RBUFFLEN])
68 3 {
69 4 case 'O':
70 4 XBYTE[0x2102]=rbuff[(rbuffp+RBUFFLEN-2)%RBUFFLEN]; //Set PB.
71 4 break;
72 4 case 'D':
73 4 XBYTE[0x6000]=rbuff[(rbuffp+RBUFFLEN-2)%RBUFFLEN]; //Set DA.
74 4 break;
75 4 default:break;
76 4 }
77 3 }
78 2 rbuffp++;
79 2 if(rbuffp == RBUFFLEN) rbuffp=0;
80 2 }
81 1 /*
82 1 if(TI)
83 1 {
84 1 TI=0;
85 1 if(sendbz) SBUF=sbuff[sbuffp];
86 1 if(++sbuffp==SBUFFLEN)
87 1 {
88 1 sbuffp=0;
89 1 sendbz=0;
90 1 }
91 1 }
92 1 */
93 1 }
94 void main (void)
95 {
96 1 unsigned char i;
97 1 sbuff[0]=0xd7;
98 1 sbuff[1]=0x06;
99 1 sbuff[2]='S';
100 1 sbuff[5]=0x00;
101 1 sbuff[6]='E';
102 1 XBYTE[0x6000]=0; //Set DA=0V.
103 1 XBYTE[0x2104]=0x80;
104 1 XBYTE[0x2105]=0x40;
105 1 XBYTE[0x2100]=0xc0; //pa,pb,pc in.//0xc3; //Control byte set,pa,pb out,pc in
106 1 SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
107 1 TMOD |= 0x21; /* TMOD: timer 1, mode 2, 8-bit reload */
108 1 TH1 = 0xfd; //9600bps 0xe8; //1200bps,0xfd; //9600bps for 11.0592M /* TH1: reload value
-for 1200 baud @ 16MHz */
109 1 TR1 = 1; /* TR1: timer 1 run */
110 1 IT1 = 1;
111 1 IT0 = 1;
112 1 TI = 1; /* TI: set TI to send first char of UART */
113 1 TR0 = 1;
114 1 IE = 0x87;
115 1 P1=0xf8; //Select chno=0;
116 1 for(i=0;i<8;i++) adbuff[i]=0;
C51 COMPILER V7.06 BEICHENG2S 01/14/2007 17:12:04 PAGE 3
117 1 XBYTE[0x4000]=0; //Start AD.
118 1 while (1)
119 1 {
120 2 delay();
121 2 //adbuff[chno]=(adbuff[chno]>>1)+(adbuff[chno]>>2)+(advalue>>2); //ReadAD.
122 2 //adbuff[lastchno]=(adbuff[lastchno]+(adbuff[lastchno]<<1)+advalue)>>2; //ReadAD.
123 2 //sbuff[lastchno*2+1]=(unsigned char)(adbuff[lastchno]>>8);
124 2 //sbuff[lastchno*2+2]=(unsigned char)(adbuff[lastchno] & 0x00ff);
125 2 if(triggle)
126 2 {
127 3 triggle=0;
128 3 in=XBYTE[0x2101]; //Read PA port.
129 3 sbuff[3]=in;
130 3 in=XBYTE[0x2102]; //Read PB port.
131 3 sbuff[4]=in;
132 3 for(i=0;i<RBUFFLEN;i++) putchar(sbuff[i]);
133 3 //printf("AD=");
134 3 //for(i=0;i<8;i++)
135 3 //printf("%03X,",adbuff[i]);
136 3 //%03X,%03X,%03X,%03X,%03X,%03X,%03X,%03X,IO=%02BX,END\n",adbuff[0],adbuff[1],adbuff[2],adbuff[3],adbuf
-f[4],adbuff[5],adbuff[6],adbuff[7],in);
137 3 //printf("IO=%02BX,",ticks); //in);
138 3 //printf("END\n");
139 3 //sbuffp=0;
140 3 //sendbz=1;
141 3 //TI=1;
142 3 }
143 2 }
144 1 }
145
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 379 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 57 3
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?