📄 led_mx4.lst
字号:
C51 COMPILER V6.10 LED_MX4 04/09/2001 15:01:29 PAGE 1
C51 COMPILER V6.10, COMPILATION OF MODULE LED_MX4
OBJECT MODULE PLACED IN .\LED_Mx4.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\LED_Mx4.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*------------------------------------------------------------------*-
2
3 LED_Mx4.C (v1.00)
4
5 ------------------------------------------------------------------
6
7 Simple library function for displaying data on four multiplexed,
8 eight-segment LED displays
9
10
11 COPYRIGHT
12 ---------
13
14 This code is from the book:
15
16 PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont
17 [Pearson Education, 2001; ISBN: 0-201-33138-1].
18
19 This code is copyright (c) 2001 by Michael J. Pont.
20
21 See book for copyright details and other information.
22
23 -*------------------------------------------------------------------*/
24
25 #include "Main.h"
26 #include "Port.h"
27
28 #include "LED_Mx4.h"
29
30 // ------ Public variable definitions ------------------------------
31
32 // Lookup table - stored in code area
33 // See Port.H for connections and code details
34
35 tByte code LED_Table_G[20] =
36 // 0 1 2 3 4 5 6 7 8 9
37 {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,
38 // 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.
39 0xBF, 0x86, 0xDB, 0xCF, 0xE6, 0xED, 0xFD, 0x87, 0xFF, 0xEF};
40
41 // Global data formatted for display (initially 0,0,0,0)
42 tByte LED_Mx4_Data_G[4] = {0x3F,0x3F,0x3F,0x3F};
43
44
45 // ------ Private variable definitions------------------------------
46
47 static tByte Digit_G;
48
49 /*------------------------------------------------------------------*-
50
51 LED_MX4_Display_Update()
52
53 Updates (four) multiplexed 8-segment LED displays.
54
55 Usually aim to scheduled at around 3ms intervals: typically
C51 COMPILER V6.10 LED_MX4 04/09/2001 15:01:29 PAGE 2
56 around a 1% CPU load on standard 8051.
57
58 -*------------------------------------------------------------------*/
59 void LED_MX4_Display_Update(void)
60 {
61 1 // Increment the digit to be displayed
62 1 if (++Digit_G == LED_NUM_DIGITS)
63 1 {
64 2 Digit_G = 0;
65 2 }
66 1
67 1 // Allows any pins to be used
68 1 switch (Digit_G)
69 1 {
70 2 case 0:
71 2 {
72 3 LED_DIGIT_0 = 0;
73 3 LED_DIGIT_1 = 0;
74 3 LED_DIGIT_2 = 0;
75 3 LED_DIGIT_3 = 1;
76 3 break;
77 3 }
78 2
79 2 case 1:
80 2 {
81 3 LED_DIGIT_0 = 0;
82 3 LED_DIGIT_1 = 0;
83 3 LED_DIGIT_2 = 1;
84 3 LED_DIGIT_3 = 0;
85 3 break;
86 3 }
87 2
88 2 case 2:
89 2 {
90 3 LED_DIGIT_0 = 0;
91 3 LED_DIGIT_1 = 1;
92 3 LED_DIGIT_2 = 0;
93 3 LED_DIGIT_3 = 0;
94 3 break;
95 3 }
96 2
97 2 case 3:
98 2 {
99 3 LED_DIGIT_0 = 1;
100 3 LED_DIGIT_1 = 0;
101 3 LED_DIGIT_2 = 0;
102 3 LED_DIGIT_3 = 0;
103 3 }
104 2 }
105 1
106 1 LED_DATA_PORT = 255 - LED_Mx4_Data_G[Digit_G];
107 1 }
108
109 /*------------------------------------------------------------------*-
110 ---- END OF FILE -------------------------------------------------
111 -*------------------------------------------------------------------*/
112
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 77 ----
CONSTANT SIZE = 20 ----
C51 COMPILER V6.10 LED_MX4 04/09/2001 15:01:29 PAGE 3
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -