2018-10-16 14:29:38 +08:00
|
|
|
|
C51 COMPILER V9.59.0.0 CLOCK 10/13/2018 20:41:27 PAGE 1
|
2018-05-23 00:12:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.59.0.0, COMPILATION OF MODULE CLOCK
|
|
|
|
|
OBJECT MODULE PLACED IN .\Objects\clock.obj
|
|
|
|
|
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE clock.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\clo
|
|
|
|
|
-ck.lst) TABS(2) OBJECT(.\Objects\clock.obj)
|
|
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
|
|
1 #include <AT89X51.H>
|
|
|
|
|
2 #define uint unsigned int
|
|
|
|
|
3 #define uchar unsigned char
|
2018-10-16 14:29:38 +08:00
|
|
|
|
4
|
2018-05-23 00:12:48 +08:00
|
|
|
|
5 sbit k1=P1^1;
|
|
|
|
|
6 sbit k2=P1^2;
|
|
|
|
|
7 sbit k3=P1^3;
|
|
|
|
|
8 sbit k4=P1^4;
|
|
|
|
|
9 sbit k5=P1^5;
|
2018-10-16 14:29:38 +08:00
|
|
|
|
10 sbit k6=P1^6;
|
|
|
|
|
11
|
|
|
|
|
12 void display();
|
|
|
|
|
13 uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
|
|
|
|
|
14 uchar code wei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
|
|
|
|
|
15 uint second, minute, hour, one, ten, hundred, thousand, tthousand, oht, t;
|
|
|
|
|
16
|
|
|
|
|
17 void times(uint z)
|
|
|
|
|
18 {
|
|
|
|
|
19 1 uint i,j;
|
|
|
|
|
20 1 for(i=0; i<z; i++)
|
|
|
|
|
21 1 for(j=0; j<121; j++);
|
|
|
|
|
22 1 }
|
|
|
|
|
23
|
|
|
|
|
24 void display()
|
|
|
|
|
25 {
|
|
|
|
|
26 1 one=second%10;
|
|
|
|
|
27 1 ten=second/10;
|
|
|
|
|
28 1 hundred=minute%10;
|
|
|
|
|
29 1 thousand=minute/10;
|
|
|
|
|
30 1 tthousand=hour%10;
|
|
|
|
|
31 1 oht=hour/10;
|
|
|
|
|
32 1
|
|
|
|
|
33 1 P0=duan[one];
|
|
|
|
|
34 1 P2=wei[7];
|
|
|
|
|
35 1 times(1);
|
|
|
|
|
36 1 P2=0xff;
|
|
|
|
|
37 1
|
|
|
|
|
38 1 P0=duan[ten];
|
|
|
|
|
39 1 P2=wei[6];
|
|
|
|
|
40 1 times(1);
|
|
|
|
|
41 1 P2=0xff;
|
|
|
|
|
42 1
|
|
|
|
|
43 1 P0=duan[hundred];
|
|
|
|
|
44 1 P2=wei[5];
|
|
|
|
|
45 1 times(1);
|
|
|
|
|
46 1 P2=0xff;
|
|
|
|
|
47 1
|
|
|
|
|
48 1 P0=duan[thousand];
|
|
|
|
|
49 1 P2=wei[4];
|
|
|
|
|
50 1 times(1);
|
|
|
|
|
51 1 P2=0xff;
|
|
|
|
|
52 1
|
|
|
|
|
53 1 P0=duan[tthousand];
|
|
|
|
|
54 1 P2=wei[3];
|
|
|
|
|
C51 COMPILER V9.59.0.0 CLOCK 10/13/2018 20:41:27 PAGE 2
|
2018-05-23 00:12:48 +08:00
|
|
|
|
|
2018-10-16 14:29:38 +08:00
|
|
|
|
55 1 times(1);
|
|
|
|
|
56 1 P2=0xff;
|
|
|
|
|
57 1
|
|
|
|
|
58 1 P0=duan[oht];
|
|
|
|
|
59 1 P2=wei[2];
|
|
|
|
|
60 1 times(1);
|
|
|
|
|
61 1 P2=0xff;
|
|
|
|
|
62 1 }
|
|
|
|
|
63
|
|
|
|
|
64 void main()
|
|
|
|
|
65 {
|
|
|
|
|
66 1 TR0=1;
|
|
|
|
|
67 1 EA=1;
|
|
|
|
|
68 1 TMOD=0x01;
|
|
|
|
|
69 1 ET0=1;
|
|
|
|
|
70 1 TH0=(65535-50000)/256;
|
|
|
|
|
71 1 TL0=(65535-50000)%256;
|
|
|
|
|
72 1
|
|
|
|
|
73 1 while(1)
|
|
|
|
|
74 1 {
|
|
|
|
|
75 2 display();
|
|
|
|
|
76 2
|
|
|
|
|
77 2 if(k1==0)
|
|
|
|
|
78 2 TR0=1;
|
|
|
|
|
79 2 else if(k2==0)
|
|
|
|
|
80 2 TR0=0;
|
|
|
|
|
81 2 else if(k3==0) {
|
|
|
|
|
82 3 second=0;
|
|
|
|
|
83 3 minute=0;
|
|
|
|
|
84 3 hour=0;
|
|
|
|
|
85 3 }
|
|
|
|
|
86 2 else if(TR0==0 && k4==0)
|
|
|
|
|
87 2 {
|
|
|
|
|
88 3 second=second+1;
|
|
|
|
|
89 3 while(!k4) {
|
|
|
|
|
90 4 display();
|
|
|
|
|
91 4 }
|
|
|
|
|
92 3 }
|
|
|
|
|
93 2 else if(TR0==0 && k5==0) {
|
|
|
|
|
94 3 minute=minute+1;
|
|
|
|
|
95 3 while(!k5) {
|
|
|
|
|
96 4 display();
|
|
|
|
|
97 4 }
|
|
|
|
|
98 3 }
|
|
|
|
|
99 2 else if(TR0==0 && k6==0) {
|
|
|
|
|
100 3 hour=hour+1;
|
|
|
|
|
101 3 while(!k6) {
|
|
|
|
|
102 4 display();
|
|
|
|
|
103 4 }
|
|
|
|
|
104 3 }
|
|
|
|
|
105 2
|
|
|
|
|
106 2
|
|
|
|
|
107 2 if(t==20){
|
|
|
|
|
108 3 t=0;
|
|
|
|
|
109 3 second=second+1;
|
|
|
|
|
110 3 }
|
|
|
|
|
111 2 else if(second==60) {
|
|
|
|
|
112 3 second=0;
|
|
|
|
|
113 3 minute=minute+1;
|
|
|
|
|
114 3 }
|
|
|
|
|
115 2 else if(minute==60) {
|
|
|
|
|
116 3 minute=0;
|
|
|
|
|
C51 COMPILER V9.59.0.0 CLOCK 10/13/2018 20:41:27 PAGE 3
|
2018-05-23 00:12:48 +08:00
|
|
|
|
|
2018-10-16 14:29:38 +08:00
|
|
|
|
117 3 hour=hour+1;
|
|
|
|
|
118 3 }
|
|
|
|
|
119 2 else if(hour==24) {
|
|
|
|
|
120 3 hour=0;
|
|
|
|
|
121 3 }
|
|
|
|
|
122 2
|
|
|
|
|
123 2 display();
|
|
|
|
|
124 2 }
|
|
|
|
|
125 1 }
|
|
|
|
|
126
|
|
|
|
|
127 void int0() interrupt 1
|
|
|
|
|
128 {
|
|
|
|
|
129 1 t++;
|
|
|
|
|
130 1 TH0=(65535-50000)/256;
|
|
|
|
|
131 1 TL0=(65535-50000)%256;
|
|
|
|
|
132 1 }
|
2018-05-23 00:12:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
2018-10-16 14:29:38 +08:00
|
|
|
|
CODE SIZE = 504 ----
|
2018-05-23 00:12:48 +08:00
|
|
|
|
CONSTANT SIZE = 24 ----
|
|
|
|
|
XDATA SIZE = ---- ----
|
|
|
|
|
PDATA SIZE = ---- ----
|
|
|
|
|
DATA SIZE = 20 ----
|
|
|
|
|
IDATA SIZE = ---- ----
|
|
|
|
|
BIT SIZE = ---- ----
|
|
|
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|