?? 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 + -