📄 h18.lst
字号:
C51 COMPILER V6.20c H18 01/18/2004 09:58:20 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE H18
OBJECT MODULE PLACED IN D:\C51\H18.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE D:\C51\H18.C DB SB OE
stmt level source
1
2 #include <reg51.h>
3
4 #define LEDLen 6
5 #define PB1 2 // 164 时钟位
6 #define PB0 1 // 164 数据位
7
8 xdata unsigned char OUTBIT _at_ 0xfe02; // 位控制口
9 xdata unsigned char CLK164 _at_ 0xfe04; // 段控制口(接164时钟位)
10 xdata unsigned char DAT164 _at_ 0xfe06; // 段控制口(接164数据位)
11
12 unsigned char LEDBuf[LEDLen]; // 显示缓冲
13 code unsigned char LEDMAP[] = { // 八段管显示码
14 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
15 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71
16 };
17
18 void Delay(unsigned char CNT)
19 {
20 1 unsigned char i;
21 1
22 1 while (CNT-- !=0)
23 1 for (i=100; i !=0; i--);
24 1 }
25
26 void DisplayLED()
27 {
28 1 unsigned char i, j;
29 1 unsigned char Pos;
30 1 unsigned char LED;
31 1
32 1 Pos = 0x20; // 从左边开始显示
33 1 for (i = 0; i < LEDLen; i++) {
34 2 OUTBIT = 0; // 关所有八段管
35 2 LED = LEDBuf[i];
36 2 for (j = 0; j < 8; j++) { // 送164
37 3 if (LED & 0x80) DAT164 = 1; else DAT164 = 0;
38 3 CLK164 = 1;
39 3 CLK164 = 0;
40 3 LED <<= 1;
41 3 }
42 2 OUTBIT = Pos; // 显示一位八段管
43 2 Delay(1);
44 2 Pos >>= 1; // 显示下一位
45 2 }
46 1 }
47
48 // ===============================================================================
49
50 #define Tick 10000 // 10000 x 100us = 1s
51 #define T100us (256-50) // 100us时间常数(6M)
52
53 unsigned char Hour, Minute, Second;
54 unsigned int C100us; // 100us记数单元
55
C51 COMPILER V6.20c H18 01/18/2004 09:58:20 PAGE 2
56 void T0Int() interrupt 1
57 {
58 1 C100us--;
59 1 if (C100us == 0) {
60 2 C100us = Tick; // 100us 记数器为0, 重置记数器
61 2 Second++;
62 2 if (Second == 60) {
63 3 Second = 0;
64 3 Minute++;
65 3 if (Minute == 60) {
66 4 Minute = 0;
67 4 Hour++;
68 4 if (Hour == 24) Hour = 0;
69 4 }
70 3 }
71 2 }
72 1 }
73
74 void main()
75 {
76 1 TMOD = 0x02; // 方式2, 定时器
77 1 TH0 = T100us;
78 1 TL0 = T100us;
79 1
80 1 IE = 0x82; // EA=1, IT0 = 1
81 1
82 1 Hour = 0;
83 1 Minute = 0;
84 1 Second = 0;
85 1 C100us = Tick;
86 1 TR0 = 1; // 启动定时器0
87 1
88 1 while (1) {
89 2 LEDBuf[0] = LEDMAP[Hour/10];
90 2 LEDBuf[1] = LEDMAP[Hour%10] | 0x80;
91 2 LEDBuf[2] = LEDMAP[Minute/10];
92 2 LEDBuf[3] = LEDMAP[Minute%10] | 0x80;
93 2 LEDBuf[4] = LEDMAP[Second/10];
94 2 LEDBuf[5] = LEDMAP[Second%10];
95 2
96 2 DisplayLED();
97 2 }
98 1 }
C51 COMPILER V6.20c H18 01/18/2004 09:58:20 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
Hour . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
T0Int. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
DisplayLED . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0003H 1
j. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
Pos. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
LED. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
LEDMAP . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 16
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
C100us . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0001H 2
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
_Delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
CNT. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
OUTBIT . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR FE02H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
Second . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0003H 1
C51 COMPILER V6.20c H18 01/18/2004 09:58:20 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
LEDBuf . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0004H 6
Minute . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 000AH 1
DAT164 . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR FE06H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
CLK164 . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR FE04H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 ----
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 + -