📄 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 数码管扫描显示驱动程序
4 */
5
6
7 #include <reg51.h>
8 #include <absacc.h>
9
10
11 //定义显示缓冲区(由定时中断程序自动扫描)
12 unsigned char DispBuf[8];
13
14
15 /*
16 函数:T1INTSVC()
17 功能:定时器T1的中断服务函数
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]; //更新扫描数据
29 1 P1 = ~com[n]; //重新显示
30 1 n++;
31 1 n &= 0x07;
32 1 }
33
34
35 /*
36 函数:DispClear()
37 功能:清除数码管的所有显示
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 函数:DispChar()
51 功能:在数码管上显示字符
52 参数:
53 x:数码管的坐标位置(0~7)
54 c:要显示的字符(仅限十进制数字和减号)
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的数码管字型数据
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 函数:DispStr()
75 功能:在数码管上显示字符串
76 参数:
77 x:数码管的坐标位置(0~7)
78 *s:要显示的字符串(字符仅限十进制数字和减号)
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 函数:DispDotOn()
96 功能:显示指定位的小数点
97 参数:x为数码管坐标
98 */
99 void DispDotOn(unsigned char x)
100 {
101 1 DispBuf[7-x] |= 0x80;
102 1 }
103
104
105 /*
106 函数:DispInit()
107 功能:数码管扫描显示初始化
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -