📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 04/04/2008 19:55:16 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*===============================================================*/
2 /*函数名称: main.c */
3 /*函数功能: 主函数 */
4 /*入口参数: P2----------------------------------------液晶数据传输
5 P3------------------------------------------液晶控制脚
6 P5--------------------------------------------键盘控制
7 P5.0------------------------------------------显示电流
8 P5.1------------------------------------------显示电压
9 P5.2----------------------------------------显示导纳模
10 P5.3------------------------------------------显示电流
11 P5.3------------------------------------------显示电压
12 P5.3----------------------------------------显示导纳模
13 */
14 /*有无返回: 有 */
15 /*修改记录: 无修改记录 */
16 /*编写作者: t483-4-19chenyong */
17 /*编写日期: 2007-4-06 */
18 /*===============================================================*/
19 #include "common.h"
20 #include "TS12864A.h"
21 #include "PCA.h"
22 #include "ad9851.h"
23 #include "delay.h"
24
25 float Current,Voltage; //真实测量电压,电流值和导纳模
26 float Y_Real, Y_Image;
27 float Y_Abs, Y_Phase;
28 unsigned char keY_Abscode;
29 unsigned long Pulse_Number; //所测量的脉冲个数
30 unsigned long FrequencyLong_HZ;
31 float theta;
32 float reactive_power;
33 float average_power;
34
35 void main(void)
36 {
37 1 Port_Initial();
38 1 Initial_AD9851();
39 1 liangcheng_initial(); //range intial
40 1 EA=1;
41 1 PCA_Initial();
42 1 PCA0_Initial();
43 1 LCD_Init(); //LCD intial
44 1 CleanScreen();
45 1
46 1
47 1
48 1 while(1)
49 1 {
50 2
51 2 keY_Abscode=keyscan();
52 2 switch(keY_Abscode)
53 2 {
54 3 case 1: Port_Initial();
55 3 LCD_Init(); //液晶初始化
C51 COMPILER V8.02 MAIN 04/04/2008 19:55:16 PAGE 2
56 3 CleanScreen();
57 3 EA=1;
58 3 show_Current(); /*显示 电流 A*/
59 3 Current=(float)data_process(0);//采样电流 /*AIN0.0中固定采电流值*/
60 3 Show_FloatData(Current,3,3); //显示电流值
61 3 delay_nms(500);
62 3 EA=0;
63 3 break;
64 3
65 3 case 2: Port_Initial();
66 3 LCD_Init(); //液晶初始化
67 3 CleanScreen();
68 3 EA=1;
69 3 show_Voltage(); /*显示 电压 V*/
70 3 Voltage=(float)data_process(2);//采样电压 /*2*/
71 3 Show_FloatData(Voltage,3,3); //显示电压
72 3 delay_nms(500);
73 3 EA=0;
74 3 break;
75 3
76 3 case 3: Port_Initial();
77 3 LCD_Init(); //液晶初始化
78 3 CleanScreen();
79 3 EA=1;
80 3 show_Y_Abs(); //显示 导纳模 S
81 3 Current=(float)data_process(0);//采样电流
82 3 Voltage=(float)data_process(2);//采样电压
83 3 Y_Abs=(float)Current/Voltage; //计算导纳模
84 3 Show_FloatData(Y_Abs,3,3); //显示导纳模
85 3 delay_nms(500);
86 3 EA=0;
87 3 break;
88 3
89 3 case 4: Port_Initial();
90 3 PCA_Initial(); /*捕捉*/
91 3 PCA0_Initial();
92 3 LCD_Init(); //液晶初始化
93 3 CleanScreen();
94 3 EA=1;
95 3 Pulse_Number=PCA_Capture(); //获取高电平脉冲值
96 3 show_real(); //实部
97 3 Compute_REALandIMAGE(); //计算相位,实部,虚部
98 3 Show_FloatData(Y_Real,3,3); //显示实部
99 3 delay_nms(500);
100 3 EA=0;
101 3 break;
102 3
103 3 case 5: Port_Initial();
104 3 PCA_Initial();
105 3 PCA0_Initial();
106 3 LCD_Init(); //液晶初始化
107 3 CleanScreen();
108 3 EA=1;
109 3 Pulse_Number=PCA_Capture(); //获取高电平脉冲值
110 3 show_image();
111 3 Compute_REALandIMAGE(); //计算相位,实部,虚部
112 3 Show_FloatData(Y_Image,3,3); //显示虚部
113 3 delay_nms(500);
114 3 EA=0;
115 3 break;
116 3
117 3 case 6: Port_Initial();
C51 COMPILER V8.02 MAIN 04/04/2008 19:55:16 PAGE 3
118 3 PCA_Initial();
119 3 PCA0_Initial();
120 3 LCD_Init(); //液晶初始化
121 3 CleanScreen();
122 3 EA=1;
123 3 Pulse_Number=PCA_Capture(); //获取高电平脉冲值
124 3 show_phase();
125 3 Compute_REALandIMAGE(); //计算相位,实部,虚部
126 3 Show_FloatData(Y_Phase,3,3); //显示导纳角
127 3 delay_nms(500);
128 3 EA=0;
129 3 break;
130 3
131 3 case 7: Port_Initial();
132 3 PCA_Initial();
133 3 PCA0_Initial();
134 3 LCD_Init(); //液晶初始化
135 3 CleanScreen();
136 3 EA=1;
137 3 Pulse_Number=PCA_Capture(); //获取高电平脉冲值
138 3 show_value();
139 3 Compute_REALandIMAGE(); //计算相位,实部,虚部
140 3 Show_FloatData(Y_Real,1,3); //显示实部
141 3 Show_FloatData(Y_Image,3,3); //显示虚部
142 3 Show_FloatData(Y_Phase,5,3); //显示导纳角
143 3 delay_nms(500);
144 3 EA=0;
145 3 break;
146 3
147 3 case 8: Port_Initial();
148 3 PCA_Initial();
149 3 PCA0_Initial();
150 3 LCD_Init(); //液晶初始化
151 3 CleanScreen();
152 3 EA=1;
153 3 Pulse_Number=PCA_Capture(); //获取高电平脉冲值
154 3 show_power();
155 3 Current=(float)data_process(0); //采样电流
156 3 Voltage=(float)data_process(2); //采样电压
157 3 Compute_Power();
158 3 Show_FloatData(average_power,1,3); //计算有功功率
159 3 Show_FloatData(reactive_power,3,3); //计算无功功率
160 3 Show_FloatData(theta,5,3); //计算功率因素
161 3 delay_nms(500);
162 3 EA=0;
163 3 break;
164 3 case 9: Port_Initial();
165 3 LCD_Init(); //液晶初始化
166 3 CleanScreen();
167 3 show_window();
168 3 delay_nms(100);
169 3 default: break;
170 3 }
171 2
172 2 }
173 1 }
174
175
176
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V8.02 MAIN 04/04/2008 19:55:16 PAGE 4
CODE SIZE = 620 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 45 ----
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 + -