?? main.lst
字號:
C51 COMPILER V7.09 MAIN 12/06/2007 09:33:57 PAGE 1
C51 COMPILER V7.09, 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
3 /***************Copyright (c)*****************************************
4 **
5 ** Description: Made By KDQX in Hebust
6 ** Email: shirenwei2003@163.com
7 **
8 **--------------File Info--------------------------------------------
9 **
10 ** File Name: 數據直流電源(digtal power)
11 ** Last modified Date: 2006-12-01
12 ** Last Version: V1.1
13 ** Description: 河北科技大學2005年大學生創新項目
14 **
15 **-------------------------------------------------------------------
16 **
17 ** Created By: 侍任偉(tigerots
18 ** Company: 科大七星工作室(KDQX)
19 ** Created date: 2003-11-16
20 ** Version: V1.0
21 ** Descriptions:用AT89S52單片機實現電壓電流的數字化控制
22 **
23 **-------------------------------------------------------------------
24 **
25 ** Modified by:侍任偉(tigerotsh)
26 ** Company: 科大七星工作室(KDQX
27 ** Modified date: 2006-12-01
28 ** Version:V1.1
29 ** Descriptions:增加用戶存儲/調用功能(RAM)
30 **
31 **-------------------------------------------------------------------
32 **
33 ** Modified by:
34 ** Company:
35 ** Modified date:
36 ** Version:
37 ** Descriptions:
38 **
39 **********************************************************************/
40
41 //頭文件
42 #include "reg51.h"
43 #include "intrins.h"
44 #include "disp.c"
45 #include "key.c"
46 #include "delay.c"
47 #include "tlc5615.c"
48 #include "tlc1549.c"
49 //#include "x5045.c"
50
51 //4mul4鍵盤功能鍵
52 #define USER 10
53 #define CALL 11
54 #define SETi 12
55 #define SETu 13
C51 COMPILER V7.09 MAIN 12/06/2007 09:33:57 PAGE 2
56 #define ESC 14
57 #define OK 15
58
59 //1mul8鍵盤功能鍵
60 #define ISET 19
61 #define ISEL 18
62 #define IADD 17
63 #define ISUB 16
64
65 #define USET 23
66 #define USEL 22
67 #define VADD 21
68 #define VSUB 20
69
70 //系統狀態定義
71 #define IDLE_STA 0xf0
72 #define U_SET_STA 0xf1
73 #define I_SET_STA 0xf2
74 #define U_SETu 0xf3
75 #define I_SETi 0xf4
76 #define USER_SET_STA 0xf5
77 #define CALL_USER_STA 0xf6
78
79 //函數聲明
80 void IDLE_Mange(void);
81 void U_SET_Mange(void);
82 void I_SET_Mange(void);
83 void Disp_I_Real(void);
84 void Disp_U_Real(void);
85 void U_SETu_Mange(void);
86 void I_SETi_Mange(void);
87 void USER_SET_Mange(void);
88 void CALL_USER_Mange(void);
89
90
91 //外部變量聲明
92 extern unsigned char Disp_Buf[8];
93
94 //外部函數聲明
95 extern void Init(void);
96 extern void Disp (void);
97 extern unsigned char Key(void);
98 extern void Delay(unsigned int N);
99 extern unsigned int Read1549_U(void);
100 extern unsigned int Read1549_I(void);
101 extern void SEND_5615_U(unsigned int dd);
102 extern void SEND_5615_I(unsigned int dd);
103
104 //全局變量
105 unsigned int U_data=500,I_data=300;//電流電壓設定數據
106 unsigned int U_temp=0,I_temp=0;//電流電壓顯示數據
107 unsigned char Sys_sta;//系統狀態
108 unsigned char keytemp;//鍵值
109 unsigned char U_Buf[4];
110
111 struct store{
112 unsigned int U;
113 unsigned int I;
114 };
115 struct store user[7]={0};//0~~6 七組用戶數據;7,8,9組作為系統預設數據
116
117 //標志位
C51 COMPILER V7.09 MAIN 12/06/2007 09:33:57 PAGE 3
118 unsigned char uset_bit=3;
119 unsigned char iset_bit=7;
120
121 unsigned int dis=0;
122 unsigned int disi=0;
123
124 unsigned long int flashbuf = 0;//顯示刷新頻率
125
126 unsigned char ubit=0;
127 unsigned char ibit=0;
128
129 unsigned char userbit=0;//用戶已存儲組數
130
131 //狀態位
132 bit u_ds=0;
133 bit i_ds=0;
134 bit uset=0;
135 bit flash=0;
136
137 //函數初始化
138 void Init (void)
139 {
140 1 AD_CLK = 0;
141 1 AD_CS1 = 1;
142 1 AD_CS2 = 1;
143 1
144 1 Sys_sta=IDLE_STA;
145 1
146 1 SEND_5615_U(U_data);
147 1 Delay(50);
148 1 SEND_5615_I(I_data);
149 1 Delay(50);
150 1
151 1 Disp_U_Real();
152 1 Disp_I_Real();
153 1 Delay(50);
154 1 Sys_sta=IDLE_STA;
155 1 }
156
157 //顯示設置電流電壓
158 void Disp_U_set(unsigned int du)
159 {
160 1 Disp_Buf[0]=du/1000;
161 1 Disp_Buf[1]=du%1000/100;
162 1 Disp_Buf[2]=du%100/10;
163 1 Disp_Buf[3]=du%10;
164 1
165 1 Disp();
166 1 }
167 void Disp_I_set(unsigned int di)
168 {
169 1 Disp_Buf[4]=di/1000;
170 1 Disp_Buf[5]=di%1000/100;
171 1 Disp_Buf[6]=di%100/10;
172 1 Disp_Buf[7]=di%10;
173 1
174 1 Disp();
175 1 }
176 //顯示實際電流電壓值
177 void Disp_U_Real(void)
178 {
179 1 dis=dis++;
C51 COMPILER V7.09 MAIN 12/06/2007 09:33:57 PAGE 4
180 1 if(dis == 20)
181 1 {
182 2 dis = 0;
183 2 AD_CLK = 0;
184 2 AD_CS1 = 1;
185 2 AD_CS2 = 1;
186 2 U_temp = Read1549_U();
187 2 Delay(30);
188 2
189 2 if(U_temp == 0)
190 2 {
191 3 Delay(10);
192 3 U_temp = Read1549_U();
193 3 }
194 2
195 2 Disp_Buf[0]=U_temp%10000/1000;
196 2 if(Disp_Buf[0]==0)
197 2 {
198 3 Disp_Buf[0]=18;
199 3 }
200 2 Disp_Buf[1]=U_temp%1000/100;
201 2 Disp_Buf[2]=U_temp%100/10;
202 2 Disp_Buf[3]=U_temp%10;
203 2
204 2 }
205 1 Disp();
206 1 }
207
208 void Disp_I_Real(void)
209 {
210 1 disi=disi++;
211 1 if(disi == 20)
212 1 {
213 2 disi = 0;
214 2 I_temp = Read1549_I();
215 2 Delay(10);
216 2 I_temp = Read1549_I();
217 2 }
218 1
219 1 Disp_Buf[4]=I_temp%10000/1000;
220 1 Disp_Buf[5]=I_temp%1000/100;
221 1 Disp_Buf[6]=I_temp%100/10;
222 1 Disp_Buf[7]=I_temp%10;
223 1
224 1 Disp();
225 1 }
226 //移位顯示
227 void Disp_change(unsigned char dc)
228 {
229 1 Disp_Buf[0]=Disp_Buf[1];
230 1 Disp_Buf[1]=Disp_Buf[2];
231 1 Disp_Buf[2]=Disp_Buf[3];
232 1 Disp_Buf[3]=dc;
233 1
234 1 Disp();
235 1 }
236
237 void Disp_changei(unsigned char di)
238 {
239 1 Disp_Buf[4]=Disp_Buf[5];
240 1 Disp_Buf[5]=Disp_Buf[6];
241 1 Disp_Buf[6]=Disp_Buf[7];
C51 COMPILER V7.09 MAIN 12/06/2007 09:33:57 PAGE 5
242 1 Disp_Buf[7]=di;
243 1
244 1 Disp();
245 1 }
246 //IDLE狀態下的服務程序
247 void IDLE_Mange(void)
248 {
249 1 unsigned int temp;
250 1 temp = U_data;
251 1 keytemp = Key();
252 1
253 1 Sys_sta=IDLE_STA;
254 1 switch(keytemp)
255 1 {
256 2 //微調鍵
257 2 case VADD:
258 2 {
259 3 if(U_data >= 0x03ff)
260 3 {}
261 3 else
262 3 {
263 4 U_data=U_data+1;
264 4 SEND_5615_U(U_data);
265 4 Delay(5);
266 4 }
267 3 }break;
268 2
269 2 case VSUB:
270 2 {
271 3 if(U_data <= 5 || U_data >= 0x03ff)
272 3 {}
273 3 else
274 3 {
275 4 U_data=U_data-1;
276 4 SEND_5615_U(U_data);
277 4 Delay(5);
278 4 }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -