📄 commu485.lst
字号:
C51 COMPILER V7.06 COMMU485 11/24/2008 09:37:07 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE COMMU485
OBJECT MODULE PLACED IN commu485.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bottom\commu485.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS MODDP2 INCDIR(C:\DO
-CUMENTS AND SETTINGS\ADMINISTRATOR.LENOVO-80B42371\桌面\VANGO\程序\var\) DEBUG OBJECTEXTEND PRINT(.\commu485.lst) OBJECT
-(commu485.obj)
stmt level source
1 /*************************************************************************************
2
3 文件类型:485通讯模块
4 文件作用:
5 修改权限:
6 文件相关:
7
8 创 建 人:chenbo
9 创建日期:2007.06.21
10 当前版本:Ver0.1
11
12 版本信息:Ver0.1 GeminiKQ
13
14 **************************************************************************************/
15 #include "Tiger.h"
*** WARNING C318 IN LINE 15 OF bottom\commu485.c: can't open file 'Tiger.h'
16
17
18
19 unsigned int code botelv_table[]={300,1200,2400,4800,9600};
20 //=================================================
21 //函数功能:初始化485通讯模块
22 //
23 //=================================================
24 void init_485comm(void)
25 { uint8 i;
*** ERROR C202 IN LINE 25 OF BOTTOM\COMMU485.C: 'uint8': undefined identifier
*** ERROR C141 IN LINE 25 OF BOTTOM\COMMU485.C: syntax error near 'i'
26 1 // uint16 temp_data;
27 1 // if(ram[RAM_botelv]>4) //数据出错,默认为1200
28 1 // ram[RAM_botelv]=0;
29 1 // temp_data=botelv_table[ram[RAM_botelv]];
30 1 CfgEU(5,1200,11,0); //设置通讯波特率; 11数据,偶校验
31 1 CfgPort(7,2); //P1_3座位RXD4
32 1 P1IE|=0x08; //输入使能
33 1 CfgPort(8,2); //P1_4座位TXD4
34 1 P1OE&=0xef; //输出使能
35 1 for(i=0;i<25;i++) //清缓冲 25B
36 1 buff_485data[i]=0;
37 1 len_485commdata=0;
38 1 point_sendaddr=0;
39 1 timedelay_comm=0;
40 1 sta_485comm=standby_comm;
41 1 jiaoyan_type=type_enven;
42 1 SetInterrupt(18); //打开接收中断
43 1 }
44
45 //=============================================================
46 //函数功能:485接收中断处理函数。
47 //
48 //==============================================================
49 void rec_485comm(void)
50 {uint8 i;
C51 COMPILER V7.06 COMMU485 11/24/2008 09:37:07 PAGE 2
51 1 timedelay_comm=0; //清接收等待延时
52 1 switch (sta_485comm)
53 1 {case standby_comm: //等待状态
54 2 if((buff_485rec&0xff)==0x68) //全国规约开始
55 2 { sta_485comm=recdata_comm; //进入接收状态
56 3 len_485commdata=1;
57 3 buff_485data[0]=(unsigned char)buff_485rec;
58 3 jiaoyan_type=type_enven; //偶校验
59 3 type_protocl485=type_quanguo; //全国规约
60 3 }
61 2 break;
62 2 case recdata_comm: //接收状态
63 2 i=buff_485rec>>8; //取校验位
64 2 // if(i==0) //接收数据正确
65 2 { len_485commdata++;
66 3 buff_485data[len_485commdata-1]=(unsigned char)buff_485rec;
67 3 }
68 2 /*
69 2 else //接收数据出错
70 2 { sta_485comm=standby_comm; //进入等待状态
71 2 len_485commdata=0; //清接收缓冲
72 2 }
73 2 */
74 2 break;
75 2 default: //
76 2 break;
77 2 }
78 1
79 1 }
80
81 //==========================================================
82 //函数功能:发送第一个数据,开发送中断
83 //
84 //==========================================================
85 void start_send485(void)
86 { //uint8 i;
87 1 timedelay_comm=0;
88 1 ClrInterrupt(18); //禁止接收
89 1 SetInterrupt(17); //开发送中断
90 1 sta_485comm=senddata_comm; //485处于发送状态
91 1 SendUData(buff_485data[0],5); //发送第一个数据
92 1 /*
93 1 i=check_bitnum(buff_485data[0]); //发送奇偶校验位
94 1 if(jiaoyan_type==type_enven) //如果是偶校验
95 1 { if(i==0)
96 1 SCON4&=0xf7;
97 1 else
98 1 SCON4|=0x08;
99 1 }
100 1 SBUF4=buff_485data[0]; //发送第一数据
101 1 */
102 1 len_485commdata=len_485commdata-1;
103 1 point_sendaddr=0;
104 1
105 1 }
106
107 //==========================================================
108 //函数功能:485发送中断相应函数
109 //
110 //==========================================================
111
112 void intrupt_send485(void)
C51 COMPILER V7.06 COMMU485 11/24/2008 09:37:07 PAGE 3
113 {//uint8 i;
114 1 timedelay_comm=0;
115 1 if(sta_485comm==senddata_comm)
116 1 { if(len_485commdata>0) //如果还未发送完毕
117 2 { len_485commdata=len_485commdata-1;
118 3 point_sendaddr++;
119 3 SendUData(buff_485data[point_sendaddr],5);
120 3 /*
121 3 i=check_bitnum(buff_485data[point_sendaddr]); //发送奇偶校验位
122 3 if(jiaoyan_type==type_enven) //如果是偶校验
123 3 { if(i==0)
124 3 SCON4&=0xf7;
125 3 else
126 3 SCON4|=0x08;
127 3 }
128 3 SBUF1=buff_485data[point_sendaddr]; //发送数据
129 3 */
130 3 }
131 2 else //如果发送完毕
132 2 { SetInterrupt(18); //允许接收
133 3 ClrInterrupt(17); //禁止发送
134 3 sta_485comm=standby_comm; //485重新进入等待状态
135 3 }
136 2
137 2 }
138 1 }
-
-
-
-
-
-
C51 COMPILATION COMPLETE. 1 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -