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