📄 uart.lst
字号:
C51 COMPILER V7.02a UART 12/22/2010 21:07:57 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uart.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //UART 相关函数------------------------
2
3 /*----------------------------------------------
4 函数名:UART_Init()
5 功能: 串口初始化
6 通讯有关参数初始化
7 将串口波特率设定为9600bps(TC35i专用波特率)
8 作者: 于振南
9 -----------------------------------------------*/
10 #include "uart.h"
11
12 void UART_Init() /* 通讯有关参数初始化 */
13 {
14 1 ES=0;
15 1 SCON=0x50;
16 1 T2CON=0x34;
17 1 RCAP2H=0xFF;
18 1 RCAP2L=0xD8;//0xB2//D8
19 1 ES=1;
20 1
21 1
22 1 }
23
24 /*-------------------------------------------------------
25 函数名:send()
26 功能:用户函数,发送一个字节的数据
27 作者:于振南
28 ----------------------------------------------------------*/
29
30 void send(unsigned char mydata)
31 {
32 1 ES=0;
33 1 TI=0;
34 1 SBUF=mydata;
35 1 while(!TI);
36 1 TI=0;
37 1 ES=1;
38 1 }
39
40 /*-------------------------------------------------------
41 函数名:send_s()
42 功能:用户函数,发送一个字符串
43 作者:于振南
44 ----------------------------------------------------------*/
45
46 void send_s(char *s)
47 {
48 1 int len=strlen(s);
49 1 int i;
50 1 for(i=0;i<len;i++)
51 1 send(s[i]);
52 1 send(0x0d);
53 1 send(0x0a);
54 1 }
55
C51 COMPILER V7.02a UART 12/22/2010 21:07:57 PAGE 2
56 /*----------------------------------------------------
57 函数名:ftoa()
58 功能 :将一个浮点数转为一个精度为jd的字符串,存于s中
59 ------------------------------------------------------*/
60 char * ftoa(float dat,char *s,unsigned char jd)
61 {
62 1 int len,temp,flag=dat<0?dat=-dat,1:0,i;
63 1 char t[10];
64 1 temp=(int)dat;
65 1 for(len=0;temp>0;temp/=10,len++)
66 1 t[len]=temp%10+48;
67 1 for(i=0;i<=len;i++)
68 1 s[len-i-1]=t[i];
69 1 s[len++]='.';
70 1 // for(i=0,temp=(int)((dat-(int)dat)*pow(10,jd));temp>0;temp/=10,i++)
71 1 t[i]=temp%10+48;
72 1 for(i=0;i<jd;i++)
73 1 s[len++]=t[jd-i-1];
74 1 s[len++]=0x0d;
75 1 s[len++]=0x0a;
76 1 s[len]=0;
77 1 return s;
78 1 }
79 int szzh16(unsigned char datax, char *p)
80 {
81 1 unsigned char temp;
82 1 temp=datax;
83 1 p[0]=((temp>>4)>=10)?(temp>>4)+55:(temp>>4)+48;
84 1 p[1]=((temp&0x0f)>=10)?(temp&0x0f)+55:(temp&0x0f)+48;
85 1 p[2]=0;
86 1 return 1;
87 1 }
88
89 void PutLong(unsigned long dat)
90 {
91 1 while(dat)
92 1 {
93 2 send(dat%10+0x30);
94 2 dat/=10;
95 2 }
96 1 }
97
98 void PutHex(unsigned char x)
99 {
100 1 unsigned char temp[10];
101 1 szzh16(x,temp);
102 1 send_s(temp);
103 1 }
104
105 void Printf(char *s,unsigned long d)
106 {
107 1 while(*s != '\0')
108 1 {
109 2 send(*s++);
110 2 }
111 1 send(':');
112 1 send(' ');
113 1 send(d/1000+0x30);
114 1 send(d%1000/100+0x30);
115 1 send(d%1000%100/10+0x30);
116 1 send(d%1000%100%10+0x30);
117 1 send('\n');
C51 COMPILER V7.02a UART 12/22/2010 21:07:57 PAGE 3
118 1 send('\r');
119 1 //unsigned char temp[30];
120 1 //send_s(s);
121 1 //PutLong(d);
122 1 }
123
124 void Printf_File_Name(unsigned char *p)
125 {
126 1 unsigned char temp[12];
127 1 unsigned char i;
128 1 for(i=0;i<11;i++)
129 1 {
130 2 temp[i]=p[i];
131 2 }
132 1 temp[i]=0;
133 1 send_s(temp);
134 1 }
135
136 //UART----END-------------------------------
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1134 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 67
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 + -