📄 08.lst
字号:
C51 COMPILER V7.50 08 05/30/2008 22:38:37 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 08
OBJECT MODULE PLACED IN 08.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 08.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 code unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x86};
3 unsigned char c;
4 unsigned char time;
5 unsigned char keynum;
6 unsigned char i;
7 sbit speak=P3^7;
8 bit keyflag;
9 bit key=1;
10 bit b=1;
11
12 void delay()
13 {unsigned int m,n;
14 1 for(m=0;m<2;m++)
15 1 {
16 2 for(n=0;n<200;n++);
17 2
18 2 }
19 1 }
20
21 void time0() interrupt 1 using 2
22 {
23 1 if(c==20)
24 1 { c=1;
25 2 if(time)
26 2 {
27 3 --time;
28 3 }
29 2 else
30 2 {
31 3 time=0X00;
32 3 keyflag=0;
33 3 for(i=0;i<50;i++)
34 3 {speak=~speak;
35 4 delay();}
36 3
37 3 TR0=0;
38 3 }
39 2 P1=seg[time/10];
40 2 P0=seg[time%10];
41 2 }
42 1 else
43 1 ++c;
44 1
45 1 TH0=15536/256;//T0初值,50ms中断一次
46 1 TL0=15536%256;
47 1 }
48
49
50 void int0() interrupt 0 using 2
51 {
52 1
53 1 keyflag=1;
54 1 b=0;
55 1 time=30;
C51 COMPILER V7.50 08 05/30/2008 22:38:37 PAGE 2
56 1 for(i=0;i<50;i++)
57 1 {speak=~speak;
58 2 delay();}
59 1
60 1 P1=seg[time/10];
61 1 P0=seg[time%10];
62 1 TR0=1;
63 1
64 1 }
65
66
67
68 void main()
69 {
70 1 unsigned char keystatus;
71 1
72 1 speak=0;
73 1 TCON=0X00;
74 1 TMOD=0X01;
75 1 TH0=15536/256;//T0初值,50ms中断一次
76 1 TL0=15536%256;
77 1 IE=0X83;
78 1
79 1 while(1)
80 1 {
81 2 while(keyflag){
82 3 P2=0Xff;
83 3 keystatus=P2;
84 3 if(~keystatus)
85 3 {
86 4 for(i=0;i<50;i++)
87 4 {speak=~speak;
88 5 delay();}
89 4 switch (keystatus){
90 5 case 0xfe:keynum=1; break;
91 5 case 0xfd:keynum=2; break;
92 5 case 0xfb:keynum=3; break;
93 5 case 0xf7:keynum=4; break;
94 5 case 0xef:keynum=5; break;
95 5 case 0xdf:keynum=6; break;
96 5 case 0xbf:keynum=7; break;
97 5 case 0x7f:keynum=8; break;
98 5 default : keynum=0;break;
99 5 }////switch
100 4 if(keynum)
101 4 { TR0=0;
102 5 keyflag=0;
103 5
104 5 P1=seg[keynum/10];
105 5 P0=seg[keynum%10];
106 5 }////////if(keynum)///////////////////
107 4 }/////////if(~keystatus)////////////////
108 3 }/////while(ketflag)
109 2 while((key=1)&&(b))
110 2 {
111 3 P2=0Xff;
112 3 keystatus=P2;
113 3 if(~keystatus)
114 3 {
115 4 for(i=0;i<50;i++)
116 4 {speak=~speak;
117 5 delay();}
C51 COMPILER V7.50 08 05/30/2008 22:38:37 PAGE 3
118 4 switch (keystatus){
119 5 case 0xfe:keynum=1; break;
120 5 case 0xfd:keynum=2; break;
121 5 case 0xfb:keynum=3; break;
122 5 case 0xf7:keynum=4; break;
123 5 case 0xef:keynum=5; break;
124 5 case 0xdf:keynum=6; break;
125 5 case 0xbf:keynum=7; break;
126 5 case 0x7f:keynum=8; break;
127 5 default : keynum=0;break;
128 5 }////switch
129 4 if(keynum)
130 4 { TR0=0;
131 5 keyflag=0;
132 5
133 5 P1=seg[10];
134 5 P0=seg[keynum%10];
135 5 }////////if(keynum)///////////////////
136 4 }/////////if(~keystatus)////////////////
137 3 }
138 2 }////while(1)
139 1 }/////mian
140
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 504 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 1
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -