📄 remote.lst
字号:
C51 COMPILER V6.02 REMOTE 08/02/2006 14:44:13 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE REMOTE
OBJECT MODULE PLACED IN D:\GB_ASC\REMOTE.OBJ
COMPILER INVOKED BY: e:\comp51\COMP51V6\C51.EXE D:\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 bit re_control;
12 extern uchar xdata remote_state,force_flag,hand_state;
13 extern bit period_update; /*周期更迭标志*/
14 //bit force_flag;
15 extern unsigned int xdata use_lamp;
16 extern unsigned char xdata lamp_state[16]; //灯色状态
17 extern unsigned char xdata step_num;
18 extern uint xdata inuse_lamp_temp;
19 extern uint xdata now_phase_temp;
20 extern uint xdata now_phase_tempn;
21 extern uint xdata now_lamp_temp;
22 extern uint xdata now_lamp;
23 extern uint xdata inuse_phase[32]; //阶段用到的相位
24 extern uint xdata inuse_phasen[32]; //下阶段用到的相位
25 extern uint xdata baseaddr_now_phasesch;
26 extern uchar xdata max_yellow,max_red_clear,max_green_flash;
27 extern uchar now_uncount;
28 extern void read_time();
29 extern void search_sch();
30 extern void cacu_dif();
31 extern uchar xdata step_counter; //阶段号
32 unsigned char data old_key;
33 unsigned char xdata hand_step_count,hand_step,user_count;
34 bit hand_step_flag;
35 unsigned char xdata hand_lase_state,hand_now_state;
36 /*秒中断,灯色分配之前执行*/
37
38 /*秒中断,灯色分配之后执行*/
39 re_ye_allred() using 1
40 {
41 1 unsigned char data kkk=0;
42 1 unsigned int toto;
43 1
44 1 if((reph_number==10)||(XBYTE[0X6D28]==0X02)){ /*黄闪*/
45 2 remote_state=5;
46 2 for(kkk=0;kkk<16;kkk++){
47 3 toto = 0x0001;
48 3 toto = toto<<kkk;
49 3 if((use_lamp&toto)==toto)
50 3 lamp_state[kkk]=4; /*使用的灯组置成黄闪先*/
51 3 else
52 3 lamp_state[kkk]=7;
53 3 }
54 2 }
55 1 if((reph_number==11)||(XBYTE[0X6D28]==0X03)){ /*全红*/
C51 COMPILER V6.02 REMOTE 08/02/2006 14:44:13 PAGE 2
56 2 remote_state=5;
57 2 for(kkk=0;kkk<16;kkk++){
58 3 toto = 0x0001;
59 3 toto = toto<<kkk;
60 3 if((use_lamp&toto)==toto)
61 3 lamp_state[kkk]=5; /*使用的灯组置成红色先*/
62 3 else
63 3 lamp_state[kkk]=7;
64 3 }
65 2 }
66 1
67 1
68 1 }
69
70
71 far_detect() using 1
72 {
73 1 unsigned char data loop_var;
74 1 unsigned char data i;
75 1
76 1 XBYTE[0XC083]=0X8B;
77 1 remote_phase=XBYTE[0XC082];
78 1 remote_other=XBYTE[0XC081];
79 1 hand_lase_state=hand_now_state;
80 1 if(remote_other&0x01) //手动标志
81 1 {
82 2 hand_step_flag=1; //手动标志
83 2 //检测到手动标志的一瞬间,获得当前手动阶段号
84 2 if(user_count==0)hand_step=step_counter+1;
85 2 user_count++;
86 2 if(user_count>20)user_count=20;
87 2 if(remote_other&0x02)hand_step_count++; //点动计数开始
88 2 else{
89 3 hand_step_count=0;
90 3 hand_now_state=0;
91 3 }
92 2
93 2 if(hand_step_count>10)
94 2 {
95 3 hand_step_count=10;
96 3 hand_now_state=1;
97 3 }
98 2 }
99 1 else //解除手动控制
100 1 {
101 2 hand_step_flag=0; //手动标志
102 2
103 2 if(hand_state==2)
104 2 hand_state=3;
105 2 /* if(hand_state==5)
106 2 {
107 2 period_update = 1;
108 2 step_counter=1;
109 2 hand_state=0;
110 2 }
111 2 */
112 2 }
113 1
114 1 if(hand_lase_state==1&&hand_now_state==0)
115 1 {
116 2 hand_step++;
117 2 if(hand_step>step_num)
C51 COMPILER V6.02 REMOTE 08/02/2006 14:44:13 PAGE 3
118 2 hand_step=1;
119 2 if(hand_state!=2&&hand_state!=4)
120 2 hand_state=1;
121 2 }
122 1 //else if(remote_other&0x01)
123 1 //hand_step=step_counter;
124 1
125 1
126 1 //读取遥控器控制结果,确认遥控的位置1-12
127 1 XBYTE[0XC080]=0X81;
128 1 for(i=0;i<8;i++){
129 2 loop_var=0x01;
130 2 loop_var=(loop_var<<i);
131 2 /* flag=loop_var%256; */
132 2 if((remote_phase&loop_var)==0)re_phase[i]++;
133 2 else re_phase[i]=0;
134 2 if(re_phase[i]>20)re_phase[i]=20;
135 2 }
136 1 for(i=0;i<4;i++){
137 2 loop_var=0x10;
138 2 loop_var=(loop_var<<i);
139 2 /* flag=loop_var%256; */
140 2 if((remote_other&loop_var)==0)re_other[i]++;
141 2 else re_other[i]=0;
142 2 if(re_other[i]>20)re_other[i]=20;
143 2 }
144 1
145 1 for(i=0;i<12;i++){
146 2 if(i<8)re_message[i]=re_phase[i];
147 2 else re_message[i]=re_other[i-8];
148 2 }
149 1 }
C51 COMPILER V6.02 REMOTE 08/02/2006 14:44:13 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
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
lamp_state . . . . . . . . . . . . . . EXTERN XDATA ARRAY ----- 16
hand_step_flag . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
hand_step. . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0010H 1
re_control . . . . . . . . . . . . . . PUBLIC DATA BIT 0001H 1
hand_step_count. . . . . . . . . . . . PUBLIC XDATA U_CHAR 0011H 1
re_phase . . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 0012H 8
user_count . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 001AH 1
hand_now_state . . . . . . . . . . . . PUBLIC XDATA U_CHAR 001BH 1
use_lamp . . . . . . . . . . . . . . . EXTERN XDATA U_INT ----- 2
re_other . . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 001CH 4
re_first . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0020H 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
remote_number. . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0021H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 642 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 34 ----
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 + -