📄 dianzhiqin.lst
字号:
C51 COMPILER V8.09 DIANZHIQIN 11/30/2007 19:19:04 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE DIANZHIQIN
OBJECT MODULE PLACED IN C:\DOCUME~1\ADMINI~1\桌面\电子琴\DIANZHIQIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\ADMINI~1\桌面\电子琴\DIANZHIQIN.C DB SB OE
line level source
1 #include <reg52.h>
2 sbit P2_0=P2^0;
3 sbit q3=P3^3;
4 unsigned char i,j,m;
5 void delay()
6 {
7 1 for(i=0;i<255;i++)
8 1 {
9 2 for(j=0;j<255;j++);
10 2
11 2 }
12 1 }
13
14 void delay1()
15 {
16 1 for(i=0;i<255;i++);
17 1
18 1 }
19 int delayfayin(int t)
20 {
21 1 int i1,j1;
22 1 for(i1=0;i1<t;i1++)
23 1 for(j1=0;j1<200;j1++);
24 1 }
25 //各个音符的方波的计数初值
26 void fangbof(int y)
27 {
28 1 switch(y)
29 1 {
30 2 case 0: //停止
31 2 P2_0=1 ;
32 2 break;
33 2 case 1: //1
34 2 TH0=0x4d;
35 2 TL0=0xf7;
36 2 break;
37 2 case 2: //2
38 2 TH0=0x24;
39 2 TL0=0xf8;
40 2 break;
41 2 case 3:
42 2 TH0=0xfa;
43 2 TL0=0x12;
44 2 break;
45 2 case 4:
46 2 TH0=0xfa;
47 2 TL0=0x67;
48 2 break;
49 2 case 5:
50 2 TH0=0xfb;
51 2 TL0=0x03;
52 2 break;
53 2 case 6:
54 2 TH0=0xfb;
55 2 TL0=0x8f;
C51 COMPILER V8.09 DIANZHIQIN 11/30/2007 19:19:04 PAGE 2
56 2 break;
57 2 case 7:
58 2 TH0=0xfc;
59 2 TL0=0x0b;
60 2 break;
61 2 }
62 1 }
63 void dyf(int x)
64 {
65 1 int m;
66 1 fangbof(x);
67 1 switch(x)
68 1 {
69 2 case 0:
70 2 TR0=0; //0停止计数
71 2 break;
72 2 default:
73 2 TR0=1; //否则计数
74 2 break;
75 2 }
76 1 m=1;
77 1 while(m)
78 1 {
79 2 delayfayin(100);
80 2 m=0;
81 2 }
82 1 TR0=0;
83 1 P2_0=1;
84 1 }
85 main()
86 {
87 1 TMOD=0x01;
88 1 EA=1;ET0=1;
89 1 while(1)
90 1 {
91 2 P1=0xFF;
92 2 P2=0xFF;
93 2 q3=0;
94 2 while(P2==0xFF);
95 2 m=P2&0xFC;
96 2 if(m==0x7C) //按一键 显示一
97 2 {
98 3 delay1(); //短时沿去抖动
99 3 if(m==0x7C)
100 3 {
101 4 P2=0x7F;
102 4 P0=0xF9;
103 4 dyf(1);
104 4 delay();
105 4
106 4 P2=0xFF;
107 4 P0=0xFF;
108 4 }
109 3 }
110 2 if(m==0xBC) //按二键 显示二
111 2 {
112 3 delay1(); //短时沿去抖动
113 3 if(m==0xBC)
114 3 {
115 4 P2=0xBF;
116 4 P0=0xA4;
117 4 dyf(2);
C51 COMPILER V8.09 DIANZHIQIN 11/30/2007 19:19:04 PAGE 3
118 4 delay();
119 4 P2=0xFF;
120 4 P0=0xFF;
121 4 }
122 3 }
123 2 if(m==0xDC) //按三键 显示三
124 2 {
125 3 delay1(); //短时沿去抖动
126 3 if(m==0xDC)
127 3 {
128 4 P2=0xDF;
129 4 P0=0xB0;
130 4 dyf(3);
131 4 delay();
132 4 P2=0xFF;
133 4 P0=0xFF;
134 4 }
135 3 }
136 2 if(m==0xEC) //按四键 显示四
137 2 {
138 3 delay1(); //短时沿去抖动
139 3 if(m==0xEC)
140 3 {
141 4 P2=0xEF;
142 4 P0=0x99;
143 4 dyf(4);
144 4 delay();
145 4 P2=0xFF;
146 4 P0=0xFF;
147 4 }
148 3 }
149 2 if(m==0xF4) //按五键 显示五
150 2 {
151 3 delay1(); //短时沿去抖动
152 3 if(m==0xF4)
153 3 {
154 4 P2=0xF7;
155 4 P0=0x92;
156 4 dyf(5);
157 4 delay();
158 4 P2=0xFF;
159 4 P0=0xFF;
160 4 }
161 3 }
162 2 if(m==0xF8) //按六键 显示六
163 2 {
164 3 delay1(); //短时沿去抖动
165 3 if(m==0xF8)
166 3 {
167 4 P2=0xFB;
168 4 P0=0x82;
169 4 dyf(6);
170 4 delay();
171 4 P2=0xFF;
172 4 P0=0xFF;
173 4 }
174 3 }
175 2
176 2
177 2 }
178 1 }
179 void mop(void) interrupt 1
C51 COMPILER V8.09 DIANZHIQIN 11/30/2007 19:19:04 PAGE 4
180 {
181 1 P2_0=~P2_0;
182 1
183 1 }
C51 COMPILER V8.09 DIANZHIQIN 11/30/2007 19:19:04 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
delay. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0005H -----
P2_0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
q3 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_delayfayin. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
t. . . . . . . . . . . . . . . . . . * REG * DATA INT 0006H 2
i1 . . . . . . . . . . . . . . . . . * REG * DATA INT 0004H 2
j1 . . . . . . . . . . . . . . . . . * REG * DATA INT 0002H 2
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
delay1 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_dyf . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . * REG * DATA INT 0004H 2
m. . . . . . . . . . . . . . . . . . * REG * DATA INT 0006H 2
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
mop. . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
_fangbof . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
y. . . . . . . . . . . . . . . . . . * REG * DATA INT 0006H 2
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
i. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
j. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0001H 1
m. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 432 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -