📄 interface.lst
字号:
C51 COMPILER V8.02 INTERFACE 09/05/2007 10:54:04 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE INTERFACE
OBJECT MODULE PLACED IN interface.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE interface.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "lcd.h"
2 #include "func.h"
3 #include "interface.h"
4 #include "key.h"
5 #include "getinputnum.h"
6 typedef unsigned int uint;
7 typedef unsigned char uchar;
8 typedef unsigned long ulong;
9 void DisplayState(void)
10 {
11 1 char temp[10];
12 1 uchar len,j;
13 1 ulong phase;
14 1 LcdClear();
15 1 SetPos(0,0);
16 1 LcdPrint("波形: ",sizeof("波形: ")-1);
17 1 switch (CurWaveType)
18 1 {
19 2 case 0: LcdPrint("\xd5\xfd弦波",sizeof("\xd5\xfd弦波")-1);
20 2 break;
21 2 case 1:LcdPrint("方波 ",sizeof("方波 ")-1);
22 2 break;
23 2 case 2:LcdPrint("\xc8\xfd角波",sizeof("\xc8\xfd角波")-1);
24 2 break;
25 2 case 3:LcdPrint("锯齿波",sizeof("锯齿波")-1);
26 2 break;
27 2 case 4:LcdPrint("自定义",sizeof("自定义")-1);
28 2 break;
29 2 default:break;
30 2 }
31 1
32 1 /////////////////
33 1 SetPos(0,1);
34 1 LcdPrint("频率:",sizeof("频率:")-1);
35 1 len=ltoa(Wave[CurWaveType].Freq,temp);
36 1 if(Wave[CurWaveType].Freq>1000)
37 1 {
38 2 for(j=len;j>len-3;j--)
39 2 {
40 3 temp[j]=temp[j-1];
41 3 }
42 2 temp[len-3]='.';
43 2 LcdPrint(temp,len+1);
44 2 LcdPrint("KHz",3);
45 2 }
46 1 else
47 1 {
48 2 LcdPrint(temp,len);
49 2 LcdPrint("Hz",2);
50 2 }
51 1
52 1 /////////////////
53 1 SetPos(0,2);
54 1 LcdPrint("幅度:",sizeof("幅度:")-1);
55 1 temp[3]=Wave[CurWaveType].Peak;
C51 COMPILER V8.02 INTERFACE 09/05/2007 10:54:04 PAGE 2
56 1 if(temp[3]<0){temp[3]*=-1;}
57 1 temp[0]=temp[3]/10;
58 1 temp[2]=temp[3]%10;
59 1 temp[0]+=0x30;temp[2]+=0x30;temp[1]='.';
60 1 LcdPrint(temp,3);
61 1 LcdPrint("V",1);
62 1 /////////////////////////////
63 1 SetPos(0,3);
64 1 LcdPrint("相位:",sizeof("相位:")-1);
65 1 phase=(ulong)Wave[CurWaveType].Phase*(ulong)360;
66 1 phase/=256;
67 1 temp[2]=phase%10+0x30;
68 1 phase/=10;
69 1 temp[1]=phase%10+0x30;
70 1 phase/=10;
71 1 temp[0]=phase%10+0x30;
72 1 LcdPrint(temp,3);
73 1 LcdPrint(" 度",sizeof(" 度")-1);
74 1 }
75
76
77 uchar GetWaveType()
78 {
79 1 uchar temp=CurWaveType,key;
80 1 ShowCursor();
81 1 while(1)
82 1 {
83 2 SetPos(3,0);
84 2 key=WaitKey();
85 2 if(key!=0x0f)
86 2 {
87 3 temp++;if(temp>3) {temp=0;}
88 3 SetPos(3,0);
89 3 switch (temp)
90 3 {
91 4 case 0:LcdPrint("\xd5\xfd弦波",sizeof("\xd5\xfd弦波")-1);
92 4 break;
93 4 case 1:LcdPrint("方波 ",sizeof("方波 ")-1);
94 4 break;
95 4 case 2:LcdPrint("\xc8\xfd角波",sizeof("\xc8\xfd角波")-1);
96 4 break;
97 4 case 3:LcdPrint("锯齿波",sizeof("锯齿波")-1);
98 4 break;
99 4 default:break;
100 4 }
101 3 }
102 2 else
103 2 {
104 3 //HideCursor();
105 3 return temp;
106 3 }
107 2 }
108 1
109 1
110 1
111 1 }
112 bit ProcessSingleInput(void)
113 {
114 1 bit change=0;
115 1 float ftemp;
116 1 ulong temp;
117 1 uchar i,key;
C51 COMPILER V8.02 INTERFACE 09/05/2007 10:54:04 PAGE 3
118 1 SetPos(5,3);
119 1 ShowCursor();
120 1 while(1)
121 1 {
122 2 key=WaitKey();
123 2 switch(key)
124 2 {
125 3 case 0x00: temp=GetWaveType();
126 3 if(CurWaveType!=temp)
127 3 {
128 4 CurWaveType=temp;
129 4 change=1;
130 4 }
131 3 SetPos(0,0);
132 3 ShowCursor();
133 3 break;
134 3 case 0x01: SetPos(3,1);
135 3 for(i=0;i<10;i++)
136 3 {
137 4 LcdPrint(" ",1);
138 4 }
139 3 temp=GetInputNum(3,1,5);
140 3 if(temp>0 && temp<=20000 && Wave[CurWaveType].Freq!= temp)
141 3 {
142 4 Wave[CurWaveType].Freq=temp;
143 4 change=1;
144 4 }
145 3 SetPos(0,0);
146 3 ShowCursor();
147 3 break;
148 3 case 0x02: ftemp=10*GetInputFloatNum(3,2,4);
149 3 if (ftemp<=50 && ftemp>=-50)
150 3 {
151 4 Wave[CurWaveType].Peak=ftemp;
152 4 change=1;
153 4 }
154 3 SetPos(0,0);
155 3 ShowCursor();
156 3 break;
157 3 case 0x03: temp=GetInputNum(3,3,3);
158 3 if(temp<360 && Wave[CurWaveType].Phase!=temp)
159 3 {
160 4 Wave[CurWaveType].Phase=((float)temp*256)/360+0.5;
161 4 change=1;
162 4 }
163 3 SetPos(0,0);
164 3 ShowCursor();
165 3 break;
166 3
167 3 case 0x0f: LcdClear();
168 3 LcdPrintLine("改变波形配置?",sizeof("改变波形配置?")-1,1,1);
169 3 key=WaitKey();
170 3 if(key==0x0f)
171 3 {
172 4 HideCursor();
173 4 return change;
174 4 }
175 3 default:break;
176 3 }
177 2 DisplayState();
178 2 }
179 1
C51 COMPILER V8.02 INTERFACE 09/05/2007 10:54:04 PAGE 4
180 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1084 ----
CONSTANT SIZE = 92 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 26
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -