📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 09/27/2006 14:03:28 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /***********************************************************************************
2 程序名称:串行口收发
3 硬件接法:RXD和TXD通过RS-232电平转换电路接到电脑的串行口上
4 运行效果:开机时向电脑发送Hello,然后接收电脑发出的字符并回显
5 ***********************************************************************************/
6
7
8 #include <reg51.h>
9
10
11 //设置波特率(取值1200、2400、4800、9600、19200等)
12 #define BaudRate 9600L
13
14
15 /***********************************************************************************
16 函数:UartInit()
17 功能:串行口初始化
18 ***********************************************************************************/
19 void UartInit()
20 {
21 1 SCON = 0x50; //串口方式1(8位Uart),允许接收
22 1 PCON |= 0x80; //波特率加倍
23 1 TMOD &= 0x0F; //设置T1为8位自动重装定时器,用于产生波特率
24 1 TMOD |= 0x20;
25 1 TH1 = TL1 = 256 - (11059200L / 12) / (16 * BaudRate); //根据波特率设置T1初值
26 1 TR1 = 1; //启动T1
27 1 }
28
29
30 /***********************************************************************************
31 函数:UartSendChar()
32 功能:通过串行口发送单个字节
33 参数:c是被发送的字节数据,取值0x00~0xFF
34 ***********************************************************************************/
35 void UartSendChar(char c)
36 {
37 1 SBUF = c; //数据写入SBUF,同时启动硬件发送过程
38 1 while ( !TI ); //等待发送完毕
39 1 TI = 0; //清除发送标志
40 1 }
41
42
43 /***********************************************************************************
44 函数:UartSendStr()
45 功能:通过串行口发送一个字符串
46 参数:*s是被发送的字符串
47 ***********************************************************************************/
48 void UartSendStr(char *s)
49 {
50 1 char c;
51 1 for (;;)
52 1 {
53 2 c = *s++;
54 2 if ( c == '\0' ) break;
55 2 UartSendChar(c);
C51 COMPILER V7.06 MAIN 09/27/2006 14:03:28 PAGE 2
56 2 }
57 1 }
58
59
60 //主函数
61 void main()
62 {
63 1 unsigned char c;
64 1 UartInit();
65 1 UartSendStr("Hello\r\n");
66 1 for (;;)
67 1 {
68 2 if ( RI ) //如果收到数据
69 2 {
70 3 RI = 0; //清除接收标志
71 3 c = SBUF; //读取收到的数据
72 3 UartSendChar(c); //回送收到的数据
73 3 }
74 2 }
75 1 }
76
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 89 ----
CONSTANT SIZE = 8 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -