📄 led.lst
字号:
C51 COMPILER V7.08 LED 03/17/2008 09:53:11 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2
3 unsigned char zimo[10]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
4 0x99,0x92,0x82,0xf8,0x80,0x90};// 4, 5, 6, 7, 8, 9
5 unsigned char disflag[4]={0xfe,0xfd,0xfb,0xf7};
6 unsigned char disbuf[4];
7 unsigned char n;
8 unsigned char flag;
9 unsigned char key;
10 unsigned char KeyDelaytime;
11 unsigned char Key_v;
12 unsigned char Keystate;
13 #define KEY_DELAY_TIME 10
14 #define KEY_IDEL 0x00
15 #define KEY_DELAY 0x01
16 #define WAIT_KEY_OPEN 0x02
17 sbit AN1 = P3^2;
18 sbit AN2 = P3^3;
19
20 void scan_key()
21 {
22 1 switch(Keystate)
23 1 {
24 2 case KEY_IDEL :
25 2 P3=0xff;
26 2 Key_v=AN1;
27 2 if((Key_v&0x01)==0)
28 2 {
29 3 Keystate=KEY_DELAY;
30 3 KeyDelaytime=0;
31 3 }
32 2 break;
33 2 case KEY_DELAY :
34 2 if(KeyDelaytime>=KEY_DELAY_TIME)
35 2 {
36 3 P3=0xff;
37 3 Key_v=AN1;
38 3 if((Key_v&0x01)==0)
39 3 {
40 4 key++;
41 4 if(key==6)key=0;
42 4 Keystate=WAIT_KEY_OPEN;
43 4 }
44 3 else
45 3 {
46 4 Keystate=KEY_IDEL;
47 4 }
48 3 }
49 2 break;
50 2 case WAIT_KEY_OPEN :
51 2 P3=0xff;
52 2 Key_v=AN1;
53 2 if(Key_v&0x01)Keystate=KEY_IDEL;
54 2 break;
55 2 }
C51 COMPILER V7.08 LED 03/17/2008 09:53:11 PAGE 2
56 1
57 1
58 1 }
59 int main()
60 {
61 1 unsigned char i;
62 1 P0 = 0xff;
63 1 P2 = 0xff;
64 1 TMOD = 0x01;
65 1 TH0 = 0xfc;
66 1 TL0 = 0x18;
67 1 IE = 0x82;
68 1 key=0;
69 1 flag=0;
70 1 n=0;
71 1 for(i=0;i<4;i++)
72 1 {
73 2 disbuf[i]=zimo[i];
74 2 }
75 1 TR0=1;
76 1 while(1)
77 1 {
78 2 scan_key();
79 2 }
80 1 return 0;
81 1 }
82
83 void timer0(void) interrupt 1
84 {
85 1 TH0=0xfc;
86 1 TL0=0x18;
87 1 KeyDelaytime++;
88 1 if(flag<key+1)
89 1 {
90 2 P0=disbuf[n];
91 2 P2=disflag[n];
92 2 }
93 1 else
94 1 {
95 2 P2=0xff;
96 2 P0=0;
97 2 }
98 1 flag++;
99 1 if(flag==6)
100 1 {
101 2 n++;
102 2 if(n==4)
103 2 {
104 3 n=0;
105 3 }
106 2 flag=0;
107 2 }
108 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 226 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 ----
IDATA SIZE = ---- ----
C51 COMPILER V7.08 LED 03/17/2008 09:53:11 PAGE 3
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 + -