📄 main.lst
字号:
181 {
182 1 CS=0;
183 1 Delay(25);
184 1 WriteSPI(Cmd);
185 1 CS=1;
186 1 Delay(5);
187 1 }
188 /****************************************
189 /给7289写指令和数据
190 *****************************************/
191 void WriteCmdDat(uchar Cmd,uchar Dat)
192 {
193 1 CS=0;
194 1 Delay(25);
195 1 WriteSPI(Cmd);
196 1 Delay(15);
197 1 WriteSPI(Dat);
198 1 CS=1;
199 1 Delay(5);
200 1 }
201 /****************************************
202 /在数码管上显示内容
203 *****************************************/
204 void ZLG7289DownLoad(uchar Mod,uchar cX,uchar cDp,uchar cDat)
205 {
206 1 uchar ucModDat[3] = {0x80,0xC8,0x90};
207 1 uchar ucD1;
208 1 uchar ucD2;
209 1 if (Mod > 2)
210 1 {
211 2 Mod = 2;
212 2 }
213 1 ucD1 = ucModDat[Mod];
214 1 cX &= 0x07;
215 1 ucD1 |= cX;
216 1 ucD2 = cDat & 0x7F;
217 1 if (cDp == 1) {
218 2 ucD2 |= 0x80;
219 2 }
220 1 WriteCmdDat(ucD1, ucD2);
221 1 }
222 /****************************************
223 /读取一个按键值
224 *****************************************/
225 uchar GetKey()
226 {
227 1 uchar cKey;
228 1 CS=0;
229 1 Delay(25);
230 1 WriteSPI(0x15);
231 1 Delay(15);
232 1 cKey =ReadSPI();
233 1 CS=1;
234 1 Delay(5);
235 1 return cKey;
236 1 }
237 /****************************************
238 /7289用户指令集
239 /复位(清除)指令
240 *****************************************/
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 5
241 void zlg7289Reset()
242 { WriteCmd(0xA4);
243 1 }
244 /***************************************
245 /测试指令
246 ****************************************/
247 void zlg7289Test()
248 {
249 1 WriteCmd(0xBF);
250 1 }
251 /***************************************
252 /左移指令
253 ****************************************/
254 void zlg7289SHL()
255 {
256 1 WriteCmd(0xA0);
257 1 }
258 /***************************************
259 /右移指令
260 ****************************************/
261 void zlg7289SHR()
262 {
263 1 WriteCmd(0xA1);
264 1 }
265 /***************************************
266 /循环左移指令
267 ****************************************/
268 void zlg7289ROL()
269 {
270 1 WriteCmd(0xA2);
271 1 }
272 /***************************************
273 /循环右移指令
274 ****************************************/
275 void zlg7289ROR()
276 {
277 1 WriteCmd(0xA3);
278 1 }
279 /***************************************
280 /闪烁控制
281 ***************************************/
282 void zlg7289Flash(uchar cX)
283 {
284 1 WriteCmdDat(0x88, (cX));
285 1 }
286 /**************************************
287 /消隐控制
288 **************************************/
289 void zlg7289Hide(uchar cX)
290 {
291 1 WriteCmdDat(0x98, (cX));
292 1 }
293 /*************************************
294 /段打开指令 8个数码管被看成64个独立LED
295 *************************************/
- /* 0:消隐 1:显示 */
296 void zlg7289SegOn(uchar cSeg)
297 {
298 1 WriteCmdDat(0xE0, (cSeg));
299 1 }
-
300 /************************************
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 6
301 /段关闭指令 8个数码管被看成64个独立LED
302 ************************************/
303 void zlg7289SegOff(uchar cSeg)
304 {
305 1 WriteCmdDat(0xC0, (cSeg));
306 1 }
307 /***********************************
308 /外部中断服务函数
309 ************************************/
310 uchar KeyValue=0;
311 void EXTISR() interrupt INTERRUPT_IFP
312 {
313 1 EX0=0;
314 1 KeyValue=GetKey();
315 1 ZLG7289DownLoad (0, 0, 0, KeyValue);
316 1 ZLG7289DownLoad (0, 1, 0, KeyValue);
317 1 ZLG7289DownLoad (0, 2, 0, KeyValue);
318 1 ZLG7289DownLoad (0, 3, 0, KeyValue);
319 1 ZLG7289DownLoad (0, 4, 0, KeyValue);
320 1 ZLG7289DownLoad (0, 5, 0, KeyValue);
321 1 ZLG7289DownLoad (0, 6, 0, KeyValue);
322 1 ZLG7289DownLoad (0, 7, 0, KeyValue);
323 1 putch('0'+(KeyValue/10));
324 1 putch('0'+(KeyValue%10));
325 1 putch('\n');
326 1 EX0=1;
327 1 }
328 /***********************************
329 /主函数部分
330 ************************************/
331 void main()
332 {
333 1 /*初始化*/
334 1 Disableint;
335 1 SetMcuClk();
336 1 Uartinit(BAUD_9600);
337 1 ZLG7289init();
338 1 zlg7289Reset();
339 1 Enableint;
340 1 Delay(100);
341 1 ZLG7289DownLoad (0, 0, 0, 0);
342 1 ZLG7289DownLoad (0, 1, 0, 1);
343 1 ZLG7289DownLoad (0, 2, 0, 2);
344 1 ZLG7289DownLoad (0, 3, 0, 3);
345 1 ZLG7289DownLoad (0, 4, 0, 4);
346 1 ZLG7289DownLoad (0, 5, 0, 5);
347 1 ZLG7289DownLoad (0, 6, 0, 6);
348 1 ZLG7289DownLoad (0, 7, 0, 7);
349 1 while(1);
350 1 }
351 /**************************************
352 / 程序到此结束 /
353 ***************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 746 ----
CONSTANT SIZE = 3 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 10
IDATA SIZE = ---- ----
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 7
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -