📄 uart.lst
字号:
C51 COMPILER V6.23a UART 12/02/2003 11:07:20 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;//晶振为16M,工作波特率为1200时的溢出寄存器值
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 12/02/2003 11:07:20 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,调用此函数的格式如printuf("Song:%x\n",NumofSong);
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 CKCON=0x0;
77 1
78 1 #if AT89C51SND1
79 1 while (ct!='\0')
80 1 {
81 2 if(ct=='%')
82 2 {
83 3 if(*(c+i+1)=='x')
84 3 {
85 4 i+=2;
86 4 cx1=cb/16;
87 4 cx2=cb%16;
88 4
89 4 SBUF=hex[cx1];
90 4 while(!TI);
91 4 TI=0;
92 4 SBUF=hex[cx2];
93 4 while(!TI);
94 4 TI=0;
95 4 ct=*(c+i);
96 4 continue;
97 4 }
98 3 if(*(c+i+1)=='c')
99 3 {
100 4 i+=2;
101 4
102 4 SBUF=cb;
103 4 while(!TI);
104 4 TI=0;
105 4 ct=*(c+i);
106 4 continue;
107 4 }
108 3
109 3 }
110 2 if(ct=='/')
111 2 {
112 3 if(*(c+i+1)=='n')
113 3 {
114 4 i+=2;
115 4 SBUF=13;
116 4 while(!TI);
117 4 TI=0;
C51 COMPILER V6.23a UART 12/02/2003 11:07:20 PAGE 3
118 4 SBUF=10;
119 4 while(!TI);
120 4 TI=0;
121 4 ct=*(c+i);
122 4 continue;
123 4 }
124 3 }
125 2 SBUF=ct;
126 2 while(!TI);
127 2 TI=0;
128 2 i++;
129 2 ct=*(c+i);
130 2 }
131 1 CKCON=0x1;
132 1
133 1 #endif
134 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 395 ----
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 + -