📄 receive_data.lst
字号:
C51 COMPILER V8.08 RECEIVE_DATA 12/26/2007 18:57:02 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE RECEIVE_DATA
OBJECT MODULE PLACED IN receive_data.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE receive_data.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****************************************/
2 /* 湖南师范大学 工学院
3 /* All rights reserved.
4 /* 程序名:receive_data.c
5 /* 时 间:2007-12-26
6 /* 作 者:wangguangxi11@163.com
7 /* 程序功能:多机通信,接收功能(先接收地址)
8 /*****************************************/
9 #include "receive_data.h"
10 /*************** 延时t毫秒 ***************/
11 void delay(uint t)
12 {
13 1 uint i;
14 1 while(t--)
15 1 {
16 2 /* 对于11.0592M时钟,约延时1ms */
17 2 for (i=0;i<125;i++)
18 2 {}
19 2 }
20 1 }
21
22 /************* 接收数据函数 ****************/
23 uchar recvdata()
24 {
25 1 while(!RI);
26 1 if (RB8==1)
27 1 return 0xee; // 若接收的为地址帧,则返回0xee
28 1 buf = SBUF;
29 1 RI = 0;
30 1 return 0; // 返回0
31 1 }
32
33 /*************串口初始化函数 ****************/
34 void init()
35 {
36 1 TMOD = 0x20; // 定时器T1使用工作方式2
37 1 TH1 = 250;
38 1 TL1 = 250;
39 1 TR1 = 1; // 开始计时
40 1 PCON = 0x80; // SMOD = 1
41 1 SCON = 0xd0; // 工作方式,9位数据位,波特率9600kbit/s,允许接收
42 1 }
43
44 /**************** 主程序***************/
45 void main()
46 {
47 1 uchar i = 0;
48 1 uchar tmp = 0xff;
49 1 P1= 0xff;
50 1 addr = P1&0x0f; // 获取本机地址
51 1 P23 = 1; // 发光管不亮
52 1
53 1 init(); // 串口初始化
54 1 EA = 1; // 关闭所有中断
55 1 while(1) // 进入设备应答
C51 COMPILER V8.08 RECEIVE_DATA 12/26/2007 18:57:02 PAGE 2
56 1 {
57 2 SM2 = 1; // 只接收地址帧
58 2
59 2 while (tmp!=addr) // 如果接收到的地址帧不是本机地址,则继续等待
60 2 {
61 3 RI = 0;
62 3 while(!RI)
63 3 tmp = SBUF;
64 3 RI = 0;
65 3 }
66 2 SM2 = 0; //允许接收数据
67 2 tmp= recvdata(); //数据接收
68 2
69 2
70 2 if (tmp==0x00)
71 2 {
72 3 P0=buf;
73 3 P23 = 0; //绿灯亮,持续500ms,表示接收数据成功
74 3 delay(30);
75 3 P23 = 1;
76 3
77 3 }
78 2 // 如果接收数据时发现地址帧,则重新开始整个接收过程
79 2 }
80 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 131 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 1
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 + -