📄 uart.lst
字号:
C51 COMPILER V7.06 UART 06/07/2005 21:42:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN Uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe Uart.c DB OE
stmt level source
1
2 // 引用外部头文件
3
4 #include "c8051F020.h"
5 #include "uart.h"
6
7
8 /***********************************************************************************
9 * 函数名称:Uart0_Init;
10 *
11 * 函数功能描述:Uart0初始化;
12 *
13 * 输入参数:unsigned char类型,发送数据波特率;
14 *
15 * 返回数据:none;
16 *
17 * 注意: none;
18 ************************************************************************************/
19
20 void Uart0_Init(unsigned char BaudRate) //Uart0初始化
21 {
22 1
23 1 TR1=0; // 关闭定时器Timer1
24 1 ET1=0; // 关闭定时器Timer1中断
25 1 PT1=0; // 关闭定时器Timer1中断优先权
26 1 TMOD&= 0x0f; // TMOD: 定时器1, 模式2, 8位重载
27 1 TMOD|= 0x20; // TMOD: 定时器1, 模式2, 8位重载
28 1
29 1 SCON0 = 0x50; // SCON0: 模式1, 8位UART, 使能RX
30 1 PCON |= 0x80; // SMOD00 = 1
31 1
32 1 if (BaudRate>=BaudRate_4800)
33 1 {
34 2 CKCON |= 0x10; // 定时器Timer1使用系统时钟作为时间基准
35 2 TH1 = -(SYSCLK/1200/(BaudRate*16)); // 设置定时器Timer1重载值
36 2 }
37 1 else
38 1 {
39 2 CKCON &= ~0x10; // 定时器Timer1使用系统时钟作为时间基准
40 2 TH1 = -(SYSCLK/1200/(BaudRate*16*12)); // 设置定时器Timer1重载值
41 2 }
42 1
43 1 ES0=0; // 关闭串口Uart0中断
44 1 PS=0; // 关闭串口Uart0中断优先权
45 1
46 1 TI0 = 1; // Indicate TX0 ready
47 1 RI0 = 0; // Indicate RX0 ready
48 1
49 1 TR1=1; // 打开串口Uart0
50 1 }
51
52 /***********************************************************************************
53 * 函数名称:Uart0_Enable;
54 *
55 * 函数功能描述:Uart0初始化;
C51 COMPILER V7.06 UART 06/07/2005 21:42:41 PAGE 2
56 *
57 * 输入参数:bool类型,打开输入1;关闭输入0;
58 *
59 * 返回数据:none;
60 *
61 * 注意: none;
62 ************************************************************************************/
63
64 void Uart0_Enable(bool Flag)
65 {
66 1 if (Flag)
67 1 TR1=1; // 打开串口Uart0
68 1 else
69 1 TR1=0; // 关闭串口Uart0
70 1 }
71
72 /***********************************************************************************
73 * 函数名称:Uart0_SendString;
74 *
75 * 函数功能描述:Uart0初始化;
76 *
77 * 输入参数: unsigned char类型指针,发送数据;
78 *
79 * 返回数据:none;
80 *
81 * 注意: none;
82 ************************************************************************************/
83
84 void Uart0_SendString(unsigned char *pt)
85 {
86 1 while(*pt)
87 1 {
88 2 Uart0_SendByte(*pt++);
89 2 }
90 1 }
91
92 /***********************************************************************************
93 * 函数名称:Uart0_SendByte;
94 *
95 * 函数功能描述:Uart0初始化;
96 *
97 * 输入参数:unsigned char类型指针,发送数据;
98 *
99 * 返回数据:none;
100 *
101 * 注意: none;
102 ************************************************************************************/
103
104 void Uart0_SendByte(unsigned char value)
105 {
106 1 while(!TI0); // 等待发送1个字节数据完成
107 1 SBUF0=value; // 发送数据到uart0
108 1 TI0=0; // 清除中断标志
109 1 }
110
111 /***********************************************************************************
112 * 函数名称:Uart0_ReceiveData;
113 *
114 * 函数功能描述:Uart0初始化;
115 *
116 * 输入参数:none;
117 *
C51 COMPILER V7.06 UART 06/07/2005 21:42:41 PAGE 3
118 * 返回数据:unsigned char类型,接收数据;
119 *
120 * 注意: none;
121 ************************************************************************************/
122 unsigned char Uart0_ReceiveData(void)
123 {
124 1 if(RI0)
125 1 {
126 2 SCON0&=~0x01; // 清除RI1标志位
127 2 return SBUF0;
128 2 }
129 1 return 0xff;
130 1 }
131
132
133 /***********************************************************************************/
134 // 文件结束
135 /***********************************************************************************/
136
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -