📄 displaydir.lst
字号:
--
133 * 函数名称: LedDisplay()
134 * 参 数: XX
135 * 返 回: XX
136 * 函数功能: 数码显示
137 *
138 * 说 明:
139 *
140 * 当前版本: V1.0 * 取代版本:
141 * 作 者: wsl * 修 改:
142 * 版本信息: 2006-09-14 * 修改信息:
143
144 -*-------------------------------------------------------------------------------------------------------*
-/
145 void LedDisplay(void)
146 {
147 1 static uint8_t BitCnt;
148 1
149 1 // 关数码管消隐
150 1 COM_LINE |= (1<<COM0_CS)|(1<<COM1_CS)|(1<<COM2_CS)|(1<<COM3_CS);
151 1
152 1
153 1 // 任意位和任意点可以同时闪烁(点位总使能开同时开)
154 1 if ( DFlash )
155 1 {
156 2 switch (BitCnt)
157 2 {
158 3 case 0: if (Dlink1) {SEG_LINE = ~(DispCode[DisplayBuffer[BitCnt]] + SEG_Dot);}
159 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
160 3
161 3 case 1: if (Dlink2) {SEG_LINE = ~(DispCode[DisplayBuffer[BitCnt]] + SEG_Dot);}
162 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
163 3
164 3 case 2: if (Dlink3) {SEG_LINE = ~(DispCode[DisplayBuffer[BitCnt]] + SEG_Dot);}
165 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
166 3
167 3 case 3: if (Dlink4) {SEG_LINE = ~(DispCode[DisplayBuffer[BitCnt]] + SEG_Dot);}
168 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
169 3
170 3 default: break;
171 3 }
172 2 }
173 1 else if ( !BFlash ) /*否则是位闪烁*/
174 1 {
C51 COMPILER V7.06 DISPLAYDIR 05/31/2009 01:55:38 PAGE 4
175 2 switch (BitCnt)
176 2 {
177 3 case 0: if (Blink1) {SEG_LINE = 0xff;}
178 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
179 3
180 3 case 1: if (Blink2) {SEG_LINE = 0xff;}
181 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
182 3
183 3 case 2: if (Blink3) {SEG_LINE = 0xff;}
184 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
185 3
186 3 case 3: if (Blink4) {SEG_LINE = 0xff;}
187 3 else {SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];} break;
188 3
189 3 default: break;
190 3 }
191 2 }
192 1 else
193 1 {
194 2 SEG_LINE = ~DispCode[DisplayBuffer[BitCnt]];
195 2 }
196 1
197 1
198 1
199 1 COM_LINE ^= 1 << CS_Control[BitCnt++];
200 1 if (BitCnt >= MAX_DISP_BITS)
201 1 {
202 2 BitCnt = 0;
203 2 }
204 1 }
205
206
207 /*-------------------------------------------------------------------------------------------------------*
--
208 * 函数名称: FlashFreq()
209 * 参 数: XX
210 * 返 回: XX
211 * 函数功能: 控制闪烁频率(在定时中断中运行)
212 *
213 * 说 明:
214 *
215 * 当前版本: V1.0 * 取代版本:
216 * 作 者: wsl * 修 改:
217 * 版本信息: 2006-09-14 * 修改信息:
218
219 -*-------------------------------------------------------------------------------------------------------*
-/
220 void LedFlashFreq(void)
221 {
222 1 static uint8_t ucLedFlashFreq = 0;
223 1
224 1 ucLedFlashFreq++; // 设每5mS中断一次
225 1
226 1 if (ucLedFlashFreq >= 500/TIMEROUT) // 500ms除以标
227 1 {
228 2 ucLedFlashFreq = 0;
229 2 if ( g_DFlashEn ) // 是否需要点闪烁
230 2 {
231 3 DFlash = ~DFlash;
232 3 }
233 2 else
234 2 {
C51 COMPILER V7.06 DISPLAYDIR 05/31/2009 01:55:38 PAGE 5
235 3 DFlash = 0;
236 3 }
237 2
238 2 if ( g_BFlashEn ) // 是否需要点闪烁
239 2 {
240 3 BFlash = ~BFlash;
241 3 }
242 2 else
243 2 {
244 3 BFlash = 0;
245 3 }
246 2 }
247 1 }
248
249 void UpdateDisplayBuffer(uint8_t hour, uint8_t minute)
250 {
251 1 DisplayBuffer[0] = hour / 10;
252 1 DisplayBuffer[1] = hour % 10;
253 1 DisplayBuffer[2] = minute / 10;
254 1 DisplayBuffer[3] = minute % 10;
255 1 }
256
257
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 289 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
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 + -