📄 oscilloscope3.lst
字号:
C51 COMPILER V7.06 OSCILLOSCOPE3 08/19/2005 09:01:53 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE OSCILLOSCOPE3
OBJECT MODULE PLACED IN oscilloscope3.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE oscilloscope3.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"global.h"
2 #include"oscilloscope.h"
3 #include"LCD/lcd.h"
4 //included"include.h"
5
6 //*****************************************************************************************************
7 void delay200ms()
8 {
9 1 int i=10000,j=1000;
10 1 for(;i>0;i--)
11 1 for(;j>0;j--);
12 1 }
13 //***************************************************************************************
14 void display(unchar dot)
15 {
16 1 unchar i;
17 1 LedMode=1;
18 1 DisCmd=SCODE; //采用软件译码
19 1 LedMode=0;
20 1 if(Led_On)
21 1 {
22 2 for(i=0;i<8;i++) //将distab中的数据送如7218
23 2 {
24 3 if((i==dot)&(dot!=0))
25 3 DisData=ledtab[distab[i]]+0x80; //查表转化并将字型送入7218
26 3 else
27 3 DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
28 3 }
29 2 }
30 1 }
31 //***************************************************************************************
32 void distab_clear()
33 {
34 1 unchar i;
35 1 for(i=0;i<8;i++)
36 1 {
37 2 distab[i]=0x10;
38 2 }
39 1 }
40 //***************************************************************************************
41 void glint() //glintflag为1闪烁,flag为0,不闪烁;
42 {
43 1
44 1 unchar i;
45 1 while(Glint_Flag&Led_On) //光标位置闪烁
46 1 {
47 2 LedMode=1;
48 2 DisCmd=SCODE; //采用软件译码
49 2 LedMode=0;
50 2 for(i=0;i<8;i++) //将distab中的数据送如7218
51 2 {
52 3 if(i==LED_CURSOR)
53 3 DisData=0x80; //查表转化并将字型送入7218
54 3 else
55 3 DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
C51 COMPILER V7.06 OSCILLOSCOPE3 08/19/2005 09:01:53 PAGE 2
56 3 }
57 2 delay200ms();
58 2 LedMode=1;
59 2 DisCmd=SCODE;
60 2 display(0);
61 2 delay200ms();
62 2 }
63 1 }
64 //***************************************************************************************
65 /*初始化:A0F3:1, A0F4:2, A0F5:00, A0F6:0, A0F7:2, A0F8:00, A0F9:0,
66 A0FA:00, A0FB:0, A0FC:40, A0FD:00;初始挡位, A0FE:00 */
67 void FpgaInitial() //初始化程序
68 {
69 1 Select_AB=1;
70 1 Vertical_Gain_A_Grade=7;
71 1 Vertical_Move_A=0;
72 1 //Select_A=0;
73 1 Vertical_Gain_B_Grade=7;
74 1 Vertical_Move_B=0;
75 1 Single_Auto_Select=0;
76 1 Trigger_Voltage=127;
77 1 Lock_Wave=0;
78 1 X_Freq_High=0x03;
79 1 X_Freq_Low=0xE8;
80 1 X_Move=0;
81 1 Frequence_Start=0;
82 1 }
83 //***************************************************************************************
84 void Set_X_Freq() //设置X轴扫描频率,Key_Flag:1
85 {
86 1 Shift_Flag=1;
87 1 //unint Freq,temp;
88 1 Led_On=1;
89 1 Key_Flag=1;
90 1 LED_CURSOR=4;
91 1 Glint_Flag=1;
92 1 distab[0]=0x00;
93 1 distab[1]=0x00;
94 1 distab[2]=0x00;
95 1 distab[3]=0x00;
96 1 distab[4]=0x00;
97 1 distab[5]=0x10;
98 1 distab[6]=0x10;
99 1 distab[7]=0x01;
100 1 display(0);
101 1 lcd_clear();
102 1 lcd_write_sentence(1,0,"请输X 轴扫描频率");
103 1 lcd_write_sentence(2,1,"频率范围:");
104 1 lcd_write_sentence(3,1,"0-100KHZ");
105 1
106 1 }
107 //***************************************************************************************
108 void Set_X_Pos() //设置波形在X轴上的移位
109 {
110 1 Shift_Flag=1;
111 1 lcd_clear();
112 1 Key_Flag=2;
113 1 LED_CURSOR=2;
114 1 Glint_Flag=1;
115 1 Led_On=1;
116 1 distab[0]=0x00;
117 1 distab[1]=0x00;
C51 COMPILER V7.06 OSCILLOSCOPE3 08/19/2005 09:01:53 PAGE 3
118 1 distab[2]=0x00;
119 1 distab[3]=0x10;
120 1 distab[4]=0x10;
121 1 distab[5]=0x10;
122 1 distab[6]=0x10;
123 1 distab[7]=0x02;
124 1 display(0);
125 1 lcd_write_sentence(1,0,"请输入水平移相");
126 1 lcd_write_sentence(2,1,"位置范围:");
127 1 lcd_write_sentence(3,2,"0-200");
128 1
129 1 }
130 void Set_Trigger_Voltage() //设置触发电平
131 {
132 1 Shift_Flag=1;
133 1 lcd_clear();
134 1 Key_Flag=3;
135 1 LED_CURSOR=2;
136 1 Led_On=1;
137 1 Glint_Flag=1;
138 1 distab[0]=0x00;
139 1 distab[1]=0x00;
140 1 distab[2]=0x00;
141 1 distab[3]=0x10;
142 1 distab[4]=0x10;
143 1 distab[5]=0x10;
144 1 distab[6]=0x10;
145 1 distab[7]=0x03;
146 1 //display(2);
147 1 lcd_write_sentence(1,0,"请输入触发电平");
148 1 lcd_write_sentence(2,1,"电平范围:");
149 1 lcd_write_sentence(3,2,"0-5V");
150 1
151 1 }
152 //***************************************************************************************
153 void Lock_Current_Wave() //锁存当前波形
154 {
155 1 //Special_Down_Flag;
156 1 Lock_Wave_Flag=!Lock_Wave_Flag;
157 1 Led_On=0;
158 1 //Lock_Wave=Lock_Wave_Flag;
159 1 lcd_clear();
160 1 if(Lock_Wave_Flag)
161 1 {
162 2 lcd_write_sentence(2,1,"波形锁存成功!");
163 2 Lock_Wave=1;
164 2 }
165 1 else
166 1 {
167 2 lcd_write_sentence(2,1,"波形解除锁定!");
168 2 Lock_Wave=0;
169 2 }
170 1 }
171 //***************************************************************************************
172 void Single_Select() //单步,连续选择
173 {
174 1 //Special_Down_Flag
175 1 lcd_clear();
176 1 Led_On=0;
177 1 Single_Flag=!Single_Flag;
178 1 //Single_Auto_Select=Single_Flag;
179 1 lcd_clear();
C51 COMPILER V7.06 OSCILLOSCOPE3 08/19/2005 09:01:53 PAGE 4
180 1 lcd_write_sentence(2,1,"当前触发状态:");
181 1 if(Single_Flag)
182 1 {
183 2 lcd_write_sentence(3,2,"单步");
184 2 TR0=0;
185 2 Single_Auto_Select=1;
186 2 Single_Auto_Select=0;
187 2 }
188 1 else
189 1 {
190 2 lcd_write_sentence(3,2,"连续");
191 2 TR0=1;
192 2 }
193 1 }
194 //***************************************************************************************
195 void Input_Select() //AD114输入选择
196 {
197 1 unchar temp1,temp2;
198 1 temp1=AD_Channel%3;
199 1 temp2=PB8155;
200 1 temp2=temp2&0xFC;
201 1 switch(temp1)
202 1 {
203 2 case 0:
204 2 //AD_Controll=0;
205 2 PB8155=temp2;
206 2 lcd_clear();
207 2 lcd_write_sentence(2,1,"A 路选通");
208 2 lcd_write_sentence(3,1,"B 路关闭");
209 2 Select_AB=1;
210 2 break;
211 2 case 1:
212 2 //AD_Controll=0;
213 2 PB8155=temp2+2;
214 2 Select_AB=2;
215 2 lcd_clear();
216 2 lcd_write_sentence(2,1,"A 路关闭");
217 2 lcd_write_sentence(3,1,"B 路选通");
218 2 break;
219 2 case 2:
220 2 //AD_Controll=1;
221 2 lcd_clear();
222 2 PB8155=temp2+1;
223 2 lcd_write_sentence(2,1,"A 路选通");
224 2 lcd_write_sentence(3,1,"B 路选通");
225 2 Select_AB=3;
226 2 break;
227 2 }
228 1 AD_Channel++;
229 1 }
230
231 //***************************************************************************************
232 void Vertical_GainA() //垂直增益选择(共8档,A,B路相同)
233 {
234 1 unchar temp;
235 1 Led_On=1;
236 1 Key_Flag=4;
237 1 if(Vertical_Gain_A_Grade<7)
238 1 {
239 2 Vertical_Gain_A_Grade++;
240 2 }
241 1 else
C51 COMPILER V7.06 OSCILLOSCOPE3 08/19/2005 09:01:53 PAGE 5
242 1 Vertical_Gain_A_Grade=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -