📄 protocol.lst
字号:
C51 COMPILER V7.08 PROTOCOL 02/27/2006 16:50:28 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE PROTOCOL
OBJECT MODULE PLACED IN .\output\protocol.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE protocol.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\output\protocol.obj)
line level source
1 #define _protocol_
2 #include "general.h"
3 #include "com.h"
4 /***********************************************************************
5 应答规则: 1.所有通讯由MCU发起;2.下位机必须应答
6 3.上位机根据情况发报告帧(正确y,重发n,放弃q)
7 共下面几种帧类型:
8 1.命令帧: "开始采集(s)","取消采集(e)","查询参数(p)"(MCU)
9 "正确回应(y)","请求重发(n)""放弃通信(q)"(DSP)
10 ---------------------------------
11 帧头标志|帧类型|效验和|帧尾标志
12 '@' | 'x' | x | '\n'
13 1 | 1 | 2 | 1
14 -----------------------------------
15 2.数据帧: "光标位置(d)"、计算结果(r)"
16 "仪器常数(a)"、"纬度(l)"、"比例系数(c)"、"周期个数(m)"
17 "错误报告(f)"
18 -----------------------------------------
19 帧头标志|帧类型|数据内容|效验和|帧尾标志
20 '@' | 'x' | x | x | '\n'
21 1 | 1 | 1 | 2 | 1
22 ------------------------------------------
23 *************************************************************************/
24
25
26
27 /*****************************************************************
28 pack按协议打包数据(发送,不中断)
29 *****************************************************************/
30 //Master:命令帧,5字节(FR_Start)
31 void frame_cmd(uchar cmd){
32 1 //uchar bcc=FR_STX;
33 1 //bcc=bcc^cmd;
34 1 //
35 1 put_char(FR_STX);
36 1 put_char(cmd);
37 1 //put_char((bcc>>4)+'0'); //高四位在前
38 1 //put_char((bcc&0x0f)+'0'); //低四位
39 1 put_char('0');
40 1 put_char('0');
41 1 put_char('0');
42 1 put_char('0');
43 1 put_char('0');
44 1 put_char('0');
45 1 put_char('0'); //无数据发7个0
46 1 put_char(FR_ETX);
47 1 }
48
49 //Master(4)&Slave(6):数据帧(1+1+1+6+2+1)
50 //1.CCD数据: cmd=d,
51 //2.计算结果: cmd=r
52 //3.仪器常数: cmd=a
53 //4.纬度: cmd=l
54 //5.比例系数C: cmd=c
55 //6.周期个数: cmd=m
C51 COMPILER V7.08 PROTOCOL 02/27/2006 16:50:28 PAGE 2
56 void frame_data(uchar cmd,
57 uchar *databuf,
58 uchar len){ //数据域不足7位补零
59 1 uchar i;
60 1 i=7-len;
61 1 //uchar bcc=FR_STX;
62 1 //bcc=bcc^cmd;
63 1 //for(i=0;i<len;i++) bcc=bcc^*(databuf+i);
64 1 //bcc=bcc^len;
65 1 //
66 1 put_char(FR_STX);
67 1 put_char(cmd);
68 1 put_string(*databuf,len);
69 1 if(i>0){
70 2 do{ put_char('0');i--;} //补足0
71 2 while(i>0);
72 2 }
73 1 //put_char(len+'0');
74 1 //put_char((bcc>>4)+'0'); //高四位
75 1 //put_char((bcc&0x0f)+'0'); //低四位
76 1 put_char(FR_ETX);
77 1
78 1 }
79
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 118 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
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 + -