📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89s52.h>
2 #include <stdio.h>
3 #include <per.h>
4 #include <intrins.h>
5 unsigned char MS[BUFFNUM+1]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
6 unsigned char *p;
7 unsigned char pointer;
8 unsigned char SendNum;
9 bit send_flag;
10 bit SomeKeyEnableFlag,SomeKeyKeepFlag;
11 unsigned char SomeKeyKeepTime;
12 bit ReadKeyOnceFlag;
13 unsigned char DatTemp1,DatTemp2,DatTemp11,DatTemp22;
14 unsigned char KeyWobbleTime;
15 bit NewKeyFlag;
16 bit TwoMcodeFlag;//双键码标志
17 unsigned char makecode=0;
18 bit RstFlag;
19 unsigned char KeyT;
20 unsigned int testtime;
21 main()
22 {
23 1 unsigned char i;
24 1 //unsigned char dattemp;
25 1 Project_Int();
26 1 for(i=0;i<16;i++)
27 1 MS[i]=0;
28 1 p=MS;
29 1 if(RstFlag==0)
30 1 {
31 2 LED1=1;
32 2 LED2=1;
33 2 LED3=1;
34 2 LED4=1;
35 2 RstFlag=1;
36 2 }
37 1 for(;;)
38 1 {
39 2 /* if(testtime==0) //for debug
40 2 {
41 2 LED4=!LED4;
42 2 testtime=1500;
43 2 }*/
44 2 WDT();
45 2 //===============键盘处理
46 2 //==========通码保存
47 2 if(ReadKeyOnceFlag)
48 2 {
49 3 KeyT=K_D_T;//俩次按键间隔
50 3
51 3 switch(DatTemp1)
52 3 {
53 4 case 0x3e://P1.0=0
54 4 if(!SomeKeyEnableFlag)
55 4 {
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 2
56 5 SomeKeyEnableFlag=1;
57 5 switch(DatTemp2)
58 5 {
59 6 case 0xfe://1
60 6 if(pointer<BUFFNUM)
61 6 {
62 7 makecode=_1_PS2;
63 7 MS[pointer]=makecode;
64 7 pointer++;
65 7 TwoMcodeFlag=0;
66 7 }
67 6 break;
68 6 case 0xfd://6
69 6 if(pointer<BUFFNUM)
70 6 {
71 7 makecode=_6_PS2;
72 7 MS[pointer]=makecode;
73 7 pointer++;
74 7 TwoMcodeFlag=0;
75 7 }
76 6 break;
77 6 case 0xfb://au
78 6 if(pointer<BUFFNUM)
79 6 {
80 7 makecode=_a_PS2;
81 7 MS[pointer]=makecode;
82 7 pointer++;
83 7 TwoMcodeFlag=0;
84 7 }
85 6 break;
86 6 case 0xf7://fu
87 6 if(pointer<BUFFNUM)
88 6 {
89 7 makecode=_f_PS2;
90 7 MS[pointer]=makecode;
91 7 pointer++;
92 7 TwoMcodeFlag=0;
93 7 }
94 6 break;
95 6 case 0xef://cd----f3
96 6 if(pointer<BUFFNUM)
97 6 {
98 7 makecode=_f3_PS2;
99 7 MS[pointer]=makecode;
100 7 pointer++;
101 7 TwoMcodeFlag=0;
102 7 }
103 6 break;
104 6 case 0xdf://hd-----f8
105 6 if(pointer<BUFFNUM)
106 6 {
107 7 makecode=_f8_PS2;
108 7 MS[pointer]=makecode;
109 7 pointer++;
110 7 TwoMcodeFlag=0;
111 7 }
112 6 break;
113 6 case 0xbf://cr
114 6 if(pointer<BUFFNUM)
115 6 {
116 7 makecode=_cr_PS2;
117 7 MS[pointer]=makecode;
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 3
118 7 pointer++;
119 7 TwoMcodeFlag=0;
120 7 }
121 6 break;
122 6 case 0x7f://f5----p
123 6 if(pointer<BUFFNUM)
124 6 {
125 7 makecode=_p_PS2;
126 7 MS[pointer]=makecode;
127 7 pointer++;
128 7 TwoMcodeFlag=0;
129 7 }
130 6 break;
131 6 }
132 5 }
133 4 else if((DatTemp2==0xfb)||(DatTemp2==0xf7))//a.f
134 4 {
135 5 SomeKeyKeepFlag=1;
136 5 }
137 4 break;
138 4 case 0x3d://P1.1=0
139 4 if(!SomeKeyEnableFlag)
140 4 {
141 5 SomeKeyEnableFlag=1;
142 5 switch(DatTemp2)
143 5 {
144 6 case 0xfe://2
145 6 if(pointer<BUFFNUM)
146 6 {
147 7 makecode=_2_PS2;
148 7 MS[pointer]=makecode;
149 7 pointer++;
150 7 TwoMcodeFlag=0;
151 7 }
152 6 break;
153 6 case 0xfd://7
154 6 if(pointer<BUFFNUM)
155 6 {
156 7 makecode=_7_PS2;
157 7 MS[pointer]=makecode;
158 7 pointer++;
159 7 TwoMcodeFlag=0;
160 7 }
161 6 break;
162 6 case 0xfb://bu
163 6 if(pointer<BUFFNUM)
164 6 {
165 7 makecode=_b_PS2;
166 7 MS[pointer]=makecode;
167 7 pointer++;
168 7 TwoMcodeFlag=0;
169 7 }
170 6 break;
171 6 case 0xf7://gu
172 6 if(pointer<BUFFNUM)
173 6 {
174 7 makecode=_g_PS2;
175 7 MS[pointer]=makecode;
176 7 pointer++;
177 7 TwoMcodeFlag=0;
178 7 }
179 6 break;
C51 COMPILER V7.50 MAIN 02/06/2009 10:34:28 PAGE 4
180 6 case 0xef://dd----f4
181 6 if(pointer<BUFFNUM)
182 6 {
183 7 makecode=_f4_PS2;
184 7 MS[pointer]=makecode;
185 7 pointer++;
186 7 TwoMcodeFlag=0;
187 7 }
188 6 break;
189 6 case 0xdf://dt-------小数点
190 6 if(pointer<BUFFNUM)
191 6 {
192 7 makecode=_dian_PS2;
193 7 MS[pointer]=makecode;
194 7 pointer++;
195 7 TwoMcodeFlag=0;
196 7 }
197 6 break;
198 6 case 0xbf://f1-----w
199 6 if(pointer<BUFFNUM)
200 6 {
201 7 makecode=_w_PS2;
202 7 MS[pointer]=makecode;
203 7 pointer++;
204 7 TwoMcodeFlag=0;
205 7 }
206 6 break;
207 6 case 0x7f://f6-----l
208 6 if(pointer<BUFFNUM)
209 6 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -