📄 all_test.lst
字号:
C51 COMPILER V8.08 ALL_TEST 06/05/2008 09:07:13 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE ALL_TEST
OBJECT MODULE PLACED IN all_test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE all_test.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "nRF2401_Personal.h"
2
3 #define Signal_A P2_0 //滚轮A //注意:已经修改
4 #define Signal_B P2_1 //滚轮B
5 #define L_Key P2_2
6 #define M_Key P2_3
7 #define R_Key P2_4
8 #define XLay_L P3_5
9 #define XLay_R P3_6
10 #define YLay_U P3_4
11 #define YLay_D P3_7
12
13 bit prev_A=0,prev_B=0; //认为一开始,电平为低
14 bit prev_XL=0,prev_XR=0; //X方向左右先前状态
15 bit prev_YU=0,prev_YD=0; //Y方向左右先前状态
16 bit prev_L=1,prev_M=1,prev_R=1; //按键先前的状态被上拉为1
17
18 //----------------边沿检测-------------------//
19 //对于A、B来说,没有电平变化时,返回0
20 //A电平变化时,返回1
21 //B电平变化时,返回2
22 uchar Edge_Check(bit state_A, bit state_B, bit state_L, bit state_M, bit state_R,bit state_XL,bit state_XR
-,bit state_YU,bit state_YD)
23 {
24 1 if(Signal_A^state_A)
25 1 {
26 2 delayUS(5);
27 2 if(Signal_A^state_A)
28 2 {
29 3 if(state_A)
30 3 prev_A=0;
31 3 else
32 3 prev_A=1;
33 3 return(1);
34 3 }
35 2 }
36 1 if(Signal_B^state_B)
37 1 {
38 2 delayUS(5);
39 2 if(Signal_B^state_B)
40 2 {
41 3 if(state_B)
42 3 prev_B=0;
43 3 else
44 3 prev_B=1;
45 3 return(2);
46 3 }
47 2 }
48 1 //---------以下添加对鼠标的左、中、右键的支持--------//
49 1 if(L_Key^state_L)
50 1 {
51 2 delayUS(3);
52 2 if(L_Key^state_L)
53 2 {
54 3 if(state_L)
C51 COMPILER V8.08 ALL_TEST 06/05/2008 09:07:13 PAGE 2
55 3 prev_L=0;
56 3 else
57 3 prev_L=1;
58 3 return(3);
59 3 }
60 2 }
61 1 if(M_Key^state_M)
62 1 {
63 2 delayUS(3);
64 2 if(M_Key^state_M)
65 2 {
66 3 if(state_M)
67 3 prev_M=0;
68 3 else
69 3 prev_M=1;
70 3 return(4);
71 3 }
72 2 }
73 1 if(R_Key^state_R)
74 1 {
75 2 delayUS(3);
76 2 if(R_Key^state_R)
77 2 {
78 3 if(state_R)
79 3 prev_R=0;
80 3 else
81 3 prev_R=1;
82 3 return(5);
83 3 }
84 2 }
85 1 if(XLay_L^state_XL)
86 1 {
87 2 delayUS(5);
88 2 if(XLay_L^state_XL)
89 2 {
90 3 if(state_XL)
91 3 prev_XL=0;
92 3 else
93 3 prev_XL=1;
94 3 return(6);
95 3 }
96 2 }
97 1 if(XLay_R^state_XR)
98 1 {
99 2 delayUS(5);
100 2 if(XLay_R^state_XR)
101 2 {
102 3 if(state_XR)
103 3 prev_XR=0;
104 3 else
105 3 prev_XR=1;
106 3 return(7);
107 3 }
108 2 }
109 1 if(YLay_U^state_YU)
110 1 {
111 2 delayUS(5);
112 2 if(YLay_U^state_YU)
113 2 {
114 3 if(state_YU)
115 3 prev_YU=0;
116 3 else
C51 COMPILER V8.08 ALL_TEST 06/05/2008 09:07:13 PAGE 3
117 3 prev_YU=1;
118 3 return(8);
119 3 }
120 2 }
121 1 if(YLay_D^state_YD)
122 1 {
123 2 delayUS(5);
124 2 if(YLay_D^state_YD)
125 2 {
126 3 if(state_YD)
127 3 prev_YD=0;
128 3 else
129 3 prev_YD=1;
130 3 return(9);
131 3 }
132 2 }
133 1 //---------------------------------------------------//
134 1 return(0);
135 1 }
136
137 void EN_TX(void)
138 {
139 1 switch(Edge_Check(prev_A,prev_B,prev_L,prev_M,prev_R,prev_XL,prev_XR,prev_YU,prev_YD))
140 1 {
141 2 case 1:
142 2 //-------添加滚轮发送A的数据-----//
143 2 TxBuf[0]=0x12;
144 2 nRF2401_SendData();
145 2 //===============================//
146 2 break;
147 2 case 2:
148 2 //-------添加滚轮发送B的数据-----//
149 2 TxBuf[0]=0x14;
150 2 nRF2401_SendData();
151 2 //===============================//
152 2 break;
153 2 case 3:
154 2 TxBuf[0]=0x23; //仅使用一个字节数据
155 2 nRF2401_SendData();
156 2 break;
157 2 case 4:
158 2 TxBuf[0]=0x34; //仅使用一个字节数据
159 2 nRF2401_SendData();
160 2 break;
161 2 case 5:
162 2 TxBuf[0]=0x45; //仅使用一个字节数据
163 2 nRF2401_SendData();
164 2 break;
165 2 case 6:
166 2 TxBuf[0]=0x48; //仅使用一个字节数据
167 2 nRF2401_SendData();
168 2 break;
169 2 case 7:
170 2 TxBuf[0]=0x50; //仅使用一个字节数据
171 2 nRF2401_SendData();
172 2 break;
173 2 case 8:
174 2 TxBuf[0]=0x52; //仅使用一个字节数据
175 2 nRF2401_SendData();
176 2 break;
177 2 case 9:
178 2 TxBuf[0]=0x55; //仅使用一个字节数据
C51 COMPILER V8.08 ALL_TEST 06/05/2008 09:07:13 PAGE 4
179 2 nRF2401_SendData();
180 2 break;
181 2 default: break;
182 2 }
183 1 }
184
185 void main(void)
186 {
187 1 L_Key=1;
188 1 M_Key=1;
189 1 R_Key=1;
190 1 nRF2401_Inti();
191 1 while(1)
192 1 {
193 2 EN_TX();
194 2 }
195 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 838 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 9 9
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -