📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 06/25/2008 15:44:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe MAIN.C DB OE
stmt level source
1 /*********************************************************************************************************
-******************
2 ** 文件名: MAIN.C
3 ** Copyright (c) 北京金时石油测试技术有限公司-测试仪器公司技术开发部
4 ** 创建人: wxt
5 ** 日 期: 2007.06.
6 ** 修改人:
7 ** 日 期:
8 ** 描 述: 转速测试仪
9 ** 硬 件: RotateSpeed(sch & pcb)
10 ** 版 本: V1.0
11 ** 功 能: 采集转速数据
12 ** 硬件描述:
13
14 **********************************************************************************************************
-*****************/
15 #include <c8051F020.h>
16 #include <stdio.h>
17 #include <setjmp.h>
18 #include "HEAD.H"
19 //********************************************************************************************************
-******************
20 jmp_buf ReturnToMain; // 定义返回主程序设置点的寄存器空间
21 unsigned int Timer3=0x00; // 定时器0的寄存器
22 unsigned char DatLong=0x00; // 串口发送数据长度指针
23 unsigned char ComFlag=0x00;
24 unsigned char DateUpLoadFlag=0x00;
25 xdata unsigned char FunctionKey=0x00; // 按键标志
26 xdata unsigned char DatPocket[RtuDataLong+5]={0x00};// 串口发送数据缓冲数组
27 xdata unsigned char RTUaddress4[RtuDataLong]={0x00};
28 xdata unsigned int Sam_Num_flag=0x00;// 采集次数计数
29 xdata unsigned int HollSigNum=0x00;
30 xdata unsigned char disp_ram[8][128]={0x00};
31 xdata unsigned char Clock_Date_Str[9]="07-06-22",Clock_Time_Str[9]="11:40:23";// 时间寄存器
32 xdata unsigned char DI_Data[13]="DI:1111 1111";
33 xdata unsigned char NowWellName=0x00;
34
35 xdata unsigned char Str_Buffer[16];//={0x00};
36
37 float RotateSpeed=0;
38 xdata unsigned int HollSpaceTime=0x00; // 霍尔信号间隔
39
40 xdata unsigned char HollDate[HollDateLong]={0x00};
41 xdata unsigned int HollDataNum=0x00;
42 xdata unsigned char WorkStation=0x00;
43 xdata unsigned char WellSaveStation[MaxWellSaveNum]={0};
44 xdata unsigned char NowWellNum=0x00;
45 xdata unsigned char NowSaveWellAddr=0x00;
46 xdata unsigned char UsedWell[MaxWellSaveNum]; //有效井数
47
48 xdata struct wellindex_name_date well_index[MaxWellSaveNum];
49
50 xdata unsigned char TestTime=1;
51
52 xdata unsigned char TempT2=0x00;
C51 COMPILER V7.06 MAIN 06/25/2008 15:44:08 PAGE 2
53 xdata unsigned int Tem2Con=0x00;
*** WARNING C231 IN LINE 53 OF MAIN.C: 'Tem2Con': redefinition
54 xdata float InstantaneousSpeed=0;
55 //********************************************************************************************************
-******************
56 void main(void)
57 {
58 1 DisableDog();
59 1 EA = 0;
60 1 POWER_ON;
61 1 CRYSTAL_INIT();
62 1 PORT_INIT();
63 1
64 1 //SOUND_ON;
65 1 RTUaddress4[33]=Read_Eeprom(0x7FFF);
66 1 NowWellName=Read_Eeprom(0x7FFE);
67 1 TestTime=Read_Eeprom(0x7FFD);
68 1 if(TestTime>8)
69 1 Write_Eeprom(0x7FFD,1);
70 1 TestTime=Read_Eeprom(0x7FFD);
71 1
72 1 LCD_INIT();
73 1 LED_Init();
74 1 Timer3_Init();
75 1 Com0_Init();
76 1 Com1_Init();
77 1 Timer0_Init();
78 1 DS1302_Init();
79 1 Holl_Init();
80 1 DAC_Init();
81 1 ADC_Init();
82 1 EEPROM_Init();
83 1
84 1 CTRL485 = 0;
85 1 SOUND_OFF;
86 1 EA = 1; // 开总中断
87 1
88 1 setjmp (ReturnToMain) ;
89 1 LCD_CLEAR();
90 1
91 1 while(1)
92 1 {
93 2 //FeedDog();
94 2 if(Timer3%TimeFre==0x00)
95 2 {
96 3 DS1302_Read();
97 3 ADC_Work();
98 3 //LCD_DispStr("RotateSpeed",MainShowAddr,30);
99 3 disp_chn_str("抽油机转速仪",5,20,16,1);
100 3 LCD_SHOW_TIME();
101 3 LCD_SHOW_BatVol();
102 3 LCD_SHOW_InstantaneousSpeed();
103 3 Display_Data();
104 3 }
105 2 if(FunctionKey=get_key( 1 ))
106 2 {
107 3 if(FunctionKey==RETURN_KEY)
108 3 {
109 4 Sys_Function();
110 4 }
111 3 if(FunctionKey==UP_ARROW_KEY)
112 3 {
C51 COMPILER V7.06 MAIN 06/25/2008 15:44:08 PAGE 3
113 4 RTUaddress4[33]=Read_Eeprom(0x7FFF)+2;
114 4 Write_Eeprom(0x7FFF,RTUaddress4[33]);
115 4 }
116 3 if(FunctionKey==DOWN_ARROW_KEY)
117 3 {
118 4 RTUaddress4[33]=Read_Eeprom(0x7FFF)-2;
119 4 Write_Eeprom(0x7FFF,RTUaddress4[33]);
120 4 }
121 3 FunctionKey=0x00;
122 3 }
123 2 if(DateUpLoadFlag!=0x00)
124 2 {
125 3 UpLoadWellDateTure(DatPocket[2]);
126 3 DateUpLoadFlag=0x00;
127 3 }
128 2 }
129 1 }
130 //********************************************************************************************************
-******************
131 void CRYSTAL_INIT(void)
132 {
133 1 xdata unsigned char i; // delay counter
134 1
135 1 OSCXCN = 0x67; // start external oscillator with 11.0592MHz crystal
136 1 for(i=0;i<254;i++); // XTLVLD blanking interval (>1ms)
137 1 while(!(OSCXCN & 0x80));// Wait for crystal osc. to settle
138 1 OSCICN = 0x88; // select external oscillator as SYSCLK source
139 1 // enable missing clock detector,internal oscillator disable
140 1 }
141 //********************************************************************************************************
-******************
142 void PORT_INIT(void)
143 {
144 1 XBR0 = 0x04; // 使能UART0
145 1 //XBR1 = 0x04; // 使能外部中断0
146 1 XBR1 = 0x20; // 使能T2
147 1 XBR2 = 0x44; // 使能数据交叉开关和禁止允许弱上拉,使能UART1
148 1 //P0MDOUT |= 0xFF; // 允许TXD0,RXD0,TXD0,RXD0,INT0为推挽输出
149 1 P1MDOUT |= 0xFF;
150 1 P2MDOUT |= 0xEF;
151 1 P3MDOUT |= 0xFF;
152 1
153 1 P2 |= 0x0F;
154 1 P3 = 0xFF;
155 1
156 1 P74OUT &=~30;
157 1 P6 |= 0xFF;
158 1
159 1 P0MDOUT |= 0x20; // 推挽输出,强制输出0,1
160 1
161 1 P0MDOUT &=~0x10; // 开漏输出,输出1后可读取IO口状态
162 1 P0 |= 0x10;
163 1
164 1 P2MDOUT &=~0x10;
165 1 P2 |= 0x10;
166 1
167 1
168 1 KEYLED = 0;
169 1 }
170 /*
171 //********************************************************************************************************
-******************
C51 COMPILER V7.06 MAIN 06/25/2008 15:44:08 PAGE 4
172 void SoftReset(void)
173 {
174 RSTSRC |= 0x10;
175 }
176
177 //********************************************************************************************************
-******************
178 void FeedDog(void) //启动/复位看门狗
179 {
180 WDTCN = 0xA5; //默认看门狗最大时间间隔是94ms,
181 }
182 */
183 //********************************************************************************************************
-******************
184 void DisableDog(void)
185 {
186 1 WDTCN = 0xDE;
187 1 WDTCN = 0xAD;
188 1 }
189 //********************************************************************************************************
-******************
190 void Delay_ms(unsigned int mini)
191 {
192 1 xdata unsigned char delay;
193 1
194 1 while(mini--)
195 1 {
196 2 for (delay = 240; delay != 0 ; delay--);
197 2 }
198 1 }
199 //********************************************************************************************************
-******************
200 // The End
201 //********************************************************************************************************
-******************
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 393 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = 2957 2
PDATA SIZE = ---- ----
DATA SIZE = 16 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -