📄 +
字号:
C51 COMPILER V7.50 RS232 06/09/2010 21:06:05 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RS232
OBJECT MODULE PLACED IN rs232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE rs232.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*-----------------------------------------------
3 名称:串口通信
4 内容:连接好串口或者usb转串口至电脑,下载该程序,打开电源
5 打开串口调试程序,将波特率设置为9600,无奇偶校验
6 晶振11.0592MHz,发送和接收使用的格式相同,如都使用
7 字符型格式,在发送框输入 hello,I Love MCU ,在接
8 收框中同样可以看到相同字符,说明设置和通信正确
9 ------------------------------------------------*/
10
11 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
12
13
14 /******************************************************************/
15 /* 主函数 */
16 /******************************************************************/
17 void main (void)
18 {
19 1
20 1
21 1 SCON = 0x50; /* SCON: 模式 1, 8-bit UART, 使能接收 */
22 1 TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
23 1 TH1 = 0xFD; /* TH1: reload value for 9600 baud @ 11.0592MHz */
24 1 TR1 = 1; /* TR1: timer 1 run */
25 1 EA = 1; /*打开总中断*/
26 1 ES = 1; /*打开串口中断*/
27 1
28 1 while (1) /*主循环不做任何动作*/
29 1 {
30 2 }
31 1 }
32 /******************************************************************/
33 /* 串口中断程序 */
34 /******************************************************************/
35 void UART_SER (void) interrupt 4 //串行中断服务程序
36 {
37 1 unsigned char Temp; //定义临时变量
38 1
39 1 if(RI) //判断是接收中断产生
40 1 {
41 2 RI=0; //标志位清零
42 2 Temp=SBUF; //读入缓冲区的值
43 2 P1=Temp; //把值输出到P1口,用于观察
44 2 SBUF=Temp; //把接收到的值再发回电脑端
45 2 }
46 1 if(TI) //如果是发送标志位,清零
47 1 TI=0;
48 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 45 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.50 RS232 06/09/2010 21:06:05 PAGE 2
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 + -