📄 rs_485.lst
字号:
C51 COMPILER V7.50 RS_485 11/29/2006 01:20:31 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE RS_485
OBJECT MODULE PLACED IN .\out\RS_485.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RS_485.C LARGE OPTIMIZE(6,SPEED) REGFILE(.\out\mbtest.ORC) BROWSE INCDIR(C:
-\Keil\C51\LIB\;D:\TEST_C020\MC_55_C\) DEBUG OBJECTEXTEND OBJECT(.\out\RS_485.obj)
line level source
1
2 #include "all.h"
3
4
5
6
7
8
9
10
11 /**********************************************************************
12 **函数原型: void Attand_485(void)
13 **入口参数: Xin_485_b=1
14 **出口参数: 无
15 **返 回 值: 无
16 **说 明: 处理上位机485命令之子程序。
17 ************************************************************************/
18
19
20
21 void Attand_485(void) //注:中断里面使用寄存器组0,??是否与主程序有冲突
22 { unsigned int i; // 不用寄存器组0的话,RW24XX不能正常读写时钟
23 1 uchar j;
24 1 uchar fun;
25 1 //uchar Tem_lei;
26 1 uchar sum;
27 1 // uchar *Poit;
28 1
29 1 fun=0;
30 1 if(Xin_485_b==1)
31 1 {
32 2 //Wait(250);
33 2 Xin_485_b=0;
34 2 i=GPRS_RX_Buff[1];
35 2 i=i+2;
36 2 sum=0;
37 2 //goto dddd;
38 2 for(j=0;j<i;j++)
39 2 {
40 3 sum=sum+GPRS_RX_Buff[j]; // 求代数和
41 3 }
42 2 if(sum==GPRS_RX_Buff[i]&&GPRS_RX_Buff[i+1]==0xab) //校验和等且最后的字节为0XAB
43 2 {
44 3
45 3 switch (GPRS_RX_Buff[0])
46 3 {
47 4 case 0: //接收到error *********************************************************
-**************
48 4
49 4 break;
50 4 case 1: //接收到OK ***********************************************************
-************
51 4 if(GPRS_RX_Buff[2]==3) {
52 5 // 发成功音
C51 COMPILER V7.50 RS_485 11/29/2006 01:20:31 PAGE 2
53 5
54 5
55 5 }
56 4 else if(GPRS_RX_Buff[2]==4) {
57 5 // 发成功音
58 5
59 5
60 5 }
61 4 else ;
62 4 break;
63 4 case 2: //接收到对码**********************************************************
-****
64 4
65 4
66 4 break;
67 4 case 3: //接收到 说 明: 普通控制子程序*************************************************
-***********
68 4
69 4 break;
70 4 case 4: //接收重要控制子程序************************************************************
71 4
72 4 break;
73 4
74 4 case 16: //***********************************
75 4 Ying_da_ok(16);
76 4 break;
77 4 case 17: //********************************
78 4 Ying_da_ok(17);
79 4 break;
80 4
81 4 case 18: //测试用*****************************
82 4
83 4 break;
84 4 default: ;
85 4
86 4 break;
87 4 } // switch (GPRS_RX_Buff[0]) de
88 3 } //if de
89 2 }
90 1 }
91
92 //=====================================================================================
93 //------以上是对上位机的485命令进行处理------------------------------
94 //=====================================================================================
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 /**********************************************************************
110 **函数原型: void ShangZhuang_message(uchar fun, uchar *Poit, uchar Lengh)
111 **入口参数: 功能码,内容,数据长度
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -