📄 cs21-4.lst
字号:
C51 COMPILER V7.06 CS21_4 02/18/2007 13:56:10 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CS21_4
OBJECT MODULE PLACED IN CS21-4.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CS21-4.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 code WEEK_SEG7[8]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,};
6 uchar ACT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
7 uchar deda,sec,min,hour,week=1;
8 uchar cnt;
9 /*****************************************************/
10 void init(void)
11 {
12 1 TMOD=0x11;
13 1 TH0=-(50000/256);
14 1 TL0=-(50000%256);
15 1 ET0=1;
16 1 TR0=1;
17 1 TH1=-(1000/256);
18 1 TL1=-(1000%256);
19 1 ET1=1;
20 1 TR1=1;
21 1 EA=1;
22 1 }
23 /******************************************/
24 void time0(void) interrupt 1
25 {
26 1 TH0=-(50000/256);
27 1 TL0=-(50000%256);
28 1 deda++;
29 1 }
30 /*******************************************/
31 void time1(void) interrupt 3
32 {
33 1 TH1=-(1000/256);
34 1 TL1=-(1000%256);
35 1 if(++cnt>7)cnt=0;
36 1 switch (cnt)
37 1 {
38 2 case 0:P0=SEG7[sec%10];P2=ACT[cnt];break;
39 2 case 1:P0=SEG7[sec/10];P2=ACT[cnt];break;
40 2 case 2:P0=SEG7[min%10];P2=ACT[cnt];break;
41 2 case 3:P0=SEG7[min/10];P2=ACT[cnt];break;
42 2 case 4:P0=SEG7[hour%10];P2=ACT[cnt];break;
43 2 case 5:P0=SEG7[hour/10];P2=ACT[cnt];break;
44 2 case 6:P0=0x00;P2=0xff;break;
45 2 case 7:P0=WEEK_SEG7[week];P2=ACT[cnt];break;
46 2 default:break;
47 2 }
48 1 }
49 /***************************************/
50 void conv(void)
51 {
52 1 if(deda>=20){deda=0;sec++;}
53 1 if(sec>=60){sec=0;min++;}
54 1 if(min>=60){min=0;hour++;}
55 1 if(hour>=24){hour=0;week++;}
C51 COMPILER V7.06 CS21_4 02/18/2007 13:56:10 PAGE 2
56 1 if(week>7){week=1;}
57 1 }
58 /*****************************************/
59 void delay(uint k)
60 {
61 1 uint data i,j;
62 1 for(i=0;i<k;i++){
63 2 for(j=0;j<121;j++)
64 2 {;}}
65 1 }
66 /**********************************************/
67 uchar scan_key(void)
68 {
69 1 uchar temp;
70 1 P3=0xff;
71 1 temp=P3;
72 1 if(temp!=0xff)
73 1 {delay(20);
74 2 temp=P3;
75 2 if(temp!=0xff)return temp;
76 2 }
77 1 return 0;
78 1 }
79 /********************************************/
80 void main(void)
81 {uchar key_flag;
82 1 init();
83 1 while(1)
84 1 {
85 2 conv();
86 2 key_flag=scan_key();
87 2 switch(key_flag)
88 2 {
89 3 case 0xfb:if(++min>59)min=0;delay(300);break;
90 3 case 0xf7:if(++hour>23)hour=0;delay(300);break;
91 3 case 0xef:if(++week>7)week=1;delay(300);break;
92 3 default:break;
93 3 }
94 2 }
95 1 }
96
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 375 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
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 + -