📄 key.lst
字号:
C51 COMPILER V6.12 KEY 11/29/2007 10:34:25 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN F:\YUN\安全牌\安全牌C\KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE F:\YUN\安全牌\安全牌C\KEY.C DB SB OE
stmt level source
1 #include "fun.h"
2 #include "VAR.h"
3
4 void init_t1(void)
5 {num_t1=0;
6 1 TMOD|=0X10;
7 1 TH1=0X00;
8 1 TL1=0X00;
9 1 PT1=0;
10 1 TR1=1;
11 1 ET1=1;
12 1 EA=1;
13 1 }
14
15 void interrupt_t1(void) interrupt 3 using 3
16 {TR1=0;
17 1 TH1=0X00;
18 1 TL1=0X00;
19 1 TF1=0;
20 1 num_t1++;
21 1 TR1=1;
22 1 }
23
24 void init_t0(void)
25 {flag_frame=FALSE;
26 1 frame.lf=0;
27 1 TMOD|=0X01;
28 1 TH0=0XFE; //450US
29 1 TL0=0XD0;
30 1 TR0=1;
31 1 TF0=0;
32 1 //PT0=1;
33 1 ET0=1;
34 1 EA=1;
35 1 }
36
37 void interrupt_t0(void) interrupt 1 using 1
38 {static uchar i=0;
39 1 TH0 =0XFC;
40 1 TL0 =0XD0;
41 1 TF0=0;
42 1 frame.lf=frame.lf<<1|(ulong)D;
43 1 if(++i>27)
44 1 {TR0=0;
45 2 ET0=0;
46 2 i=0;
47 2 flag_frame=TRUE;
48 2 }
49 1 }
50
51 void keyin(void)
52 {if(flag_key)return;
53 1 flag_key=TRUE;
54 1 dispall();
55 1 hp=0;lp=0;
C51 COMPILER V6.12 KEY 11/29/2007 10:34:25 PAGE 2
56 1 dispflicker(hp,lp);
57 1 init_t1();
58 1 }
59
60 void keyout(void)
61 {if(!flag_key)return;
62 1 keychange();
63 1 dispstop(hp,lp);
64 1 flag_key=FALSE;
65 1 dispall();
66 1 ET1=0;
67 1 TR1=0;
68 1 //EX0=1;
69 1 }
70
71 void keychange(void)
72 {if(flag_change)
73 1 {if(hp==0)
74 2 {bcd2_binary_time();
75 3 binary_bcd1_time();
76 3 wr_date();
77 3 }
78 2 else if(hp==1||hp==2)
79 2 {bcd_binary();
80 3 binary_24wcxx.year =binary_realtime.year;
81 3 binary_24wcxx.month=binary_realtime.month;
82 3 binary_24wcxx.day =binary_realtime.day;
83 3 if(binary_realtime.hour<18)yesterday(&binary_24wcxx);
84 3 wr_24wcxx(addrtab[hp]);
85 3 }
86 2 else if(hp<29)
87 2 {bcd_binary();
88 3 wr_24wcxx(addrtab[hp]);
89 3 }
90 2 flag_change=FALSE;
91 2 }
92 1 }
93
94 void keynum(uchar value)
95 {uchar *p;
96 1 if(!flag_key)return;
97 1 if(hp==0)
98 1 {p=(uchar*)&bcd2_realtime;
99 2 p+=lp;
100 2 if(*p!=value)
101 2 {*p=value;
102 3 flag_change=TRUE;
103 3 bcd2_binary_time();
104 3 timejudge();
105 3 binary_bcd2_time();
106 3 disp2(0);
107 3 dispstop(0,lp);
108 3 }
109 2 else dispone(hp,lp,value);
110 2 if(++lp>=12)
111 2 {if(flag_change)
112 3 {binary_bcd1_time();
113 4 wr_date();
114 4 }
115 3 flag_change=FALSE;
116 3 hp++;
117 3 lp=8; //去除一个数码管
C51 COMPILER V6.12 KEY 11/29/2007 10:34:25 PAGE 3
118 3 rd_24wcxx(addrtab[hp]);
119 3 binary_bcd();
120 3 }
121 2 dispflicker(hp,lp);
122 2 }
123 1 else if(hp==1||hp==2)
124 1 {p=(uchar *)&bcd_24wcxx;
125 2 p+=(lp-1);
126 2 if(*p!=value)
127 2 {*p=value;
128 3 flag_change=TRUE;
129 3 }
130 2 dispone(hp,lp,value);
131 2 if(++lp>=12)
132 2 {if(flag_change)
133 3 {bcd_binary();
134 4 binary_24wcxx.year =binary_realtime.year;
135 4 binary_24wcxx.month=binary_realtime.month;
136 4 binary_24wcxx.day =binary_realtime.day;
137 4 if(binary_realtime.hour<18)yesterday(&binary_24wcxx);
138 4 wr_24wcxx(addrtab[hp]);
139 4 }
140 3 flag_change=FALSE;
141 3 if(++hp>2)lp=1;
142 3 else lp=7;
143 3 rd_24wcxx(addrtab[hp]);
144 3 binary_bcd();
145 3 }
146 2 dispflicker(hp,lp);
147 2 }
148 1 else if(hp<29)
149 1 {p=(uchar *)&bcd_24wcxx;
150 2 p+=(lp-1);
151 2 if(*p!=value)
152 2 {*p=value;
153 3 flag_change=TRUE;
154 3 bcd_binary();
155 3 datejudge();
156 3 binary_bcd();
157 3 }
158 2 disp2(hp);
159 2 dispstop(hp,lp);
160 2 if(++lp>=12)
161 2 {if(flag_change)
162 3 {bcd_binary();
163 4 wr_24wcxx(addrtab[hp]);
164 4 }
165 3 flag_change=FALSE;
166 3 if(++hp>=29){hp=28;lp=11;}
167 3 else lp=1;
168 3 rd_24wcxx(addrtab[hp]);
169 3 binary_bcd();
170 3 }
171 2 dispflicker(hp,lp);
172 2 }
173 1 }
174
175 void keydirection(uchar value)
176 {if(!flag_key)return;
177 1 switch(value)
178 1 {case UP :keychange();
179 2 dispstop(hp,lp);
C51 COMPILER V6.12 KEY 11/29/2007 10:34:25 PAGE 4
180 2 if(hp==0){hp=28;lp=1;}
181 2 else if(hp==1){hp=0;lp=0;}
182 2 else if(hp==2){hp=1;lp=8;}
183 2 else if(hp==3){hp=2;lp=7;}
184 2 else hp--;
185 2 dispflicker(hp,lp);
186 2 if(hp)
187 2 {rd_24wcxx(addrtab[hp]);
188 3 binary_bcd();
189 3 }
190 2 else
191 2 {rd_date();
192 3 bcd1_binary_time();
193 3 binary_bcd2_time();
194 3 }
195 2 break;
196 2 case DOWN :keychange();
197 2 dispstop(hp,lp);
198 2 if(hp==0){hp=1;lp=8;}
199 2 else if(hp==1){hp=2;lp=7;}
200 2 else if(hp==2){hp=3;lp=1;}
201 2 else if(hp==28){hp=0;lp=0;}
202 2 else hp++;
203 2 dispflicker(hp,lp);
204 2 if(hp)
205 2 {rd_24wcxx(addrtab[hp]);
206 3 binary_bcd();
207 3 }
208 2 else
209 2 {rd_date();
210 3 bcd1_binary_time();
211 3 binary_bcd2_time();
212 3 }
213 2 break;
214 2 case RIGHT:dispstop(hp,lp);
215 2 if(++lp>=12)
216 2 {keychange();
217 3 hp++;
218 3 if(hp==1)lp=8;
219 3 else if(hp==2)lp=7;
220 3 else if(hp>=29){hp=0;lp=0;}
221 3 else lp=1;
222 3 if(hp)
223 3 {rd_24wcxx(addrtab[hp]);
224 4 binary_bcd();
225 4 }
226 3 else
227 3 {rd_date();
228 4 bcd1_binary_time();
229 4 binary_bcd2_time();
230 4 }
231 3 }
232 2 dispflicker(hp,lp);
233 2 break;
234 2 case LEFT :dispstop(hp,lp);
235 2 if((hp==0&&lp==0)||(hp==1&&lp==8)||(hp==2&&lp==7)||(hp>2&&lp==1))
236 2 {keychange();
237 3 if(hp==0&&lp==0){hp=28;lp=11;}
238 3 else if(hp==1&&lp==8){hp=0;lp=11;}
239 3 else if(hp==2&&lp==7){hp=1;lp=11;}
240 3 else if(hp<29&&lp==1){hp--;lp=11;}
241 3 if(hp)
C51 COMPILER V6.12 KEY 11/29/2007 10:34:25 PAGE 5
242 3 {rd_24wcxx(addrtab[hp]);
243 4 binary_bcd();
244 4 }
245 3 else
246 3 {rd_date();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -