📄 displaycontrol.lst
字号:
C51 COMPILER V6.02 DISPLAYCONTROL 09/11/2005 06:36:51 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE DISPLAYCONTROL
OBJECT MODULE PLACED IN .\DisplayControl.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\DisplayControl.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define _DISPLAYCONTROL_C_Def
2
3 #include "hd7279.h"
4 #include "DisplayControl.h"
5
6 void InitialDisplayControl(void){
7 1 unsigned char i;
8 1 SendInstructTo7279(CMD_RESET); //
9 1 for( i=0;i<DIG_NUMs;i++ ){
10 2 DisplayV.DisplayBakBuffer[i] = 0xFF;
11 2 DisplayV.DisplayBuffer[i] = 0x98;//DP , transMode 1, data 8
12 2 }
13 1 DisplayV.FlashC = 0xFF;
14 1 DisplayV.HideC = 0xFF;
15 1 DisplayV.BakFlashC = 0x00;
16 1 DisplayV.BakHideC = 0x00;
17 1 DisplayV.ControlMark = 1;
18 1
19 1 return;
20 1 }
21
22 //disBit:0~7
23 //mark:1 显示小数点;0:不显示小数点
24 void SetupDPForLED(unsigned char disBit, unsigned char mark)
25 {
26 1 if(mark)
27 1 DisplayV.DisplayBuffer[disBit] |= 0x80;
28 1 else
29 1 DisplayV.DisplayBuffer[disBit] &= 0x7F;
30 1 }
31 //返回显示缓冲器中的数据,0x00~0x0f
32 unsigned char ReturnLedBufData(unsigned char disBit)
33 {
34 1 return DisplayV.DisplayBuffer[disBit] & 0x0F;
35 1 }
36
37 //让所有的LED无显示, 注意:不是隐藏
38 void GoOutAllLED(void)
39 {
40 1 unsigned char i;
41 1
42 1 for ( i=0;i<DIG_NUMs;i++ )
43 1 DisplayV.DisplayBuffer[i] = 0x0F;
44 1 }
45
46 //DisBit:0~7
47 //Data: 0x00~0x0F
48 //DP: 0 or 1
49 //transMode:0 or 1 or 2
50 unsigned char SetupDisBuffer(unsigned char DisBit, unsigned char Dp, unsigned char Data, unsigned char tra
-nsMode){
51 1 unsigned char i;
52 1 if( DisBit>7 ) return 0;
53 1
54 1 i = Data & 0x0F;
C51 COMPILER V6.02 DISPLAYCONTROL 09/11/2005 06:36:51 PAGE 2
55 1 if( Dp!=0 ) i += 0x80;
56 1 i += ((transMode & 0x03) << 4);
57 1
58 1 DisplayV.DisplayBuffer[DisBit] = i;
59 1
60 1 return 1;
61 1 }
62 //DisBit:0~7, other all bit
63 //mark:1-闪烁; 0-不闪烁
64 void SetupFlashBit(unsigned char DisBit, unsigned char mark){
65 1 if( DisBit>7 ){
66 2 if( mark!=0 )//闪烁
67 2 DisplayV.FlashC = 0x00;
68 2 else//不闪烁
69 2 DisplayV.FlashC = 0xFF;
70 2 }
71 1 else{
72 2 if( mark!=0 )//闪烁
73 2 DisplayV.FlashC &= ~(1 << (7-DisBit));
74 2 else//不闪烁
75 2 DisplayV.FlashC |= (1 << (7-DisBit));
76 2 }
77 1
78 1 return;
79 1 }
80 //DisBit:0~7, other all bit
81 //mark: 1-消隐; 0-不消隐
82 void SetupHideBit(unsigned char DisBit, unsigned char mark){
83 1 if( DisBit>7 ){
84 2 if( mark!=0 )//消隐
85 2 DisplayV.HideC = 0x00;
86 2 else//不消隐
87 2 DisplayV.HideC = 0xFF;
88 2 }
89 1 else{
90 2 if( mark!=0 )//消隐
91 2 DisplayV.HideC &= ~(1 << (7-DisBit));
92 2 else//不消隐
93 2 DisplayV.HideC |= (1 << (7-DisBit));
94 2 }
95 1
96 1 return ;
97 1 }
98
99 //-------------------------------------------------------------------------------
100 void Display(void)
101 {
102 1 unsigned char i;
103 1
104 1 if( DisplayV.ControlMark==0 )
105 1 return;
106 1
107 1 for( i=0;i<DIG_NUMs;i++ ){
108 2 if( DisplayV.DisplayBuffer[i]!=DisplayV.DisplayBakBuffer[i] ){
109 3 SetupLedData(7-i, DisplayV.DisplayBuffer[i]&0x8F, (DisplayV.DisplayBuffer[i]&0x70)>>4 );
110 3 DisplayV.DisplayBakBuffer[i] = DisplayV.DisplayBuffer[i];
111 3 }
112 2 }
113 1
114 1 if( DisplayV.FlashC!=DisplayV.BakFlashC ){
115 2 Flash7279(DisplayV.FlashC);
116 2 DisplayV.BakFlashC = DisplayV.FlashC;
C51 COMPILER V6.02 DISPLAYCONTROL 09/11/2005 06:36:51 PAGE 3
117 2 }
118 1 if( DisplayV.HideC!=DisplayV.BakHideC ){
119 2 Hide7279(DisplayV.HideC);
120 2 DisplayV.BakHideC = DisplayV.HideC;
121 2 }
122 1
123 1 return;
124 1 }
125
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 358 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = 21 ----
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 + -