📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 07/04/2012 21:28:33 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //main.c
2 #include <reg52.h> //包含头文件
3 #include "fun.h"
4
5 void USART_interrupt() interrupt 4
6 {
7 1 if (RI) //接收中断
8 1 {
9 2 RI = 0;
10 2 r1tag=1; //正在接收标志
11 2 reciev1[rec_num1] = SBUF;//收到缓冲区
12 2 rec_num1++;
13 2 r1tag=0;
14 2 }
15 1 if (TI)
16 1 {
17 2 TI = 0;
18 2 }
19 1 }
20
21 void USART2_interrupt() interrupt 8
22 {
23 1 //if (RI)
24 1 if (S2CON & 0x01) //串口2接收中断
25 1 {
26 2 //RI = 0;
27 2 S2CON &= 0xfe; //清串口2接收中断标志S2RI
28 2 r2tag=1; //正在接收标志
29 2 reciev2[rec_num2] = S2BUF;//收到缓冲区
30 2 rec_num2++;
31 2 r2tag=0;
32 2 }
33 1 //if (TI)
34 1 if (S2CON & 0x02) //串口2发送中断
35 1 {
36 2 //TI = 0;
37 2 S2CON &= 0xfd; //清串口2发送中断标志S2TI
38 2 }
39 1 }
40
41 main()
42 {
43 1 ms_delay(100);
44 1 init_usart();
45 1 init_usart2();
46 1 init_timer();
47 1
48 1 rec_num1 = 0;
49 1 rec_num2 = 0;
50 1 r1tag = 0;
51 1 r2tag = 0;
52 1
53 1 dir1 = 0; //485接收数据
54 1 dir2 = 0; //485接收数据
55 1
C51 COMPILER V8.08 MAIN 07/04/2012 21:28:33 PAGE 2
56 1 EA = 1;//开总中断
57 1
58 1 while(1)
59 1 {
60 2 if (rec_num1 > 0) //串口1缓冲区有数据待发?
61 2 {
62 3 if (r2tag == 0) //串口2空闲
63 3 {
64 4 rec_num1 --;
65 4 send2(reciev1[rec_num1]); //转发
66 4 }
67 3 }
68 2
69 2 if (rec_num2 > 0) //串口2缓冲区有数据待发?
70 2 {
71 3 if (r1tag == 0) //串口1空闲
72 3 {
73 4 rec_num2 --;
74 4 send1(reciev2[rec_num2]); //转发
75 4 }
76 3 }
77 2 }
78 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 253 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -