📄 uart.lst
字号:
C51 COMPILER V6.23a UART 12/02/2003 11:07:52 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 12/02/2003 11:07:52 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 CKCON=0x0;
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 12/02/2003 11:07:52 PAGE 3
118 2 ct=*(c+i);
119 2 }
120 1 CKCON=0x01;
121 1
122 1 #endif
123 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 350 ----
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 + -