****/
252 void hd1650_init(void)
253 {
254 hd1650_sendcmd(CMD_8SEGON);
255
256 / clear 4 segment /
257 hd1650_sendcmd(CMD_DIG0(0x00));
258 hd1650_sendcmd(CMD_DIG1(0x00));
259 hd1650_sendcmd(CMD_DIG2(0x00));
260 hd1650_sendcmd(CMD_DIG3(0x00));
261 }
262
263 unsigned char asc2code(unsigned char src)
264 {
265
266 if(src <= 9)
267 return TM_NUM[src];
268 else if(src >= '0' && src <= '9')
269 return TM_NUM[src - '0'];
270 else if(src >= 'a' && src <= 'z')
271 return TM_CHAR[src - 'a'];
272 else if(src >= 'A' && src <= 'Z')
273 return TM_CHAR[src - 'A'];
274 else
275 return 0;
276
277 }
278
279 /data : 0-6
280 pos: 2
281 dot_flag:数码管的点的亮灭/
282 void hd1650_show_each(unsigned char data, unsigned char pos,unsigned char dot_flag)
283 {
284 unsigned char tmpData;
285 //tmpData = asc2code(data);
286 switch(pos)
287 {
288 case 1:
289 hd1650_sendcmd(CMD_DIG0(tmpData));
290 break;
291 case 2:
292 if(dot_flag)
293 hd1650_sendcmd(CMD_DIG1(tmpData|0x80));
294 else
295 //hd1650_sendcmd(CMD_DIG1(tmpData&0x7f));
296 hd1650_sendcmd(CMD_DIG1(data));
297 break;
298 case 3:
299 hd1650_sendcmd(CMD_DIG2(tmpData));
300 break;
301 case 4:
302 hd1650_sendcmd(CMD_DIG3(tmpData));
303 break;
304 }
305 }
306
307
308
309 unsigned char hd1650_getkey(unsigned charkey)
310 {
311 unsigned char tmp = 0;
312
313
314 tmp = hd1650_sendcmd( CMD_GETKEY );
315
316 if((tmp & 0x40)== 0)
317 tmp = 0x2e;
318
319 if( key )
320 key = tmp;
321
322 return tmp;
323 }
324
325
326
327 /