📄 ppdatat.lst
字号:
C51 COMPILER V7.02b PPDATAT 12/10/2005 20:40:29 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE PPDATAT
OBJECT MODULE PLACED IN PPDataT.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE PPDataT.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*****************************************/
2 /* Copyright (c) 2005, 通信工程学院 */
3 /* All rights reserved. */
4 /* 作 者:戴 佳 */
5 /*****************************************/
6
7 #include "PPDataT.h"
8
9 /* 延时t毫秒 */
10 void delay(uint t)
11 {
12 1 uint i;
13 1 while(t--)
14 1 {
15 2 /* 对于11.0592M时钟,约延时1ms */
16 2 for (i=0;i<125;i++)
17 2 {}
18 2 }
19 1 }
20
21 /* 发送数据函数 */
22 void senddata(uchar *buf)
23 {
24 1 uchar i;
25 1 uchar len; // 保存数据长度
26 1 uchar ecc; // 保存校验字节
27 1
28 1 len = strlen(buf); // 计算要发送数据的长度
29 1 ecc = len; // 开始进行校验字节计算
30 1
31 1 /* 发送数据长度 */
32 1 TI = 0;
33 1 SBUF = len; // 发送长度
34 1 while(!TI);
35 1 TI = 0;
36 1
37 1 /* 发送数据 */
38 1 for (i=0;i<len;i++)
39 1 {
40 2 ecc = ecc^(*buf); // 异或运算
41 2 SBUF = *buf;
42 2 buf++;
43 2 while(!TI);
44 2 TI = 0;
45 2 }
46 1
47 1 /* 发送校验字节 */
48 1 SBUF = ecc;
49 1 while(!TI);
50 1 TI = 0;
51 1 }
52
53 /* 串口初始化函数 */
54 void init_serial()
55 {
C51 COMPILER V7.02b PPDATAT 12/10/2005 20:40:29 PAGE 2
56 1 TMOD = 0x20; // 定时器T1使用工作方式2
57 1 TH1 = 250;
58 1 TL1 = 250;
59 1 TR1 = 1; // 开始计时
60 1 PCON = 0x80; // SMOD = 1
61 1 SCON = 0x50; // 工作方式1,波特率9600kbit/s,允许接收
62 1 }
63
64 /* 主程序 */
65 void main()
66 {
67 1 uchar i = 0;
68 1 uchar tmp;
69 1 /* 为缓冲区赋初值 */
70 1 P0 = 0xff;
71 1 while(P1!=0) // 每隔100ms从P0口读取,读取到0表示数据采集结束
72 1 {
73 2 *(buf+i) = P0;
74 2 delay(100); // 延时100ms
75 2 P0 = 0xff;
76 2 i++;
77 2 }
78 1 *(buf+i) = 0; // 缓冲区最后一个字节为0表示数据结束
79 1
80 1 init_serial(); // 串口初始化
81 1
82 1 EA = 0; // 关闭所有中断
83 1
84 1 /* 发送呼叫信号CALL并接收应答信息,如果没有接收到从机准备好的信号,则重新发送呼叫帧 */
85 1 tmp = BUSY;
86 1 while(tmp!=OK)
87 1 {
88 2 /* 发送呼叫信号CALL */
89 2 TI = 0;
90 2 SBUF = CALL;
91 2 while(!TI);
92 2 TI = 0;
93 2
94 2 /* 接收从机应答 */
95 2 RI = 0;
96 2 while(!RI);
97 2 tmp = SBUF;
98 2 RI = 0;
99 2 }
100 1
101 1 /* 发送数据并接收校验信息,如果接收到SUCC,表示从机接收成功,否则将重新发送该组数据 */
102 1 tmp = ERR;
103 1 while(tmp!=SUCC)
104 1 {
105 2 senddata(buf); // 发送数据
106 2 RI = 0;
107 2 while(!RI);
108 2 tmp = SBUF;
109 2 RI = 0;
110 2 }
111 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 214 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V7.02b PPDATAT 12/10/2005 20:40:29 PAGE 3
PDATA SIZE = ---- ----
DATA SIZE = 64 4
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 + -