📄 电子琴.lst
字号:
C51 COMPILER V8.02 电子琴 12/04/2008 12:29:48 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 电子琴
OBJECT MODULE PLACED IN 电子琴.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 电子琴.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2
3 unsigned int code tab[]={64400,
4 64524,64580,64684,64777,
5 64820,64898,64968,65030,
6 65058,65110,65157,65178,65217,65252,65283};
7
8
9
10 sbit p17=P1^7;
11 unsigned char pTH0;
12 unsigned char pTL0;
13 unsigned char jTH1;
14 unsigned char jTL1;
15 unsigned char k;
16
17 void sys_Init() //系统初始化
18 {
19 1 TMOD = 0x11; //定时器0 方式1
20 1 TH0=0xFF;
21 1 TL0=0xF6;
22 1 ET0 = 1; //允许定时器0中断
23 1 ET1 = 1; //允许定时器1中断
24 1
25 1 EX0 = 1; //外中断0开启
26 1 EX1 = 1;
27 1
28 1 IT0 = 1; //下降沿触发
29 1 IT1 = 1;
30 1
31 1 EA = 1;
32 1 }
33
34 void delay1(unsigned char m)
35 {
36 1 unsigned char i,j;
37 1 for(i=0;i<m;i++)
38 1 for(j=0;j<20;j++);
39 1 }
40
41 void getch()
42 {
43 1 unsigned char X,Y,Z;
44 1 P2=0xff; //P2口的所有端口置高电平
45 1 P2=0x0f; //行置1
46 1 if(P2!=0x0f) //可能有键按下
47 1 {
48 2 delay1(10); //去除按键抖动
49 2 if(P2!=0x0f) //确实有键按下
50 2 {
51 3 X=P2; //保存P2的值
52 3 P2=0xf0; //列置1
53 3 Y=P2;
54 3 Z=X|Y; //取键盘值
55 3 switch(Z)
C51 COMPILER V8.02 电子琴 12/04/2008 12:29:48 PAGE 2
56 3 {
57 4 case 0x77: k=0; break;
58 4 case 0x7b: k=1; break;
59 4 case 0x7d: k=2; break;
60 4 case 0x7e: k=3; break;
61 4 case 0xb7: k=4; break;
62 4 case 0xbb: k=5; break;
63 4 case 0xbd: k=6; break;
64 4 case 0xbe: k=7; break;
65 4 case 0xd7: k=8; break;
66 4 case 0xdb: k=9; break;
67 4 case 0xdd: k=10;break;
68 4 case 0xde: k=11;break;
69 4 case 0xe7: k=12;break;
70 4 case 0xeb: k=13;break;
71 4 case 0xed: k=14;break;
72 4 case 0xee: k=15;break;
73 4 }
74 3
75 3 pTH0=tab[k]/256;
76 3 pTL0=tab[k]%256;
77 3 TR0=1;
78 3 while(P2!=0xf0);TR0=0;p17=1;//检测按键是否弹起
79 3 }
80 2 }
81 1 }
82
83 void main()
84 {
85 1 sys_Init();
86 1 while(1)
87 1 {
88 2 getch();
89 2 }
90 1 }
91
92
93 void Timer0() interrupt 1
94 {
95 1 TH0=pTH0;
96 1 TL0=pTL0;
97 1 p17=~p17;
98 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 268 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -