📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 05/21/2007 15:02:34 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil 8.08\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 typedef unsigned char BYTE;
3
4 sbit S_SET=P1^0;
5 sbit M_SET=P1^1;
6 sbit H_SET=P1^2;
7
8 sbit P30=P3^0;
9 sbit P31=P3^1;
10 sbit P32=P3^2;
11 sbit P33=P3^3;
12 sbit P34=P3^4;
13 sbit P35=P3^5;
14 sbit P36=P3^6;
15 sbit P37=P3^7;
16
17
18 BYTE SECOND;
19 BYTE MINUTE;
20 BYTE HOUR;
21 BYTE TCNT;
22
23 BYTE code TABLE[]={ 0x3F,0x06,0x5B,0x4F,0x66,
24 0x6D,0x7D,0x07,0x7F,0x6F};
25
26 void DELAY()
27 {
28 1 BYTE i=10;
29 1 do
30 1 {
31 2 BYTE j=250;
32 2 do
33 2 {}while(--j);
34 2 }while(--i);
35 1 }
36
37
38 void INT_T0()interrupt 1
39 {
40 1 TH0=(65536-50000)/256;
41 1 TL0=(65536-50000)%256;
42 1 TCNT++;
43 1
44 1 if(TCNT==20)
45 1 {
46 2 SECOND++;
47 2 TCNT=0;
48 2 if(SECOND==60)
49 2 {
50 3 MINUTE++;
51 3 SECOND=0;
52 3 if(MINUTE==60)
53 3 {
54 4 HOUR++;
55 4 MINUTE=0;
C51 COMPILER V8.08 MAIN 05/21/2007 15:02:34 PAGE 2
56 4 if(HOUR==24)
57 4 {
58 5 HOUR=0;
59 5 MINUTE=0;
60 5 SECOND=0;
61 5 TCNT=0;
62 5 }
63 4 }
64 3 }
65 2 }
66 1
67 1 }
68
69 void DISPLAY()
70 {
71 1 P36=0;
72 1 P0=TABLE[SECOND/10];
73 1 DELAY();
74 1 P36=1;
75 1 P37=0;
76 1 P0=TABLE[SECOND%10];
77 1 DELAY();
78 1 P37=1;
79 1
80 1 P35=0;
81 1 P0=0x40;
82 1 DELAY();
83 1 P35=1;
84 1
85 1 P33=0;
86 1 P0=TABLE[MINUTE/10];
87 1 DELAY();
88 1 P33=1;
89 1 P34=0;
90 1 P0=TABLE[MINUTE%10];
91 1 DELAY();
92 1 P34=1;
93 1
94 1 P32=0;
95 1 P0=0x40;
96 1 DELAY();
97 1 P32=1;
98 1
99 1 P30=0;
100 1 P0=TABLE[HOUR/10];
101 1 DELAY();
102 1 P30=1;
103 1 P31=0;
104 1 P0=TABLE[HOUR%10];
105 1 DELAY();
106 1 P31=1;
107 1 }
108
109 main()
110 {
111 1 HOUR=0;
112 1 MINUTE=0;
113 1 SECOND=0;
114 1 TCNT=0;
115 1 TMOD=1;
116 1 TH0=(65536-50000)/256;
117 1 TL0=(65536-50000)%256;
C51 COMPILER V8.08 MAIN 05/21/2007 15:02:34 PAGE 3
118 1 IE=0x82;
119 1 TR0=1;
120 1
121 1 while(1)
122 1 {
123 2 DISPLAY();
124 2
125 2 if(!S_SET)
126 2 {
127 3 DELAY();
128 3 if(S_SET) continue;
129 3 SECOND++;
130 3
131 3 if(SECOND==60)
132 3 {
133 4 SECOND=0;
134 4 goto K1;
135 4 }
136 3 else
137 3 {
138 4 while(!S_SET)
139 4 DISPLAY();
140 4 }
141 3 }
142 2
143 2 if(!M_SET)
144 2 {
145 3 DELAY();
146 3 if(M_SET) continue;
147 3
148 3 K1: MINUTE++;
149 3 if(MINUTE==60)
150 3 {
151 4 MINUTE=0;
152 4 goto K2;
153 4 }
154 3 else
155 3 {
156 4 while(!M_SET)
157 4 DISPLAY();
158 4 }
159 3 }
160 2
161 2 if(!H_SET)
162 2 {
163 3 DELAY();
164 3 if(H_SET) continue;
165 3
166 3 K2: HOUR++;
167 3 if(HOUR==24)
168 3 {
169 4 HOUR=0;
170 4 MINUTE=0;
171 4 SECOND=0;
172 4 }
173 3 else
174 3 {
175 4 while(!H_SET)
176 4 DISPLAY();
177 4 }
178 3 }
179 2 }
C51 COMPILER V8.08 MAIN 05/21/2007 15:02:34 PAGE 4
180 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 300 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 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 + -