📄 remote.lst
字号:
C51 COMPILER V6.02 REMOTE 09/28/2006 21:46:49 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE REMOTE
OBJECT MODULE PLACED IN F:\LAIWORK\GB_ASC\REMOTE.OBJ
COMPILER INVOKED BY: c:\COMP51V6\C51.EXE F:\LAIWORK\GB_ASC\REMOTE.C DB SB OE LARGE
stmt level source
1 #include <absacc.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 unsigned char remote_number;
5 unsigned char remote_phase;
6 unsigned char remote_other;
7 unsigned char re_phase[8],re_other[4];
8 unsigned char re_message[12];
9 unsigned char reph_number=0;
10 unsigned char re_first;
11 unsigned char last_door;
12 extern unsigned char c080;
13 bit re_control;
14 extern uchar xdata remote_state,force_flag,hand_state;
15 extern bit period_update; /*周期更迭标志*/
16 //bit force_flag;
17 extern unsigned int xdata use_lamp;
18 extern unsigned char xdata lamp_state[16]; //灯色状态
19 extern unsigned char xdata step_num;
20 extern uint xdata inuse_lamp_temp;
21 extern uint xdata now_phase_temp;
22 extern uint xdata now_phase_tempn;
23 extern uint xdata now_lamp_temp;
24 extern uint xdata now_lamp;
25 extern uint xdata inuse_phase[32]; //阶段用到的相位
26 extern uint xdata inuse_phasen[32]; //下阶段用到的相位
27 extern uint xdata baseaddr_now_phasesch;
28 extern uchar xdata max_yellow,max_red_clear,max_green_flash;
29 extern unsigned char error_type;
30 extern uchar now_uncount;
31 extern unsigned char xdata door,door_front,door_back;
32 extern void read_time();
33 extern void search_sch();
34 extern void cacu_dif();
35 extern void save_to_error();
36 extern uchar xdata step_counter; //阶段号
37 unsigned char data old_key;
38 unsigned char xdata hand_step_count,hand_step,user_count;
39 bit hand_step_flag;
40 unsigned char xdata hand_lase_state,hand_now_state;
41 /*秒中断,灯色分配之前执行*/
42
43 /*秒中断,灯色分配之后执行*/
44 re_ye_allred() using 1
45 {
46 1 unsigned char data kkk=0;
47 1 unsigned int toto;
48 1
49 1 if((reph_number==10)||(XBYTE[0X6D28]==0X02)){ /*黄闪*/
50 2 remote_state=5;
51 2 for(kkk=0;kkk<16;kkk++){
52 3 toto = 0x0001;
53 3 toto = toto<<kkk;
54 3 if((use_lamp&toto)==toto)
55 3 lamp_state[kkk]=4; /*使用的灯组置成黄闪先*/
C51 COMPILER V6.02 REMOTE 09/28/2006 21:46:49 PAGE 2
56 3 else
57 3 lamp_state[kkk]=7;
58 3 }
59 2 }
60 1 if((reph_number==11)||(XBYTE[0X6D28]==0X03)){ /*全红*/
61 2 remote_state=5;
62 2 for(kkk=0;kkk<16;kkk++){
63 3 toto = 0x0001;
64 3 toto = toto<<kkk;
65 3 if((use_lamp&toto)==toto)
66 3 lamp_state[kkk]=5; /*使用的灯组置成红色先*/
67 3 else
68 3 lamp_state[kkk]=7;
69 3 }
70 2 }
71 1
72 1
73 1 }
74
75
76 far_detect() using 1
77 {
78 1 unsigned char data loop_var;
79 1 unsigned char data i;
80 1
81 1 XBYTE[0XC083]=0X8B;
82 1 remote_phase=XBYTE[0XC082];
83 1 remote_other=XBYTE[0XC081];
84 1 hand_lase_state=hand_now_state;
85 1 if(remote_other&0x04)door_front++;
86 1 else door_front=0;
87 1 if(door_front>200)door_front=200;
88 1 if(door_front==50)door=0xc0;
89 1
90 1 if(remote_other&0x08)door_back++;
91 1 else door_back=0;
92 1 if(door_back>200)door_back=200;
93 1 if(door_back==50)door=0x03;
94 1 if(door!=last_door){
95 2 error_type=0x04;
96 2 save_to_error();
97 2 }
98 1 last_door=door;
99 1
100 1 if(remote_other&0x01) //手动标志
101 1 {
102 2 hand_step_flag=1; //手动标志
103 2 //检测到手动标志的一瞬间,获得当前手动阶段号
104 2 if(user_count==0)hand_step=step_counter+1;
105 2 user_count++;
106 2 if(user_count>20)user_count=20;
107 2 if(remote_other&0x02)hand_step_count++; //点动计数开始
108 2 else{
109 3 hand_step_count=0;
110 3 hand_now_state=0;
111 3 }
112 2
113 2 if(hand_step_count>10)
114 2 {
115 3 hand_step_count=10;
116 3 hand_now_state=1;
117 3 }
C51 COMPILER V6.02 REMOTE 09/28/2006 21:46:49 PAGE 3
118 2 }
119 1 else //解除手动控制
120 1 {
121 2 hand_step_flag=0; //手动标志
122 2
123 2 if(hand_state==2)
124 2 hand_state=3;
125 2 /* if(hand_state==5)
126 2 {
127 2 period_update = 1;
128 2 step_counter=1;
129 2 hand_state=0;
130 2 }
131 2 */
132 2 }
133 1
134 1 if(hand_lase_state==1&&hand_now_state==0)
135 1 {
136 2 hand_step++;
137 2 if(hand_step>step_num)
138 2 hand_step=1;
139 2 if(hand_state!=2&&hand_state!=4)
140 2 hand_state=1;
141 2 }
142 1 //else if(remote_other&0x01)
143 1 //hand_step=step_counter;
144 1
145 1
146 1 //读取遥控器控制结果,确认遥控的位置1-12
147 1 XBYTE[0XC080]=c080;
148 1 for(i=0;i<8;i++){
149 2 loop_var=0x01;
150 2 loop_var=(loop_var<<i);
151 2 /* flag=loop_var%256; */
152 2 if((remote_phase&loop_var)==0)re_phase[i]++;
153 2 else re_phase[i]=0;
154 2 if(re_phase[i]>20)re_phase[i]=20;
155 2 }
156 1 for(i=0;i<4;i++){
157 2 loop_var=0x10;
158 2 loop_var=(loop_var<<i);
159 2 /* flag=loop_var%256; */
160 2 if((remote_other&loop_var)==0)re_other[i]++;
161 2 else re_other[i]=0;
162 2 if(re_other[i]>20)re_other[i]=20;
163 2 }
164 1
165 1 for(i=0;i<12;i++){
166 2 if(i<8)re_message[i]=re_phase[i];
167 2 else re_message[i]=re_other[i-8];
168 2 }
169 1 }
C51 COMPILER V6.02 REMOTE 09/28/2006 21:46:49 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
save_to_error. . . . . . . . . . . . . EXTERN CODE PROC ----- -----
remote_phase . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0000H 1
remote_state . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
remote_other . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0001H 1
far_detect . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
loop_var . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
reph_number. . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0002H 1
hand_state . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
re_message . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 0003H 12
step_counter . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
hand_lase_state. . . . . . . . . . . . PUBLIC XDATA U_CHAR 000FH 1
door_back. . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
lamp_state . . . . . . . . . . . . . . EXTERN XDATA ARRAY ----- 16
door . . . . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
hand_step_flag . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
hand_step. . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0010H 1
re_control . . . . . . . . . . . . . . PUBLIC DATA BIT 0001H 1
door_front . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
hand_step_count. . . . . . . . . . . . PUBLIC XDATA U_CHAR 0011H 1
re_phase . . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 0012H 8
last_door. . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 001AH 1
user_count . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 001BH 1
error_type . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
hand_now_state . . . . . . . . . . . . PUBLIC XDATA U_CHAR 001CH 1
use_lamp . . . . . . . . . . . . . . . EXTERN XDATA U_INT ----- 2
re_other . . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 001DH 4
re_first . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0021H 1
old_key. . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
re_ye_allred . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
kkk. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
toto . . . . . . . . . . . . . . . . * REG * DATA U_INT 000CH 2
step_num . . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
c080 . . . . . . . . . . . . . . . . . EXTERN XDATA U_CHAR ----- 1
remote_number. . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0022H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 761 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 35 ----
PDATA SIZE = ---- ----
DATA SIZE = 1 3
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -