📄 code.lst
字号:
C51 COMPILER V8.02 CODE 07/29/2007 22:59:01 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CODE
OBJECT MODULE PLACED IN code.OBJ
COMPILER INVOKED BY: D:\Program Files\C51\BIN\C51.EXE code.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2
3 #include <AT89X52.H>
4 #include <intrins.h>
5 #include <head.H>
6 #include <subprogram.H>
*** WARNING C275 IN LINE 272 OF SUBPROGRAM.H: expression with possibly no effect
7 void main(void)
8 {
9 1 BEEP=0;
10 1 SDA = 1;
11 1 SCL = 1;
12 1 //fill_byte(0x08);
13 1 MCU_Init();
14 1 while(1)
15 1 {
16 2 if(Keyenableflag==1)
17 2 {
18 3 P1=0xff;
19 3 P1_4=0;
20 3 temp=P1;
21 3 temp=temp & 0x0f;
22 3
23 3 if (temp!=0x0f)
24 3 {
25 4 KeyDelay(); //延时去抖
26 4 if (temp!=0x0f)
27 4 {
28 5 temp=P1;
29 5 temp=temp & 0x0f;
30 5 switch(temp)
31 5 {
32 6 case 0x0e: key=1; break;
33 6 case 0x0d: key=2; break;
34 6 case 0x0b: key=3; break;
35 6 case 0x07: key=10; break;
36 6 }
37 5 efficiencyKey(); // 按键有效提示
38 5 if((key>=0) && (key<10)) DealNum(); //数字键的处理
39 5
40 5 else if(key==11) Rest(); //复位键的处理
41 5 else if(key==12) DealDel(); //删除键的处理
42 5 else if(key==14) Dealpschange(); //修改密码键输入的处理
43 5 else if(key==15) DealENl(); //确定键的处理
44 5 else if(key==13) Doorbell(); //门铃按键的处理
45 5 ReleaseKey(); //等待键释放
46 5 }
47 4 }
48 3
49 3 P1=0xff; //扫描下一行
50 3 P1_5=0;
51 3 temp=P1;
52 3 temp=temp & 0x0f;
53 3
54 3 if (temp!=0x0f)
C51 COMPILER V8.02 CODE 07/29/2007 22:59:01 PAGE 2
55 3 {
56 4
57 4 KeyDelay(); //延时去抖
58 4
59 4 if (temp!=0x0f)
60 4 {
61 5
62 5 temp=P1;
63 5 temp=temp & 0x0f;
64 5
65 5 switch(temp)
66 5
67 5 {
68 6 case 0x0e: key=4; break;
69 6 case 0x0d: key=5; break;
70 6 case 0x0b: key=6; break;
71 6 case 0x07: key=11; break;
72 6 }
73 5
74 5 efficiencyKey(); // 按键有效提示
75 5 if((key>=0) && (key<10)) DealNum(); //数字键的处理
76 5
77 5 else if(key==11) Rest(); //复位键的处理
78 5 else if(key==12) DealDel(); //删除键的处理
79 5 else if(key==14) Dealpschange(); //修改密码键输入的处理
80 5 else if(key==15) DealENl(); //确定键的处理
81 5 else if(key==13) Doorbell(); //门铃按键的处理
82 5 ReleaseKey(); //等待键释放
83 5
84 5 }
85 4 }
86 3
87 3 P1=0xff;
88 3 P1_6=0;
89 3 temp=P1;
90 3 temp=temp & 0x0f;
91 3
92 3 if (temp!=0x0f)
93 3 {
94 4
95 4 KeyDelay(); //延时去抖
96 4 if (temp!=0x0f)
97 4 {
98 5
99 5 temp=P1;
100 5 temp=temp & 0x0f;
101 5
102 5 switch(temp)
103 5 {
104 6 case 0x0e: key=7; break;
105 6 case 0x0d: key=8; break;
106 6 case 0x0b: key=9; break;
107 6 case 0x07: key=12;break;
108 6 }
109 5
110 5 efficiencyKey(); // 按键有效提示
111 5 if((key>=0) && (key<10)) DealNum(); //数字键的处理
112 5
113 5 else if(key==11) Rest(); //复位键的处理
114 5 else if(key==12) DealDel(); //删除键的处理
115 5 else if(key==14) Dealpschange(); //修改密码键输入的处理
116 5 else if(key==15) DealENl(); //确定键的处理
C51 COMPILER V8.02 CODE 07/29/2007 22:59:01 PAGE 3
117 5 else if(key==13) Doorbell(); //门铃按键的处理
118 5 ReleaseKey(); //等待键释放
119 5
120 5
121 5 }
122 4 }
123 3
124 3 P1=0xff;
125 3 P1_7=0;
126 3 temp=P1;
127 3 temp=temp & 0x0f;
128 3
129 3 if (temp!=0x0f)
130 3 {
131 4 KeyDelay(); //延时去抖
132 4 if (temp!=0x0f)
133 4 {
134 5 temp=P1;
135 5 temp=temp & 0x0f;
136 5
137 5 switch(temp)
138 5 {
139 6 case 0x0e: key=13; break;
140 6 case 0x0d: key=0; break;
141 6 case 0x0b: key=14; break;
142 6 case 0x07: key=15; break;
143 6 }
144 5
145 5 efficiencyKey(); // 按键有效提示
146 5 if((key>=0) && (key<10)) DealNum(); //数字键的处理
147 5
148 5 else if(key==11) Rest(); //复位键的处理
149 5 else if(key==12) DealDel(); //删除键的处理
150 5 else if(key==14) Dealpschange(); //修改密码键输入的处理
151 5 else if(key==15) DealENl(); //确定键的处理
152 5 else if(key==13) Doorbell(); //门铃按键的处理
153 5 ReleaseKey(); //等待键释放
154 5
155 5
156 5 }
157 4 } // end if (temp!=0x0f) 有按键按下
158 3 } //end if(Keyenableflag==1)
159 2 } // end while(1)
160 1 } //end main(void)
161
162 void t0(void) interrupt 1 using 0
163 {
164 1 TH0=(65536-500)/256;
165 1 TL0=(65536-500)%256;
166 1 flashcount++;
167 1 if(flashcount==8)
168 1 {
169 2 flashcount=0;
170 2
171 2 clr_wdt(); // 8191个机器周期内必须至少调用此程序一次
172 2 // 否则看门狗会溢出
173 2 //P0=dispcode[getps[dispcount]];
174 2 P0=dispcode[dispbuf[dispcount]];
175 2 P2=dispbit[dispcount];
176 2 dispcount++;
177 2 if(dispcount==8) dispcount=0;
178 2 }
C51 COMPILER V8.02 CODE 07/29/2007 22:59:01 PAGE 4
179 1 if((errorflag==1) && (rightflag==0))
180 1 {
181 2 Keyenableflag=0; //按键输入无效
182 2 bb++;
183 2 if(bb==800)
184 2 { bb=0; alarmflag=~alarmflag; }
185 2 if(alarmflag==1) BEEP=~BEEP; //sound alarm signal
186 2 aa++;
187 2 if(aa==800)//light alarm signal
188 2 { aa=0; P3_4=~P3_4; }
189 2 second3++;
190 2 if(second3==3200)
191 2 {
192 3 second3=0;
193 3 errorflag=0;
194 3 rightflag=0;
195 3 alarmflag=0;
196 3 Keyenableflag=1; //报警结束按键输入有效
197 3 bb=0;
198 3 aa=0;
199 3 }
200 2 }
201 1 else if((errorflag==0) && (rightflag==1))
202 1 {
203 2 Keyenableflag=0; //按键输入无效
204 2 cc++;
205 2 if(cc==800)
206 2 { cc=0; alarmflag=~alarmflag; }
207 2 if(alarmflag==1) BEEP=~BEEP; //sound alarm signal
208 2 dd++;
209 2 if(dd==800)//light alarm signal
210 2 { dd=0; P3_3=~P3_3; }
211 2 second3++;
212 2 if(second3==12800)
213 2 {
214 3 second3=0;
215 3 errorflag=0;
216 3 rightflag=0;
217 3 alarmflag=0;
218 3 Keyenableflag=1; //报警结束按键输入有效
219 3 cc=0;
220 3 dd=0;
221 3 }
222 2 Rest();
223 2 }
224 1
225 1 }
226
227 void time1(void) interrupt 3 using 1 //产生10MS精确定时
228 { TH1=(65536-10000)/256;
229 1 TL1=(65536-10000)%256;
230 1 n--;
231 1 }
232
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1969 ----
CONSTANT SIZE = 219 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 56 5
C51 COMPILER V8.02 CODE 07/29/2007 22:59:01 PAGE 5
IDATA SIZE = ---- ----
BIT SIZE = 10 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -