📄 communication.lst
字号:
C51 COMPILER V7.50 COMMUNICATION 08/23/2007 13:11:49 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE COMMUNICATION
OBJECT MODULE PLACED IN Communication.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Communication.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <Communication.h>
2
3 float ZeroData; //零点数据
4 float CheckData[5];
5
6 void Rs232Init()
7 {
8 1 TMOD=0x21; //定时器0工作方式1,定时器1工作方式2(自动重装载)
9 1 TL1=0xFA;
10 1 TH1=0xFA; //设定波特率9600bps,晶振为11059200hz
11 1
12 1 PCON=0X80;
13 1 SCON=0x50;
14 1 TR1=1;
15 1 }
16 //发送上位机控制字
17 void SendMessureWord()
18 {
19 1 // unsigned char temp;
20 1 unsigned char i;
21 1 unsigned CheckWord;
22 1 //量程信息: _4000.0kpa 06 08,量程4000kPa,当前模块能转换的单位个数为6,校验点为8个
23 1 unsigned char MessureWord[13]={0X20,0X31,0X36,0X30,0X30,0X2E,0X30,0X6B,0X50,0X61,0X06,0X08};
24 1 //校验和变量赋初值
25 1 CheckWord = 0;
26 1 while(!RI){;}RI=0;
27 1 if(SBUF==0x55)
28 1 {
29 2 for(i=0;i<12;i++)
30 2 {
31 3 SBUF=MessureWord[i];while(!TI);TI=0;
32 3 CheckWord+=MessureWord[i];
33 3 }
34 2 SBUF=CheckWord;while(!TI);TI=0;
35 2 }
36 1 }
37 //接收上位机校验命令
38 void ReceiveCheckWord()
39 {
40 1 unsigned char temp;
41 1 unsigned char i;
42 1 unsigned CheckWord[5];
43 1 CheckWord[0]=temp;
44 1 for(i=1;i<=4;i++)
45 1 {
46 2 while(!RI);RI=0;
47 2 CheckWord[i] = SBUF;
48 2 }
49 1 if(CheckWord[1]!=0xAA)
50 1 return;
51 1 if((CheckWord[3]>=0x05)&&(CheckWord[2]<=0x10))//上位机要求进行当前校验点校验
52 1 {
53 2 }
54 1 if(CheckWord[4]&0xf0==0x00) //上位机要求压力清零,将当前压力值作为压力零点
55 1 ZeroData = 0;
C51 COMPILER V7.50 COMMUNICATION 08/23/2007 13:11:49 PAGE 2
56 1 if(CheckWord[4]&0x0f<0x06) //上位机要求进行压力转换。
57 1 {
58 2 }
59 1 }
60 //发送上位机测量数据
61 void SendMessureData()
62 {
63 1 unsigned char temp;
64 1 union
65 1 {
66 1 long Data_long ;
67 1 unsigned char Data_char[4];
68 1 }MessureDatatemp;
69 1 while(!RI){;}RI=0;
70 1 temp = SBUF ;
71 1 // MessureDatatemp.Data_long = MessureData;
72 1 if(temp==0x13)
73 1 {
74 2
75 2 }
76 1 }
*** WARNING C280 IN LINE 68 OF COMMUNICATION.C: 'MessureDatatemp': unreferenced local variable
77 void Rs232interrupt() interrupt 4 using 2 //串口接收中断
78 {
79 1 unsigned char ReceiveData;
80 1 if(RI==1)
81 1 {
82 2 EA = 0;
83 2 ES = 0;
84 2 RI=0;
85 2 ReceiveData = SBUF;
86 2 if(ReceiveData==0x11)
87 2 {
88 3 SendMessureWord();
89 3 }
90 2 if(ReceiveData==0x22)
91 2 {
92 3 ReceiveCheckWord();
93 3 }
94 2 if(ReceiveData==0x12)
95 2 {
96 3 }
97 2 ES = 1;
98 2 EA = 1;
99 2 }
100 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 184 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 30
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -