📄 zjq_bc.lst
字号:
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE ZJQ_BC
OBJECT MODULE PLACED IN C:\ZJQ_BC\ZJQ_BC.OBJ
COMPILER INVOKED BY: C:\COMP51V6\C51.EXE C:\ZJQ_BC\ZJQ_BC.C DB SB OE
stmt level source
1 /********************************************************************************************/
2 /*
3 /* Copyright (c) 2004,北京福星晓程电子科技股份有限公司
4 /*
5 /* All Rights Reserved
6 /*
7 /*
8 /*
9 /* 文件名称:ZJQ_BC.c
10 /*
11 /* 文件标识:存档
12 /*
13 /* 摘 要:1、单、复费率通用三相中继器B、C两相程序
14 /* 2、该文件包括主函数;载波中断接收函数;看门狗处理函数;定时器中断处理函数
15 /* 3、CPU :PL3105
16 /* 4、中继器串口集联收发程序(中继器载波接收、串口发送部分)
17 /* 5、适用费率规约: ①、P1.6接VCC为:复费率
18 /* ②、P1.6接GND为:单费率
19 /*
20 /* 功 能:1. 接收载波数据并通过串口集联上传返回集中器
21 /* 2. 接收下位集联上传串口数据, 并通过串口集联上传
22 /*
23 /*
24 /* 指示灯 : 1. 接收到载波数据并转发时, 指示灯点亮
25 /* 2. 本级接收到载波返回的合法抄表应答命令时, 指示灯点亮
26 /*
27 /* 串口速率:2400BPS 无校验
28 /*
29 /* 当前版本:1.0(发布)
30 /* 作 者:魏茂
31 /* 完成日期:2004年11月17日
32 /*
33 /*
34 /********************************************************************************************/
35
36 #include "PL3105.h"
37
38 #define uchar unsigned char
39 #define uint unsigned int
40
41 //I/O 口设置
42 sbit Carrier_Rxd= P3^7; // 载波数据输入、输出口
43 sbit led = P0^5; // 指示灯
44 sbit up_ok_txd = P3^5; // 向上OK发
45 sbit txd_up = P3^4; // 下级数据接收口
46 sbit up_ok_rxd = P3^2; // 向上OK收
47 sbit up_txd_10 = P3^1; // 向上发
48 sbit rxd_10 = P3^0; // 串口收
49
50 sbit D_F_Sign = P1^6; // 单、复费率区分标志,
51 // 接VCC为:复费率 ;
52 // 接GND为:单费率
53
54 uchar data YS_SET_DF;
55 // 全局变量设置
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 2
56 uchar bdata pl_data; // 发送字节缓冲
57 uchar data pl_len; // 发送字节计数
58 uchar data r_len1; // 发送字节计数
59 uchar data r_len;
60 uchar data r_data;
61 uchar data r_8;
62 uchar data pl_8; // 发送位计数
63 uchar data x;
64 uchar data n;
65 uchar data ti_len;
66 uchar data ystxd;
67 uchar data ysrxd;
68 uint data x_09af;
69 uchar xdata pl_buf[60];
70 uchar xdata COM_Buf[60];
71
72 // 位变量
73 bit bdata r_x,r_d;
74 bit bdata plmrxd;
75 uchar data wdi;
76
77
78
79 void D_LED_DISPLAY();
80 void F_LED_DISPLAY();
81
82 /**************************************************************************************
83 *
84 * FUNCTION: timeint0
85 *
86 * DESCRIPTION: 定时器0中断程序,50 ms 发生一次中断,
87 * 对延时变量进行减1处理
88 *
89 * PARAMETERS: none
90 *
91 * RETURNED: none
92 *
93 *************************************************************************************/
94 void timeint0(void) interrupt 1 // 定时中断程序 50 ms 发生一次中断
95 {
96 1
97 1 if(ystxd>0)
98 1 ystxd--;
99 1 else
100 1 ystxd=0;
101 1
102 1 if(YS_SET_DF>0)
103 1 YS_SET_DF--;
104 1 else
105 1 {
106 2 YS_SET_DF=20;
107 2 D_F_Sign=1;
108 2 }
109 1
110 1 //TH0=0x63; // 置定时器计数 50ms 中断一次( 4.8MHz )
111 1 //TL0=0xcc;
112 1
113 1 TH0=0xB1; // 置定时器计数 50ms 中断一次( 4.8MHz )
114 1 TL0=0xE0;
115 1
116 1 if(wdi==0x9a)
117 1 {
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 3
118 2 WDT_RST=0xa1; // 清看门狗
119 2 wdi=0;
120 2 }
121 1 }
122
123 /**************************************************************************************
124 *
125 * FUNCTION: pl_pro
126 *
127 * DESCRIPTION: 载波中断接收程序
128 *
129 * PARAMETERS:
130 * in :PLM_RS (PLM_RS=0 载波接收; PLM_RS=1 载波发送)
131 * out:plmrxd=1 载波接收成功 ;pl_buf[] 载波接收成功的数据
132 *
133 *
134 *
135 * RETURNED: none
136 *
137 *************************************************************************************/
138 void pl_pro(void) interrupt 7
139 {
140 1 uchar data i;
141 1 uchar data j;
142 1 uchar data k;
143 1 uchar data h;
144 1
145 1 if(D_F_Sign==0)
146 1 goto D_FL_DESIGN;
147 1 else
148 1 goto F_FL_DESIGN;
149 1
150 1 return;
151 1
152 1 F_FL_DESIGN:
153 1
154 1 if(PLM_RS)
155 1 {
156 2 return; // 载波发送
157 2 }
158 1 else
159 1 { // 载波接收
160 2 Carrier_Rxd=1;
161 2
162 2 if (r_x==0)
163 2 {
164 3 if (Carrier_Rxd==1)
165 3 {
166 4 x_09af=x_09af|1;
167 4 }
168 3
169 3 if (x_09af==0x09af)
170 3 {
171 4 r_x=1;
172 4 r_8=0;
173 4 r_d=0;
174 4 x_09af=0;
175 4 r_len=0;
176 4 r_data=0;
177 4 r_len1=20;
178 4 }
179 3 else
C51 COMPILER V6.02 ZJQ_BC 12/09/2004 09:10:51 PAGE 4
180 3 {
181 4 x_09af=x_09af<<1;
182 4 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -