📄 t.lst
字号:
C51 COMPILER V7.09 T 08/11/2005 20:28:41 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE T
OBJECT MODULE PLACED IN t.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE t.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include<reg51.h>
3 //#include<graphics.h>
4 //#include<stdio.h>
5 #include<stdio.h>
6 #include<stdlib.h>
7 //#include<conio.h>
8 #include<index.h>
9
10
11 check_key( unsigned char k) //查看并确认键值
12 {
13 1 int c;
14 1 switch(k)
15 1 {
16 2 case '1':c=1;
17 2 break;
18 2 case '2':c=2;
19 2 break;
20 2 case '3':c=3;
21 2 break;
22 2 case '4':c=4;
23 2 break;
24 2 case '5':c=5;
25 2 break;
26 2 case '6':c=6;
27 2 break;
28 2 case '7':c=7;
29 2 break;
30 2 case '8':c=8;
31 2 break;
32 2 case '9':c=9;
33 2 break;
34 2 case '0':c=0;
35 2 break;
36 2 case 'q':c=10; //define F1
37 2 break;
38 2 case 'w':c=11; //define F2
39 2 break;
40 2 case 'e':c=12; //define F3
41 2 break;
42 2 case 'r':c=13; //define F4
43 2 break;
44 2 case 'c':
45 2 // closegraph();
46 2 // exit(0);
47 2 default:
48 2 c=20;
49 2 break;
50 2 }
51 1 return(c);
52 1 }
53
54
55 main()
C51 COMPILER V7.09 T 08/11/2005 20:28:41 PAGE 2
56 {
57 1 int firqmh,firqml;
58 1 int a[6][16];
59 1 int key[6],i,j,s,ii,k,m,kkk,kk=0,jj=120,n,nn=0;
60 1 int ks,mm,d=0,key1,key2,qmh,qml,ss,kp,kd=0,page=0,page1=0;
61 1 //int driver=DETECT,mode;
62 1 int end;
63 1 int endd;
64 1 int mu;
65 1 int end1;
66 1 int sm[6];
67 1 int ok;
68 1 char kc;
69 1 //initgraph(&driver,&mode,"");
70 1 //setcolor(5);
71 1 //headdisp();
72 1 //headdisp2();
73 1 //bar(0,50,500,100);
74 1 //bar(0,100,500,220);
75 1
76 1
77 1 top:
78 1 if(kd==4)
79 1 {
80 2 kd=0;
81 2 } //键盘状态循环
82 1 while(kd==0) //汉字输入状态
83 1 {
84 2 // bar(0,50,500,100);
85 2 // pydisp();
86 2 h1:
87 2 for(;;)
88 2 {
89 3 page=0;
90 3 for(i=0;i<7;i++)
91 3 {
92 4 again:
93 4 key[i]=check_key(getchar()); //取键值
94 4 if(key[0]==0)
95 4 {
96 5 goto again;
97 5 }
98 4 switch(key[i])
99 4 { //判断键状态
100 5 case 9:kk=kk+8;goto h1;
101 5 case 13:kd++;goto top; //是否是状态切换键
102 5 case 12:
103 5 kk=kk-8;
104 5 // bar(kk,jj,kk+8,jj+16);
105 5 if(kk<0)
106 5 {
107 6 kk=304;
108 6 jj=jj-16;
109 6 }
110 5 if(jj<=120)
111 5 {
112 6 jj=120;
113 6 }
114 5 goto h1;
115 5 case 0 :
116 5 s=check_key(getchar());
117 5 goto outhz; //汉字输入确认
C51 COMPILER V7.09 T 08/11/2005 20:28:41 PAGE 3
118 5 case 10:i=i-2;if(i<0){i=0;goto top;}
119 5 break;
120 5 case 11:
121 5 case 20:
122 5 goto again;
123 5 }
124 4 if(i==0)
125 4 { //若为第一次读键
126 5 for(k=0;k<402;k++)
127 5 {
128 6 if(hzk_index[k][0]==key[0]) //搜索索引表
129 6 {
130 7 ok=k;
131 7 goto here;
132 7 }
133 6 }
134 5 }
135 4 if(i==1)
136 4 { //若为第二次读键
137 5 mu=0;
138 5 for(k=0;k<402;k++)
139 5 {
140 6 if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1])
141 6 //搜索索引表
142 6 {
143 7 mu=1;
144 7 ok=k;
145 7 goto here;
146 7 }
147 6 }
148 5 if(mu==0){sm[i]=ok;goto again;}
149 5 }
150 4
151 4 if(i==2)
152 4 { //若为第三次读键
153 5 mu=0;
154 5 for(k=0;k<402;k++)
155 5 {
156 6 if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2])
157 6 //搜索索引表
158 6 {
159 7 ok=k;
160 7 mu=1;
161 7 goto here;
162 7 }
163 6 }
164 5 if(mu==0){sm[i]=ok;goto again;}
165 5 }
166 4
167 4 if(i==3)
168 4 { //若为第四次读键
169 5 mu=0;
170 5 for(k=0;k<402;k++)
171 5 {
172 6 if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&
-hzk_index[k][3]==key[3])
173 6 {
174 7 ok=k;
175 7 mu=1;
176 7 goto here;
177 7 }
178 6 }
C51 COMPILER V7.09 T 08/11/2005 20:28:41 PAGE 4
179 5 if(mu==0){sm[i]=ok;goto again;}
180 5 }
181 4
182 4 if(i==4)
183 4 { //若为第五次读键
184 5 mu=0;
185 5 for(k=0;k<402;k++)
186 5 {
187 6 if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&
-hzk_index[k][3]==key[3]&&hzk_index[k][4]==key[4])
188 6 {
189 7 mu=1;
190 7 ok=k;
191 7 goto here;
192 7 }
193 6 }
194 5 if(mu==0){sm[i]=ok;goto again;}
195 5 }
196 4
197 4 if(i==5)
198 4 { //若为第六次读键
199 5 mu=0;
200 5 for(k=0;k<402;k++)
201 5 {
202 6 if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&
-hzk_index[k][3]==key[3]&&hzk_index[k][4]==key[4]&&hzk_index[k][5]==key[5])
203 6 {
204 7 mu=1;
205 7 ok=k;
206 7 goto here;
207 7 }
208 6 }
209 5 if(mu==0){sm[i]=ok;goto again;}
210 5 }
211 4
212 4 here: //显示对应键盘字母所有的可能组合
213 4 m=hzk_index[k][6]; //m为所有可能数,它位于索引表每行第7列
214 4 firqmh=hzk_index[k][7];
215 4 firqml=hzk_index[k][8];
216 4 // bar(0,50,300,100);
217 4 // pydisp();
218 4 // bar(100,50,200,100);
219 4 for(ks=0;ks<9;ks++)
220 4 {
221 5 // putnum(ks*32,70,ks+1,2);
222 5 // puthz((ks*2+1)*16,70,firqmh,firqml+ks,2);
223 5 }
224 4 for(n=0;n<m;n++)
225 4 {
226 5 // putnum(10*8+n*64,50,n+1,2);
227 5 for(kkk=1;kkk<=i+1;kkk++)
228 5 {
229 6 a[n][kkk]=hzk_index[k][18+(n*(i+1)+kkk)];
230 6 // putzimus(11*8+n*64+kkk*8,50,a[n][kkk]-1,2);
231 6 }
232 5 }
233 4
234 4 }
235 3
236 3 outhz: //用户选择组合中所有可能中的一种
237 3 nn=++nn ;
238 3 if(mu==1)
C51 COMPILER V7.09 T 08/11/2005 20:28:41 PAGE 5
239 3 {
240 4 qmh=hzk_index[k][7+(s-1)*2];
241 4 qml=hzk_index[k][7+(s-1)*2+1];
242 4 }
243 3 if(mu==0)
244 3 {
245 4 qmh=hzk_index[sm[i]][7+(s-1)*2];
246 4 qml=hzk_index[sm[i]][7+(s-1)*2+1];
247 4 }
248 3 fydisp:
249 3 // bar(0,50,500,100);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -