📄 cs11-1.lst
字号:
C51 COMPILER V7.06 CS11_1 01/07/2007 13:22:54 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CS11_1
OBJECT MODULE PLACED IN CS11-1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CS11-1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <REG51.H>
2 #define uchar unsigned char
3 #define uint unsigned int
4 uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
5 uchar ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
6 //========================
7 uchar status_flag;
8 uint year;
9 uchar month;
10 uchar day;
11 uchar temp_year_l,temp_month;
12 uchar temp_year_h;
13 //---------------------------------------
14 void key_S1(void);
15 void key_S2(void);
16 void key_S4(void);
17 void delay(uint k);
18 uchar conv(uint year,uchar month);
19 //----------------------------------------
20 void main(void)
21 { uchar i;
22 1 uint temp1,temp2;
23 1 while(1)
24 1 { key_S4();
25 2 switch(status_flag)
26 2 {
27 3 case 0: key_S1();temp1=temp_year_l;
28 3 key_S2();temp2=temp_year_h;break;
29 3 case 1: key_S1();month=temp_month;break;
30 3 default :break;
31 3 }
32 2 year=temp1+(temp2*100);
33 2 //---------------------------
34 2 day=conv(year,month);
35 2 //------------------------------
36 2 for(i=0;i<40;i++)
37 2 {
38 3 switch(status_flag)
39 3 {
40 4 case 0:P0=SEG7[year%10];P2=ACT[4];delay(1);
41 4 P0=SEG7[(year%100)/10];P2=ACT[5];delay(1);
42 4 P0=SEG7[(year/100)%10];P2=ACT[6];delay(1);
43 4 P0=SEG7[year/1000];P2=ACT[7];delay(1);break;
44 4 case 1:P0=SEG7[month%10];P2=ACT[2];delay(2);
45 4 P0=SEG7[month/10];P2=ACT[3];delay(2);break;
46 4 case 2:if(day){ P0=SEG7[day%10];P2=ACT[0];delay(2);
47 5 P0=SEG7[day/10];P2=ACT[1];delay(2);}
48 4 else{ P0=0x00;P2=0xff;delay(2);
49 5 P0=0x00;P2=0xff;delay(2);}break;
50 4 default :break;
51 4 }
52 3 }
53 2 }
54 1 }
55 //----------------------------------------------
C51 COMPILER V7.06 CS11_1 01/07/2007 13:22:54 PAGE 2
56 void delay(uint k)
57 {
58 1 uint i,j;
59 1 for(i=0;i<k;i++){
60 2 for(j=0;j<121;j++)
61 2 {;}}
62 1 }
63 //-----------------------------------------------
64 void key_S1(void)
65 {
66 1 P3=0xff;
67 1 if(P3==0xfb)
68 1 {
69 2 switch(status_flag)
70 2 {
71 3 case 0:temp_year_l++;
72 3 if(temp_year_l>99)temp_year_l=0;break;
73 3 case 1:temp_month++;
74 3 if(temp_month>12)temp_month=1;break;
75 3 default :break;
76 3 }
77 2 }
78 1 }
79 //---------------------------------------------
80 void key_S2(void)
81 {
82 1 P3=0xff;
83 1 if(P3==0xf7)
84 1 {
85 2 switch(status_flag)
86 2 {
87 3 case 0:temp_year_h++;
88 3 if(temp_year_h>99)temp_year_h=0;break;
89 3 default :break;
90 3 }
91 2 }
92 1 }
93 //---------------------------------------------
94 void key_S4(void)
95 {
96 1 P3=0xff;
97 1 if(P3==0xdf)status_flag++;
98 1 if(status_flag>2)status_flag=0;
99 1 }
100
101 //---------------------------------------------
102 uchar conv(uint year,uchar month)
103 {uchar len;
104 1 switch(month)
105 1 {
106 2 case 1:len=31;break;
107 2 case 3:len=31;break;
108 2 case 5:len=31;break;
109 2 case 7:len=31;break;
110 2 case 8:len=31;break;
111 2 case 10:len=31;break;
112 2 case 12:len=31;break;
113 2 case 4:len=30;break;
114 2 case 6:len=30;break;
115 2 case 9:len=30;break;
116 2 case 11:len=30;break;
117 2 case 2:if(year%4==0&&year%100!=0||year%400==0)len=29;
C51 COMPILER V7.06 CS11_1 01/07/2007 13:22:54 PAGE 3
118 2 else len=28;break;
119 2 default:return 0;break;
120 2 }
121 1 return len;
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 621 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 7
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 + -