?? 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 /* 湖南師范大學(xué) 工學(xué)院
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 /************* 接收數(shù)據(jù)函數(shù) ****************/
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 /*************串口初始化函數(shù) ****************/
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位數(shù)據(jù)位,波特率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; // 發(fā)光管不亮
52 1
53 1 init(); // 串口初始化
54 1 EA = 1; // 關(guān)閉所有中斷
55 1 while(1) // 進入設(shè)備應(yīng)答
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) // 如果接收到的地址幀不是本機地址,則繼續(xù)等待
60 2 {
61 3 RI = 0;
62 3 while(!RI)
63 3 tmp = SBUF;
64 3 RI = 0;
65 3 }
66 2 SM2 = 0; //允許接收數(shù)據(jù)
67 2 tmp= recvdata(); //數(shù)據(jù)接收
68 2
69 2
70 2 if (tmp==0x00)
71 2 {
72 3 P0=buf;
73 3 P23 = 0; //綠燈亮,持續(xù)500ms,表示接收數(shù)據(jù)成功
74 3 delay(30);
75 3 P23 = 1;
76 3
77 3 }
78 2 // 如果接收數(shù)據(jù)時發(fā)現(xiàn)地址幀,則重新開始整個接收過程
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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -