📄 key16.lst
字号:
C51 COMPILER V8.02 KEY16 08/26/2002 21:45:31 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY16
OBJECT MODULE PLACED IN key16.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key16.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"includes.h"
2
3 extern unsigned int L_num,R_num; //左右移偏移量
4 unsigned char keyread; //按键值
5 extern unsigned char xdata res1[256];
6 extern unsigned char xdata resmem[256]; //存储数组
7 extern unsigned char memshow_flag; //显示存储波形标志位
8 extern double setfreq; //设定的采样频率
9 extern double freq; //测定的实际频率
10 extern double T;
11 extern bit zero_flag;
12 extern unsigned char freq_flag;
13
14 void key16() //读取按键值
15 {
16 1
17 1 P3=1;
18 1 mydelay(50);
19 1 keyread=P3;
20 1 if(keyread!=0x00)
21 1 {
22 2 turnward();
23 2 sword();
24 2 wav_mem();
25 2 }
26 1
27 1 }
28
29 void turnward() //根据按键向左右移动输出波形
30 {
31 1 if((keyread==0x10)||(keyread==0x12))
32 1 {
33 2
34 2 if(keyread==0x10) //按一下左移一位
35 2 {
36 3 if(R_num>0)
37 3 R_num--;
38 3 else
39 3 L_num++;
40 3 if(L_num>=255) L_num=0;
41 3 }
42 2 else if(keyread==0x12) //按一下右移一位
43 2 {
44 3 if(L_num>0)
45 3 L_num--;
46 3 else
47 3 R_num++;
48 3 if(L_num>=255) L_num=0;
49 3 }
50 2 else
51 2 return;
52 2 }
53 1 else
54 1 return;
55 1
C51 COMPILER V8.02 KEY16 08/26/2002 21:45:31 PAGE 2
56 1
57 1 }
58
59 void sword() //扫描时间选择档位
60 {
61 1 if((keyread==0x1f)||(keyread==0x1e)||(keyread==0x11))
62 1 {
63 2 if(keyread==0x1f) //20ms/div
64 2 {
65 3 freq_flag=0;
66 3
67 3 }
68 2 else if(keyread==0x1e) //2us/div
69 2 {
70 3 freq_flag=1;
71 3
72 3 }
73 2 else if(keyread==0x11) //100ns/div
74 2 {
75 3 freq_flag=2;
76 3
77 3 }
78 2 else
79 2 return;
80 2 }
81 1 else
82 1 return;
83 1
84 1 }
85
86 void freq_set() //计算9851所需频率
87 {
88 1 T=1000/freq; //测定时间单位:us
89 1 zero_flag=0;
90 1 if(freq_flag==0)
91 1 {
92 2
93 2 if(freq>=0.5)
94 2 {
95 3 zero_flag=1;
96 3 }
97 2
98 2 else
99 2 {
100 3 setfreq=0.003;
101 3 }
102 2
103 2 }
104 1 else if(freq_flag==1)
105 1 {
106 2 if(freq<=1000)
107 2 {
108 3 setfreq=3/(T+0.1);
109 3 }
110 2 else if((freq>1000)&&(freq<5000))
111 2 {
112 3 setfreq=3/(10*T+0.1);
113 3 }
114 2 else if(freq>5000)
115 2 {
116 3 zero_flag=1;
117 3 }
C51 COMPILER V8.02 KEY16 08/26/2002 21:45:31 PAGE 3
118 2 }
119 1 else if(freq_flag==2)
120 1 {
121 2 if(freq<=1000)
122 2 {
123 3 zero_flag=1;
124 3 }
125 2 else if(freq>1000)
126 2 {
127 3 setfreq=3/(10*T+0.005);
128 3 }
129 2 }
130 1
131 1 }
132
133
134 void wav_mem() //波形存储显示
135 {
136 1 unsigned int i;
137 1 if((keyread==0x14)||(keyread==0x16)) //波形存储
138 1 {
139 2 if(keyread==0x14)
140 2 {
141 3 for(i=0;i<256;i++)
142 3 resmem[i]=res1[i];
143 3
144 3 }
145 2 else if(keyread==0x16) //显示当前波形、存储波形转换
146 2 {
147 3 if(memshow_flag==0)
148 3 memshow_flag=1;
149 3 else if(memshow_flag==1)
150 3 memshow_flag=0;
151 3 }
152 2 }
153 1 else
154 1 return;
155 1
156 1 }
*** WARNING C316 IN LINE 156 OF key16.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 708 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 1 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -