📄 main.lst
字号:
86 1
87 1 while(1)
88 1 {
89 2 if(b_KeyScan) //如果有按键按下,则进行按键扫描和键码处理。
90 2 {
91 3 b_KeyScan=0;
92 3 vKeyProcess(ucKeyScan());
93 3 }
94 2 if(b_BlockDown) //方块定时下降。
95 2 {
96 3 b_BlockDown=0;
97 3 vBlockAction(ACTIONDOWN);
98 3 }
99 2 }
100 1 }
101
102
103
104 //*************************************************************************************************
105 //* *
106 //* ******************************外部中断0,用于开启键盘扫描及键码处理****************** *
107 //* *
108 //*************************************************************************************************
109 void vINT0(void) interrupt 0
110 {
111 1 if(b_KeyShock==0)
112 1 {
113 2 b_KeyScan=1; //开启键盘扫描标志。
114 2 b_KeyShock=1; //设置防抖动标志。
115 2 }
116 1 else b_KeyShock=0; //如果有抖动则不执行键扫描,恢复防抖动标志。
C51 COMPILER V8.05a MAIN 09/09/2007 10:45:20 PAGE 3
117 1
118 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<设置防抖动清除标志位 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
119 1 if(b_KeyShock==1)
120 1 b_KillShock=1; //如果防抖动标志位开启则开启防抖动标志清除位,
121 1 //300ms后清除防抖动标志。
122 1
123 1 }
124
125
126 //*************************************************************************************************
127 //* *
128 //* **********************定时器1中断,用于方块定时下降和防抖动标志清除****************** *
129 //* *
130 //*************************************************************************************************
131 void vTimer1(void) interrupt 3
132 {
133 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
134 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<方块定时下降>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
135 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
136 1 if(b_DownStart)
137 1 {
138 2 if(uc_DownCount==100)
139 2 {
140 3 uc_DownCount=0;
141 3 b_BlockDown=1;
142 3 }
143 2 else
144 2 uc_DownCount++;
145 2 }
146 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
147 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖动标志清除>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
148 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
149 1 if(b_KillShock==1)
150 1 {
151 2 if(uc_KillCount==5) //当防抖动标志位为1时,计时300ms后清除抖动标志位。
152 2 {
153 3 b_KeyShock=0;
154 3 b_KillShock=0;
155 3 uc_KillCount=0;
156 3 }
157 2 else uc_KillCount++;
158 2 }
159 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
160 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复定时器1溢出时间>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
161 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
162 1 TH1=TIME1H;
163 1 TL1=TIME1L;
164 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 116 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 5 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -