?? 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 + -