📄 displaydir.lst
字号:
C51 COMPILER V7.06 DISPLAYDIR 05/31/2009 01:55:38 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DISPLAYDIR
OBJECT MODULE PLACED IN DisplayDir.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE software\DisplayDir.c BROWSE DEBUG OBJECTEXTEND PRINT(.\DisplayDir.lst) OBJ
-ECT(DisplayDir.obj)
stmt level source
1 // 为了便于阅读和打印,最大行长为100个字符.
2 // 1 2 3 4 5 6 7 8 9 A
3 //34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
4 /*------------------------------------------------------------------------------------------------*-
5 ****A**** ****A**** SEG_A ...... Px.0 ---- 1
6 | | ... | | SEG_B ...... Px.1 ---- 2
7 F B F B SEG_C ...... Px.2 ---- 4
8 | | ... | | SEG_D ...... Px.3 ---- 8
9 ****G**** ****G**** SEG_E ...... Px.4 ---- 1
10 | | ... | | SEG_F ...... Px.5 ---- 2
11 E C E C SEG_G ...... Px.6 ---- 4
12 | | ... | | SEG_Dot ...... Px.7 ---- 8
13 ****D****.>Dot ****D****.>Dot
14 | | Px.Y(Y = 0 ~ 7)
15 | |________ Dis_COMx ..... Px.Y
16 | . .
17 | . .
18 | . .
19 |________________________________ Dis_COM0 ..... Px.0
20 // LED.0 ... LED.x
21
22 -*------------------------------------------------------------------------------------------------*/
23 #include "main.h"
24 #include "port.h"
25 #include "SysTick.h"
26 #include "DisplayDir.h"
27
28
29 // 数码显示初始化
30 uint8_t DisplayBuffer[MAX_DISP_BITS] = {
31 1, 2, 3, 4
32 };
33
34 bool bUpdateDisplayEn;
35
36 // 数码管是否是共阳极?
37 //#define Is_Anode
38 // 还是数码管共阴极?
39 //#define Is_Cathode
40 // SEG线硬件连接方法定义(某位为 '1' 表示与数码管相对应的引脚相连)
41 #define SEG_A 0x01
42 #define SEG_B 0x02
43 #define SEG_C 0x04
44 #define SEG_D 0x08
45 #define SEG_E 0x10
46 #define SEG_F 0x20
47 #define SEG_G 0x40
48 #define SEG_Dot 0x80
49
50 uint8_t code DispCode[] =
51 {
52 //#ifdef Is_Anode
53 (SEG_A+SEG_B|SEG_C|SEG_D|SEG_E|SEG_F), // 0
54 (SEG_B|SEG_C), // 1
C51 COMPILER V7.06 DISPLAYDIR 05/31/2009 01:55:38 PAGE 2
55 (SEG_A|SEG_B|SEG_D|SEG_E|SEG_G), // 2
56 (SEG_A|SEG_B|SEG_C|SEG_D|SEG_G), // 3
57 (SEG_B|SEG_C|SEG_F|SEG_G), // 4
58 (SEG_A|SEG_C|SEG_D|SEG_G|SEG_F), // 5
59 (SEG_A|SEG_C|SEG_D|SEG_E|SEG_G|SEG_F), // 6
60 (SEG_A|SEG_B|SEG_C), // 7
61 (SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G), // 8
62 (SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G), // 9
63 '\0',
64 (SEG_A|SEG_F|SEG_G|SEG_C|SEG_D), // S
65 (SEG_A|SEG_F|SEG_G|SEG_E|SEG_D), // E
66 (SEG_F|SEG_E|SEG_D) // L
67 };
68
69
70 // 是否是高电平位选?
71 #define Is_HIGH_bool_SELECT
72 // 还是低电平位选?
73 //#define Is_LOW_bool_SELECT
74 // COM线接口定义(某位为 '1' 表示对位COM线位选)
75 #define COM0_CS 0x00
76 #define COM1_CS 0x01
77 #define COM2_CS 0x02
78 #define COM3_CS 0x03
79 #define COM4_CS 0x04
80 #define COM5_CS 0x05
81 #define COM6_CS 0x06
82 #define COM7_CS 0x07
83
84 uint8_t code CS_Control[] =
85 {
86 COM0_CS,
87 COM1_CS,
88 COM2_CS,
89 COM3_CS
90 };
91
92
93
94 /*LED数码管工作模式控制字*/
95 /*工作模式包含三种, 1> 点位同时闪烁
96 2> 点位分别闪烁
97 3> 点位不闪烁
98 */
99 uint8_t LED_TMOD = 0x00;
100
101 /*点闪烁总使能标志为1点闪动*/
102 bool g_DFlashEn = 0;
103 /*位闪烁总使能标志为1位闪动*/
104 bool g_BFlashEn = 0;
105
106 /*用于切换点的闪烁状态,闪烁或不闪烁*/
107 static bool DFlash;
108 /*用于切换位的闪烁状态,闪烁或不闪烁*/
109 static bool BFlash;
110
111 /*数码管闪烁标志*/
112 uint8_t bdata LedChangeFlag;
113 // 闪烁点:Blink,为1的位闪动
114 sbit Dlink1 = LedChangeFlag^0; /*时十位点 为1的位闪动*/
115 sbit Dlink2 = LedChangeFlag^1;
116 sbit Dlink3 = LedChangeFlag^2;
C51 COMPILER V7.06 DISPLAYDIR 05/31/2009 01:55:38 PAGE 3
117 sbit Dlink4 = LedChangeFlag^3; /*分个位点 为1的位闪动*/
118
119 // 闪烁位:Blink,为1的位闪动
120 sbit Blink1 = LedChangeFlag^4; /*时十位*/
121 sbit Blink2 = LedChangeFlag^5; /*时个位*/
122 sbit Blink3 = LedChangeFlag^6; /*分十位*/
123 sbit Blink4 = LedChangeFlag^7; /*分个位*/
124
125
126 /*-------------------------------------------------------------------------------------------------------*
--
127 关于数码管显示的各寄存器的应用说明:
128 // 任意位和任意点可以同时闪烁(点位总使能开同时开)
129 #define LED_DISP_ALL_FLASH() do{LED_TMOD = 0x00; g_DFlashEn = 1; g_BFlashEn = 1;}while(0)
130
131 -*-------------------------------------------------------------------------------------------------------*
-/
132 /*-------------------------------------------------------------------------------------------------------*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -