📄 fourchannel.lst
字号:
137 =1 sbit T0 = P3^4;
138 =1 sbit INT1 = P3^3;
139 =1 sbit INT0 = P3^2;
140 =1 sbit TXD = P3^1;
141 =1 sbit RXD = P3^0;
142 =1
143 =1
144 =1 sfr AUXR = 0x8E;
145 =1
146 =1 sfr SADEN = 0xB9;
147 =1
148 =1 sfr SADEN_1 = 0xBA;
149 =1
150 =1 sfr IPH = 0xB7;
151 =1 sfr IPH0 = 0xB7;
152 =1
153 =1 sfr IPL = 0xB8;
154 =1 sfr IPL0 = 0xB8;
155 =1
156 =1 sbit PPC = IPL^6;
157 =1 sbit PT2 = IPL^5;
158 =1 sbit PS = IPL^4;
159 =1 sbit PT1 = IPL^3;
160 =1 sbit PX1 = IPL^2;
161 =1 sbit PT0 = IPL^1;
162 =1 sbit PX0 = IPL^0;
163 =1
164 =1 sfr T2CON = 0xC8;
165 =1
166 =1 sbit TF2 = T2CON^7;
167 =1 sbit EXF2 = T2CON^6;
168 =1 sbit RCLK = T2CON^5;
169 =1 sbit TCLK = T2CON^4;
170 =1 sbit EXEN2 = T2CON^3;
171 =1 sbit TR2 = T2CON^2;
172 =1 sbit CT2 = T2CON^1;
173 =1 sbit CPRL2 = T2CON^0;
174 =1
175 =1 sfr T2MOD = 0xC9;
176 =1
177 =1 sfr RCAP2L = 0xCA;
178 =1 sfr RCAP2H = 0xCB;
179 =1 sfr TL2 = 0xCC;
180 =1 sfr TH2 = 0xCD;
181 =1
182 =1 sfr BDRCON = 0x9B;
183 =1
184 =1 sfr BDRCON_1 = 0x9C;
185 =1
186 =1
187 =1 sfr PSW = 0xD0;
188 =1 sbit CY = PSW^7;
189 =1 sbit AC = PSW^6;
190 =1 sbit F0 = PSW^5;
191 =1 sbit RS1 = PSW^4;
192 =1 sbit RS0 = PSW^3;
193 =1 sbit OV = PSW^2;
194 =1 sbit UD = PSW^1;
195 =1 sbit P = PSW^0;
196 =1
197 =1 sfr CCON = 0xD8;
198 =1
C51 COMPILER V7.50 FOURCHANNEL 08/28/2005 08:07:34 PAGE 5
199 =1 sbit CF = CCON^7;
200 =1 sbit CR = CCON^6;
201 =1 sbit CCF4 = CCON^4;
202 =1 sbit CCF3 = CCON^3;
203 =1 sbit CCF2 = CCON^2;
204 =1 sbit CCF1 = CCON^1;
205 =1 sbit CCF0 = CCON^0;
206 =1
207 =1 sfr CMOD = 0xD9;
208 =1
209 =1 sfr CCAPM0 = 0xDA;
210 =1 sfr CCAPM1 = 0xDB;
211 =1 sfr CCAPM2 = 0xDC;
212 =1 sfr CCAPM3 = 0xDD;
213 =1 sfr CCAPM4 = 0xDE;
214 =1
215 =1 sfr CL = 0xE9;
216 =1
217 =1 sfr CCAP0L = 0xEA;
218 =1
219 =1 sfr CCAP1L = 0xEB;
220 =1
221 =1 sfr CCAP2L = 0xEC;
222 =1
223 =1 sfr CCAP3L = 0xED;
224 =1
225 =1 sfr CCAP4L = 0xEE;
226 =1
227 =1 sfr ACC = 0xE0;
228 =1 sfr B = 0xF0;
229 =1
230 =1 sfr CH = 0xF9;
231 =1
232 =1 sfr CCAP0H = 0xFA;
233 =1 sfr CCAP1H = 0xFB;
234 =1 sfr CCAP2H = 0xFC;
235 =1 sfr CCAP3H = 0xFD;
236 =1 sfr CCAP4H = 0xFE;
237 =1
238 =1 sfr ICON = 0xFF;
239 =1 sfr CKSEL = 0x85;
240 =1 sfr OSCCON = 0x86;
241 =1
242 =1 sfr FCON = 0xD1;
243 =1 sfr EECON = 0xD2;
244 =1 sfr EETIM = 0xD3;
245 =1
246 =1
247 =1
248 =1
3 #include <ABSACC.H>
1 =1 /*--------------------------------------------------------------------------
2 =1 ABSACC.H
3 =1
4 =1 Direct access to 8051, extended 8051 and Philips 80C51MX memory areas.
5 =1 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 #ifndef __ABSACC_H__
10 =1 #define __ABSACC_H__
11 =1
C51 COMPILER V7.50 FOURCHANNEL 08/28/2005 08:07:34 PAGE 6
12 =1 #define CBYTE ((unsigned char volatile code *) 0)
13 =1 #define DBYTE ((unsigned char volatile data *) 0)
14 =1 #define PBYTE ((unsigned char volatile pdata *) 0)
15 =1 #define XBYTE ((unsigned char volatile xdata *) 0)
16 =1
17 =1 #define CWORD ((unsigned int volatile code *) 0)
18 =1 #define DWORD ((unsigned int volatile data *) 0)
19 =1 #define PWORD ((unsigned int volatile pdata *) 0)
20 =1 #define XWORD ((unsigned int volatile xdata *) 0)
21 =1
22 =1
23 =1 #ifdef __CX51__
=1 #define FVAR(object, addr) (*((object volatile far *) (addr)))
=1 #define FARRAY(object, base) ((object volatile far *) (base))
=1 #define FCVAR(object, addr) (*((object const far *) (addr)))
=1 #define FCARRAY(object, base) ((object const far *) (base))
=1 #else
29 =1 #define FVAR(object, addr) (*((object volatile far *) ((addr)+0x10000L)))
30 =1 #define FCVAR(object, addr) (*((object const far *) ((addr)+0x810000L)))
31 =1 #define FARRAY(object, base) ((object volatile far *) ((base)+0x10000L))
32 =1 #define FCARRAY(object, base) ((object const far *) ((base)+0x810000L))
33 =1 #endif
34 =1
35 =1 #endif
4
5 #define GS 56 //GS<65,受eliminate_pulse()中整型数的制约
6 #define GS2 28 //GS/2
7 typedef unsigned char uchar;
8 typedef unsigned int uint;
9 typedef unsigned long int ulong;
10 /*-------变量定义区-----------*/
11 sbit pwmplus=P1^0; //步进电机驱动输出
12 sbit stb= P1^1; //打印机启动脉冲
13 sbit busy= P1^2; //打印机忙,不能接收字符
14 sbit ad_oe= P3^3; //AD输出允许
15 sbit ad_star=P3^4; //AD地址锁存及转换开始
16 sbit p_e= P3^5; //显示屏时钟
17 sbit p_rw= P3^6; //显示屏读/写切换
18 sbit p_di= P3^7; //显示屏命令/数据切换
19 float code rev_num[7]={5.0,6.666666,8.333333,10.0,11.66667,13.33333,16.66667};//转速300,400,500,600,700,80
-0,1000
20 uint code pwm[7][2]={{0xF6FF,2400},{0xF93F,3200},{0xFA99,4000},{0xFB7F,4800},{0xFC24,5600},{0xFC9F,6400},{
-0xFD4C,8000}};
21 ////uint code pwm[7][2]={{0xF6E2,2400},{0xF925,3200},{0xFA8D,4000},{0xFB6B,4800},{0xFC12,5600},{0xFC9C,640
-0},{0xFD4A,8000}};//pwm[x][1]存rcap2h,300,400,500,600,700,800,1000
22 /*-------中断定义区-----------*/
23 uchar data pwmtimeover=1; //T2 4mS定时时间到,清零;在pwmoutup()函数中使用
24 uint data pwma _at_ 0x30; //pwmoutup()中负责T2的RCAP2的读写
25 uchar data pwmh _at_ 0x31;
26 uchar data pwml _at_ 0x30;
27 //------------------------------------------------------------------------------------------
28 uint data vinp _at_ 0x2e; //catchrdy()中断函数中负责CAP的读写
29 uchar data vinh _at_ 0x2f;
30 uchar data vinl _at_ 0x2e; //CCAP0L,CCAP0H的值的映象
31 uchar data UseFlag; //AD使用标志用在AD转换标定起始位置
32 uint xdata PlusTemp0[GS]; //脉冲值测量数据暂存[84]
33 uint xdata PlusTemp1[GS]; //脉冲值测量数据暂存[84]
34 uchar data PlusCount0,PlusCount1; //通道已存个数-
35 uchar data PlusOver0,PlusOver1; //每通道错误次数
36 /*-------数理统计定义区-------*/
37 uint idata ComputTemp[GS2]; //数理统计暂存,由ptemp指针读写[42]
38 uchar idata SamQuan; //当前有效样本个数
C51 COMPILER V7.50 FOURCHANNEL 08/28/2005 08:07:34 PAGE 7
39 float idata Ave,SquDec,HWidth,LWidth; //平均值;方差;每通道最大最小值
40 uchar PlusError,DError[4]; //无脉冲错误;错误标志位 位地址: 7:通道脉冲 6:最低高电
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -