?? disp.lst
字號:
C51 COMPILER V7.09 DISP 11/20/2007 08:45:29 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE DISP
OBJECT MODULE PLACED IN Disp.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Disp.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 Disp.c
3 數(shù)碼管掃描顯示驅(qū)動程序
4 */
5
6
7 #include <reg51.h>
8 #include <absacc.h>
9
10
11 //定義顯示緩沖區(qū)(由定時中斷程序自動掃描)
12 unsigned char DispBuf[8];
13
14
15 /*
16 函數(shù):T1INTSVC()
17 功能:定時器T1的中斷服務(wù)函數(shù)
18 */
19 void T1INTSVC() interrupt 3
20 {
21 1 code unsigned char com[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
22 1 static unsigned char n = 0;
23 1 TR1 = 0;
24 1 TH1 = 0xFC;
25 1 TL1 = 0x66;
26 1 TR1 = 1;
27 1 P1 = 0xFF; //暫停顯示
28 1 XBYTE[0xE800] = ~DispBuf[n]; //更新掃描數(shù)據(jù)
29 1 P1 = ~com[n]; //重新顯示
30 1 n++;
31 1 n &= 0x07;
32 1 }
33
34
35 /*
36 函數(shù):DispClear()
37 功能:清除數(shù)碼管的所有顯示
38 */
39 void DispClear()
40 {
41 1 unsigned char i;
42 1 for ( i=0; i<8; i++ )
43 1 {
44 2 DispBuf[i] = 0x00;
45 2 }
46 1 }
47
48
49 /*
50 函數(shù):DispChar()
51 功能:在數(shù)碼管上顯示字符
52 參數(shù):
53 x:數(shù)碼管的坐標(biāo)位置(0~7)
54 c:要顯示的字符(僅限十進制數(shù)字和減號)
55 */
C51 COMPILER V7.09 DISP 11/20/2007 08:45:29 PAGE 2
56 void DispChar(unsigned char x, unsigned char c)
57 {
58 1 //0123456789的數(shù)碼管字型數(shù)據(jù)
59 1 code unsigned char Tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
60 1 x &= 0x07;
61 1 x = 7 - x;
62 1 if ( c == '-' )
63 1 {
64 2 DispBuf[x] = 0x40;
65 2 }
66 1 else if ( ( c >= '0' ) && ( c <= '9' ) )
67 1 {
68 2 DispBuf[x] = Tab[c-'0'];
69 2 }
70 1 }
71
72
73 /*
74 函數(shù):DispStr()
75 功能:在數(shù)碼管上顯示字符串
76 參數(shù):
77 x:數(shù)碼管的坐標(biāo)位置(0~7)
78 *s:要顯示的字符串(字符僅限十進制數(shù)字和減號)
79 */
80 void DispStr(unsigned char x, unsigned char *s)
81 {
82 1 unsigned char c;
83 1 for (;;)
84 1 {
85 2 c = *s;
86 2 if ( c == '\0' ) break;
87 2 s++;
88 2 DispChar(x,c);
89 2 x++;
90 2 }
91 1 }
92
93
94 /*
95 函數(shù):DispDotOn()
96 功能:顯示指定位的小數(shù)點
97 參數(shù):x為數(shù)碼管坐標(biāo)
98 */
99 void DispDotOn(unsigned char x)
100 {
101 1 DispBuf[7-x] |= 0x80;
102 1 }
103
104
105 /*
106 函數(shù):DispInit()
107 功能:數(shù)碼管掃描顯示初始化
108 */
109 void DispInit()
110 {
111 1 DispClear();
112 1 EA = 0;
113 1 TMOD &= 0x0F;
114 1 TMOD |= 0x10;
115 1 TH1 = 0xFC;
116 1 TL1 = 0x66;
117 1 TR1 = 1;
C51 COMPILER V7.09 DISP 11/20/2007 08:45:29 PAGE 3
118 1 ET1 = 1;
119 1 EA = 1;
120 1 }
121
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 177 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -