📄 system.lst
字号:
C51 COMPILER V7.09 SYSTEM 08/24/2007 09:37:12 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE SYSTEM
OBJECT MODULE PLACED IN System.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE System.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include"Config.h"
3 #include"IOCfg.c"
4 #include"TimeDLY.h"
5 #include"Key.h"
6 #include"ADC.h"
7 #include"LCD.h"
8 #include"ISD1420.h"
9 #include"DAC.h"
10
11 #define DAC_REF 5.0
12
13
14 INT16U Temp1=0;
15 FP32 Measure_Current=0;
16 INT8U Enter_Flag=0;
17
18 FP32 DAC_Data=0;
19 INT16U Temp=0; //存储设定值
20 INT16U ADC_Data=0;//ADC数字量
21
22 INT8U data1[]={0,0,0,0};//当前值显示数组
23 INT8U data2[]={0,0,0,0};//设定值显示数组
24 INT8U data3[]={0,0,0,0};//测量值显示数组
25
26 INT16U CurrentData[]={0xa3b0,0xa3b1,0xa3b2,0xa3b3,0xa3b4,0xa3b5,0xa3b6,0xa3b7,0xa3b8,0xa3b9};
27
28 //0x00~0x09 对应数字0~~9, 0x0a对应"点",0x0b对应"毫安",0x0c对应"电流设定值"
29 INT8U Voice_data[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c};
30
31 void InitIO()
32 {
33 1 DACDIN = 0;
34 1 DACSCLK = 0;
35 1 DACCS = 0;
36 1 ADCPWRD = 0;
37 1 ADCBUSY = 1;
38 1 ADCRC = 0;
39 1 ADCDATA = 1;
40 1 ADCSCLK = 0;
41 1 ADCSYN = 1;
42 1 ADCSBTC = 0;
43 1 ADCEXINT = 0;
44 1 ZLG7289CS = 1;
45 1 ZLG7289CLK = 0;
46 1 ZLG7289DIO = 1;
47 1 ZLG7289INT = 1;
48 1 LCDRW = 0;
49 1 LCDRS = 0;
50 1 LCDRST = 0;
51 1 LCDE = 0;
52 1 LCDData = 0x00;
53 1 PLAYL = 0;
54 1 A4 = 0;
55 1 A3 = 0;
C51 COMPILER V7.09 SYSTEM 08/24/2007 09:37:12 PAGE 2
56 1 A2 = 0;
57 1 A1 = 0;
58 1 }
59
60 void process(INT16U i,INT8U *p)
61 {
62 1 p[0]=i/1000;
63 1 i=i%1000;
64 1 p[1]=i/100;
65 1 i=i%100;
66 1 p[2]=i/10;
67 1 i=i%10;
68 1 p[3]=i;
69 1 }
70
71
72 //放音数组函数:Sound_Play_A()
73 void Sound_Play_A(INT8U *Data)
74 {
75 1 INT8U i;
76 1 Sound_Play(Voice_data[12]);
77 1 LDelay(50);
78 1 if(Data[0]>0)
79 1 {for(i=0;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
80 1 else
81 1 {
82 2 if(Data[1]>0)
83 2 {for(i=1;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
84 2 else
85 2 {
86 3 if(Data[2]>0)
87 3 {for(i=2;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
88 3 else
89 3 {
90 4 if(Data[3]>0)
91 4 {for(i=3;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
92 4 }
93 3 }
94 2 }
95 1 LDelay(50);
96 1 Sound_Play(Voice_data[11]);
97 1 LDelay(100);
98 1 }
99
100 void main()
101 {
102 1 INT8U key;
103 1 InitIO();
104 1 PLAYL = 1;
105 1 InitLCD();
106 1 SetDAC_B(FASTSP,EXTERNAL,DAC_REF,DAC_Data);
107 1
108 1 //以下是电流源输出显示
109 1 DispOneWord(0,2,0xb5e7); //"电"
110 1 DispOneWord(0,3,0xc1f7); //"流"
111 1 DispOneWord(0,4,0xd4b4); //"源"
112 1
113 1 DispOneWord(1,0,0xc9e8); //"设"
114 1 DispOneWord(1,1,0xb6a8); //"定"
115 1 DispOneWord(1,2,0xd6b5); //"值"
116 1 DispTwoCharacter(1,6,0xa3ed,0xa3c1);//"mA"
117 1
C51 COMPILER V7.09 SYSTEM 08/24/2007 09:37:12 PAGE 3
118 1
119 1 DispOneWord(2,0,0xb5b1); //"当"
120 1 DispOneWord(2,1,0xc7b0); //"前"
121 1 DispOneWord(2,2,0xd6b5); //"值"
122 1 DispTwoCharacter(2,6,0xa3ed,0xa3c1);//"mA"
123 1
124 1 //以下是测量数值显示
125 1 DispOneWord(3,0,0xb2e2); //"测"
126 1 DispOneWord(3,1,0xc1bf); //"量"
127 1 DispOneWord(3,2,0xd6b5); //"值"
128 1 DispTwoCharacter(3,6,0xa3ed,0xa3c1);//"mA"
129 1
130 1 while(1)
131 1 {
132 2 if(!ZLG7289INT) //如果有按键按下
133 2 {
134 3 key=ZLG7289_ReadKey(); //取得按键数值
135 3 switch(key)
136 3 {
137 4 case 1://复位
138 4 { DAC_Data=0;
139 5 Temp=0;
140 5 Temp1=0;
141 5 break;}
142 4 case 2://取消,删除
143 4 { Temp=Temp/10;
144 5 break;}
145 4 case 3://确认
146 4 { Temp1=Temp;
147 5 DAC_Data=Temp1*0.0025;
148 5 Temp=0;
149 5 Enter_Flag=1;
150 5 break;}
151 4 case 4://UP
152 4 { Temp1+=1;
153 5 DAC_Data=Temp1*0.0025;
154 5 Temp=0;
155 5 Enter_Flag=1;
156 5 break;}
157 4 case 5://DOWN
158 4 { Temp1-=1;
159 5 DAC_Data=Temp1*0.0025;
160 5 Temp=0;
161 5 Enter_Flag=1;
162 5 break;}
163 4 case 6://0
164 4 { Temp=Temp*10;
165 5 break;}
166 4 case 7://1
167 4 { Temp=Temp*10+1;
168 5 break;}
169 4 case 8://2
170 4 { Temp=Temp*10+2;
171 5 break;}
172 4 case 9://3
173 4 { Temp=Temp*10+3;
174 5 break;}
175 4 case 10://4
176 4 { Temp=Temp*10+4;
177 5 break;}
178 4 case 11://5
179 4 { Temp=Temp*10+5;
C51 COMPILER V7.09 SYSTEM 08/24/2007 09:37:12 PAGE 4
180 5 break;}
181 4 case 12://6
182 4 { Temp=Temp*10+6;
183 5 break;}
184 4 case 13://7
185 4 { Temp=Temp*10+7;
186 5 break;}
187 4 case 14://8
188 4 { Temp=Temp*10+8;
189 5 break;}
190 4 case 15://9
191 4 { Temp=Temp*10+9;
192 5 break;}
193 4 default:break;
194 4 }
195 3 while(!ZLG7289INT);
196 3 }
197 2 if(Temp>0) process(Temp,data2);
198 2 else process(Temp1,data2);
199 2 DispOneWord(0,2,0xb5e7); //"电"
200 2 DispOneWord(0,3,0xc1f7); //"流"
201 2 DispOneWord(0,4,0xd4b4); //"源"
202 2 DispOneWord(1,0,0xc9e8); //"设"
203 2 DispOneWord(1,1,0xb6a8); //"定"
204 2 DispOneWord(1,2,0xd6b5); //"值"
205 2 DispTwoCharacter(1,4,CurrentData[data2[0]],CurrentData[data2[1]]);
206 2 DispTwoCharacter(1,5,CurrentData[data2[2]],CurrentData[data2[3]]);
207 2 DispTwoCharacter(1,6,0xa3ed,0xa3c1);//"mA"
208 2
209 2 SetDAC_B(FASTSP,EXTERNAL,DAC_REF,DAC_Data);
210 2 process(Temp1,data1);
211 2 DispOneWord(2,0,0xb5b1); //"当"
212 2 DispOneWord(2,1,0xc7b0); //"前"
213 2 DispOneWord(2,2,0xd6b5); //"值"
214 2 DispTwoCharacter(2,4,CurrentData[data1[0]],CurrentData[data1[1]]);
215 2 DispTwoCharacter(2,5,CurrentData[data1[2]],CurrentData[data1[3]]);
216 2 DispTwoCharacter(2,6,0xa3ed,0xa3c1);//"mA"
217 2
218 2 ADC_Data = nSample(EXDCLK_RDNOW,BTC);
219 2 Measure_Current = 0.15*ADC_Data;
220 2 process((INT16U)Measure_Current,data3);
221 2 DispOneWord(3,0,0xb2e2); //"测"
222 2 DispOneWord(3,1,0xc1bf); //"量"
223 2 DispOneWord(3,2,0xd6b5); //"值"
224 2 DispTwoCharacter(3,4,CurrentData[data3[0]],CurrentData[data3[1]]);
225 2 DispTwoCharacter(3,5,CurrentData[data3[2]],CurrentData[data3[3]]);
226 2 DispTwoCharacter(3,6,0xa3ed,0xa3c1);//"mA"
227 2
228 2 //语音播报
229 2 if(Enter_Flag==1)
230 2 {
231 3 Sound_Play_A(data1);
232 3 Enter_Flag=0;
233 3 }
234 2 }
235 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1466 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V7.09 SYSTEM 08/24/2007 09:37:12 PAGE 5
PDATA SIZE = ---- ----
DATA SIZE = 60 9
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 + -