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