📄 posutils.lst
字号:
C51 COMPILER V8.00 POSUTILS 04/23/2009 15:56:14 PAGE 1
C51 COMPILER V8.00, COMPILATION OF MODULE POSUTILS
OBJECT MODULE PLACED IN .\out_sst89e564\posutils.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE source\posutils.c LARGE BROWSE ORDER NOAREGS DEBUG OBJECTEXTEND PRINT(.\pos
-utils.lst) OBJECT(.\out_sst89e564\posutils.obj)
line level source
1 #include "posutils.h"
2
3 /***************************************************************************
4 SUPPOSE dsp CONTAINS THE ASSCII ARRAY "12345F" AND WE EXECUTE THIS FUNCTION
5 THEN THE ARRAY AT hex WILL CONTAIN 12H,34H, 5FH
6 ****************************************************************************
7 void DSP_2_HEX(unsigned char *dsp, unsigned char *hex, int count)
8 {
9 int i;
10
11 for (i = 0; i < count; i++)
12 {
13 hex[i] = ((dsp[i << 1] <= 0x39) ? dsp[i << 1] - 0x30
14 : dsp[i << 1] - 0x41 + 10);
15 hex[i] = hex[i] << 4;
16 hex[i] += ((dsp[(i << 1) + 1] <= 0x39) ? dsp[(i << 1) + 1] - 0x30
17 : dsp[(i << 1) + 1] - 0x41 + 10);
18 }
19 }
20
21 /***************************************************************************
22 SUPPOSE HEX CONTAINS THREE BYTES:12H 34H, 5FH AND WE EXECUTE THIS FUNCTION
23 THEN dsp WILL CONTAIN ASCII BYTES "12345F"
24 **************************************************************************
25 void HEX_2_DSP(unsigned char *hex, unsigned char *dsp, int count)
26 {
27 int i;
28 unsigned char ch;
29
30 for(i = 0; i < count; i++)
31 {
32 ch = (hex[i] & 0xf0) >> 4;
33 dsp[i << 1] = (ch > 9) ? ch + 0x41 - 10 : ch + 0x30;
34 ch = hex[i] & 0xf;
35 dsp[(i << 1) + 1] = (ch > 9) ? ch + 0x41 - 10 : ch + 0x30;
36 }
37 }
38
39 /*将两字节bcd码转换成hex码*/
40 unsigned int bcd2hex(unsigned char *buf)
41 {
42 1 unsigned int temp;
43 1 temp=(buf[0]>>4)*1000 + (buf[0]&0x0f)*100 + (buf[1]>>4)*10 + (buf[1]&0x0f);
44 1 return(temp);
45 1 }
46 /***********************************************/
47 /* 将整形数字转换成两字节bcd码放入 buf*/
48 void hex2bcd(int hexnum, unsigned char *buf)
49 {
50 1 // int data th, ha, te, on;
51 1
52 1 for(buf[0]=0; hexnum >= 1000; buf[0] += 0x10, hexnum -= 1000);
53 1 for( ; hexnum >= 100; buf[0] += 0x01, hexnum -= 100);
54 1 for(buf[1]=0; hexnum >= 10; buf[1] += 0x10, hexnum -= 10);
C51 COMPILER V8.00 POSUTILS 04/23/2009 15:56:14 PAGE 2
55 1 buf[1] += hexnum;
56 1
57 1 /*
58 1 th = hexnum / 1000;
59 1 on = hexnum % 1000;
60 1
61 1 ha = on / 100;
62 1 on = on % 100;
63 1
64 1 te = on / 10;
65 1 on = on % 10;
66 1
67 1 buf[0] = th << 4 + ha;
68 1 buf[1] = te << 4 + on;
69 1 */
70 1 }
71 /**********************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 171 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -