📄 uart.lst
字号:
C51 COMPILER V6.23a UART 11/27/2003 16:34:17 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: d:\SoftDev\Keil\C51\BIN\C51.EXE uart.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /****************************************************************/
2 /* UP-MP3DIY100 */
3 /* Beijing Universal Pioneering Technology Co., LTD */
4 /* CopyRighted,All right Reserved www.up-tech.com */
5 /* July,2003 */
6 /* 010-62387873 62381842 */
7 /****************************************************************/
8
9 #include "REGSND1.H"
10 #include "uart.h"
11
12 #define AT89C51SND1 1 //如果使用的是AT89C51SND1
13
14
15 /*------------------------------------------------------------------------------
16 ------------------------------------------------------------------------------*/
17 char hex[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
18
19 /*------------------------------------------------------------------------------
20 初使化串口
21 ------------------------------------------------------------------------------*/
22 void init_uart(int fre)
23 {
24 1 #if AT89C51SND1
25 1 if(fre==1200)
26 1 {
27 2 TMOD=0x20;
28 2 TH1=0xbe;
29 2 TL1=0xbe;
30 2 SCON=0x50;
31 2 PCON=PCON|0x80;
32 2 TR1=1;
33 2 }
34 1 #else
#endif
37 1 }
38
39 /*--------------------------------------------------------------------
40 当输出仅为字符串时可使用
41 ---------------------------------------------------------------------*/
42 void printu(char * c)
43 {
44 1
45 1 int i=0,j=0;
46 1 char ct=*c;
47 1 init_uart(1200);
48 1 while(ct!='\0')
49 1 {
50 2 #if AT89C51SND1
51 2 SBUF=ct;
52 2 while(!TI);
53 2
54 2 j++;
55 2 TI=0;
C51 COMPILER V6.23a UART 11/27/2003 16:34:17 PAGE 2
56 2 ct=*(c+j);
57 2
58 2 #endif
59 2 }
60 1
61 1 }
62
63 /*-----------------------------------------------------------------------
64 当输出为字符串时可使用或含有一控制符时使用,格式符仅用于16进制输出
65 格式控制符为%x,回车控制符为/n
66 -----------------------------------------------------------------------*/
67 void printuf(char * c,unsigned char cb)
68 {
69 1 int i=0;
70 1 char ct=*c;
71 1 char cx1;
72 1 char cx2;
73 1
74 1 init_uart(1200);
75 1
76 1 #if AT89C51SND1
77 1 while (ct!='\0')
78 1 {
79 2 if(ct=='%')
80 2 {
81 3 if(*(c+i+1)=='x')
82 3 {
83 4 i+=2;
84 4 cx1=cb/16;
85 4 cx2=cb%16;
86 4
87 4 SBUF=hex[cx1];
88 4 while(!TI);
89 4 TI=0;
90 4 SBUF=hex[cx2];
91 4 while(!TI);
92 4 TI=0;
93 4 ct=*(c+i);
94 4 continue;
95 4 }
96 3
97 3 }
98 2 if(ct=='/')
99 2 {
100 3 if(*(c+i+1)=='n')
101 3 {
102 4 i+=2;
103 4 SBUF=13;
104 4 while(!TI);
105 4 TI=0;
106 4 SBUF=10;
107 4 while(!TI);
108 4 TI=0;
109 4 ct=*(c+i);
110 4 continue;
111 4 }
112 3 }
113 2 SBUF=ct;
114 2 while(!TI);
115 2 TI=0;
116 2 i++;
117 2 ct=*(c+i);
C51 COMPILER V6.23a UART 11/27/2003 16:34:17 PAGE 3
118 2 }
119 1 #endif
120 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 344 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 16 12
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 + -