📄 00.lst
字号:
C51 COMPILER V8.02 00 04/26/2009 11:28:25 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 00
OBJECT MODULE PLACED IN 00.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 00.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 uchar j,k,i,a,A1,A2,A3,A4,A5,A6,second,min,hour;
4 sbit key0=P1^0;
5 sbit key1=P1^3;
6 sbit key2=P1^6;
7 bit L=0;//长溢出标志位
8 uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
9 0x80,0x90};//编码0~9
10 uchar code select[]={0x01,0x02,0x04,0x08,0x10,0x20};//位选通
11 uchar time[3];
12 uchar con=0;
13 uchar con1=0;
14 uchar con2=0;
15 void delay(uchar i)//延时
16 {
17 1 for(j=i;j>0;j--)
18 1 for(k=125;k>0;k--);
19 1 }
20 void keyscan(void)//键盘扫描
21 {EA=0;
22 1
23 1 if(!key0)
24 1 { delay(10);
25 2 while(!key0);
26 2 con++;TR0=0;ET0=0;
27 2 }
28 1 if(con>=3)
29 1 con=0;TR0=1;ET0=1;
30 1 if(con!=0)
31 1 {if(!key1)
32 2 {delay(10);
33 3 while(!key1);
34 3 {time[con]++;
35 4 if(con==2)
36 4 con1=24;else con1=60;
37 4 if(time[con]>con1)
38 4 {time[con]=0;}
39 4 }
40 3 }
41 2 }
42 1 if(con!=0)
43 1 {if(!key2)
44 2 {delay(10);
45 3 while(!key2);
46 3 {time[con]--;
47 4 if(con==2)
48 4 con2=23;else con2=59;
49 4 if(time[con]<0)
50 4 {time[con]=con2;}
51 4 }
52 3 }
53 2 }
54 1 EA=1;
55 1 }
C51 COMPILER V8.02 00 04/26/2009 11:28:25 PAGE 2
56 void display(uchar sh_c,uchar g_c,uchar sh_b,uchar g_b,uchar sh_a,uchar g_a)//显示部分
57 { P0=table[sh_c];
58 1 P3=select[0];
59 1 delay(5);
60 1 P3=0;
61 1
62 1 P0=table[g_c];
63 1 P3=select[1];
64 1 delay(5);
65 1 P3=0;
66 1
67 1 P0=table[sh_b];
68 1 P3=select[2];
69 1 delay(5);
70 1 P3=0;
71 1
72 1 P0=table[g_b];
73 1 P3=select[3];
74 1 delay(5);
75 1 P3=0;
76 1
77 1 P0=table[sh_a];
78 1 P3=select[4];
79 1 delay(5);
80 1 P3=0;
81 1
82 1 P0=table[g_a];
83 1 P3=select[5];
84 1 delay(5);
85 1 P3=0;
86 1 }
87
88 void main()
89 {TMOD=0x01;TH0=0x03;TL0=0xb0;
90 1 TR0=1;
91 1 ET0=1;
92 1 EA=1;
93 1 time[0]=00;
94 1 time[1]=00;
95 1 time[2]=12;
96 1 A1=time[0]/10;
97 1 A2=time[0]%10;
98 1 A3=time[1]/10;
99 1 A4=time[1]%10;
100 1 A5=time[2]/10;
101 1 A6=time[2]%10;
102 1 display(A1,A2,A3,A4,A5,A6);
103 1 while(1)
104 1 {keyscan();
105 2 if(L)
106 2 {
107 3 L=0;
108 3 time[0]++;
109 3 if(time[0]==60)
110 3 {time[0]=0;time[1]++;
111 4 {if(time[1]==60)
112 5 { time[1]=0;time[2]++;
113 6 {if(time[2]==24)
114 7 time[2]=0;
115 7 }
116 6 }
117 5 }
C51 COMPILER V8.02 00 04/26/2009 11:28:25 PAGE 3
118 4 }
119 3 }
120 2 A1=time[0]/10;
121 2 A2=time[0]%10;
122 2 A3=time[1]/10;
123 2 A4=time[1]%10;
124 2 A5=time[2]/10;
125 2 A6=time[2]%10;
126 2 { display(A1,A2,A3,A4,A5,A6);};
127 2 }
128 1
129 1 }
130 void t0(void) interrupt 1//1S延时
131 { static uchar t;
132 1 TF0=0;
133 1 t++;
134 1 if(t==11)
135 1 {t=0;L=1;
136 2 }
137 1 }
138
139
140
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 414 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 6
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -