📄 lesson7.lst
字号:
135 3 case 10:/*A*/
136 3 if(g_uc_disp_cnt == 6)
137 3 {
138 4 uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 wr
-ite.
139 4 uc_device_sub_addr = 0x00;//EEPROM 首地址
140 4 uc_data_send[0] = g_uc_hr_cnt;//存储的数据保存在数组uc_data_send中
141 4 uc_data_send[1] = g_uc_min_cnt;
142 4 uc_data_send[2] = g_uc_sec_cnt;
143 4
144 4 ISendStr(uc_device_addr,uc_device_sub_addr,uc_data_send,3);//以页方式存储
145 4
146 4 g_uc_hr_cnt = 0xFF;//清屏
147 4 g_uc_min_cnt = 0xFF;
148 4 g_uc_sec_cnt = 0xFF;
149 4 display_led();
150 4 }
151 3 break;
152 3 case 11:/*B*/
153 3 g_uc_key_B_cnt++;//需要对uc_key_B_cnt赋初始值,否则uc_key_B_cnt得到随机数
154 3 switch(g_uc_key_B_cnt)
155 3 {
156 4 case 1:
157 4 uc_device_addr = 0xA0;//0xA0=1010 0000B, 1010is the device number,000 is the A2A1A0 hard wired, 0 w
-rite.
158 4 uc_device_sub_addr = 0x00;//EEPROM 首地址
159 4 IRcvStr(uc_device_addr,uc_device_sub_addr,uc_data_send,3);//以页方式读取
160 4 g_uc_hr_cnt = uc_data_send[0];//读出的数据保存在数组uc_data_send中
161 4 g_uc_min_cnt = uc_data_send[1];
162 4 g_uc_sec_cnt = uc_data_send[2];
163 4
164 4 g_hr_disp = g_uc_hr_cnt | 0x0F;//显示hr high
165 4 break;
166 4 case 2:
167 4 g_hr_disp = g_uc_hr_cnt;//显示hr high和hr low
168 4 break;
169 4 case 3:
170 4 g_min_disp = g_uc_min_cnt | 0x0F;//显示min high
171 4 break;
172 4 case 4:
173 4 g_min_disp = g_uc_min_cnt;//显示min high和min low
174 4 break;
175 4 case 5:
176 4 g_sec_disp = g_uc_sec_cnt | 0x0F;//显示sec high
C51 COMPILER V7.50 LESSON7 06/18/2006 10:39:04 PAGE 4
177 4 break;
178 4 case 6:
179 4 g_sec_disp = g_uc_sec_cnt;//显示hr high和hr low
180 4
181 4 g_uc_key_B_cnt = 0;
182 4 g_uc_disp_cnt = 0;//允许接收按键0~9
183 4 break;
184 4 default:
185 4 break;
186 4 }
187 3 break;
188 3
189 3 default:/*k = 0~9*/
190 3 if(g_uc_disp_cnt < 7)//the maximal number is 6
191 3 {
192 4 g_uc_disp_cnt++;
193 4 switch(g_uc_disp_cnt)
194 4 {
195 5 case 1:/*hr high*/
196 5 g_uc_hr_cnt = k << 4;
197 5 g_hr_disp = g_uc_hr_cnt;/*using OR can't mask the hr_low,so hr equal to 0*/
198 5 break;
199 5 case 2:/*hr low*/
200 5 g_uc_hr_cnt += k;
201 5 g_hr_disp = g_uc_hr_cnt;
202 5 break;
203 5 case 3:/*min high*/
204 5 g_uc_min_cnt = k << 4;
205 5 g_min_disp = g_uc_min_cnt;
206 5 break;
207 5 case 4:/*min low*/
208 5 g_uc_min_cnt += k;
209 5 g_min_disp = g_uc_min_cnt;
210 5 break;
211 5 case 5:/*sec high*/
212 5 g_uc_sec_cnt = k << 4;
213 5 g_sec_disp = g_uc_sec_cnt;
214 5 break;
215 5 case 6:/*sec low*/
216 5 g_uc_sec_cnt += k;
217 5 g_sec_disp = g_uc_sec_cnt;
218 5
219 5 //g_uc_disp_cnt = 7;/*avoid setting incorrectly*/
220 5 break;
221 5 default:
222 5 break;
223 5 }
224 4 }
225 3 break;
226 3 }
227 2 }
228 1 else/*not release the key; continue wait*/
229 1 {
230 2 delay(2,255);
231 2 goto lab;
232 2 }
233 1 }
234 /*************************************************/
235 /*
236 name:display_led
237 function:display the number
238 */
C51 COMPILER V7.50 LESSON7 06/18/2006 10:39:04 PAGE 5
239 /*************************************************/
240 void display_led(void)
241 {
242 1 g_sec_disp = g_uc_sec_cnt;//显示sec
243 1 g_min_disp = g_uc_min_cnt;//显示min
244 1 g_hr_disp = g_uc_hr_cnt;//显示hr
245 1 }
246 /*************************************************/
247 /*
248 name:delay
249 function:
250 */
251 /*************************************************/
252 void delay(uchar m, uchar n)
253 {
254 1 data uchar i, j;
255 1 for(i=0;i<m;i++)
256 1 {
257 2 for(j=0;j<n;j++);
258 2 }
259 1 }
260
261
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 432 ----
CONSTANT SIZE = 12 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -