📄 havekey.lst
字号:
C51 COMPILER V7.02a HAVEKEY 05/04/2004 07:30:33 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE HAVEKEY
OBJECT MODULE PLACED IN HAVEKEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HAVEKEY.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /***************************************************************
2 功能:识别有无按键,当有键按下蜂鸣器发声,直至松开后停止发声
3 作者:SG
4 时间:2004-03-15
5 版本:V1.0
6 ***************************************************************/
7
8 sfr KeyPort = 0x90;
9 sbit col1 = 0x96; //对应CPU管脚P1.6
10 sbit col2 = 0x97; //对应CPU管脚P1.7
11
12 sbit _Speak = 0xb2; //对应CPU管脚P1.2
13
14 /*-------------------------------------------------
15 功能100uS延时子程序
16 -------------------------------------------------*/
17 void Delay_xuS(unsigned int x)
18 {
19 1 unsigned int i,j;
20 1 for( i =0;i < x;i++ )
21 1 {
22 2 for( j =0;j<50;j++ );
23 2 }
24 1 }
25
26 /*--------------------------------------------------
27 功能:发音子程序每调用一次响一下
28 ---------------------------------------------------*/
29 void Song()
30 {
31 1 unsigned char i;
32 1 for( i = 0;i < 10;i++)
33 1 {
34 2 _Speak = 0;
35 2 Delay_xuS(1);
36 2 _Speak = 1;
37 2 Delay_xuS(1);
38 2 }
39 1 }
40 /*--------------------------------------------------
41 功能:判别有无按键按下,无返回0,有按下使蜂鸣器发声
42 并直到按键松开,返回1
43 ---------------------------------------------------*/
44 bit haveKey()
45 {
46 1 unsigned char temp;
47 1 KeyPort = 0xFF;
48 1 col1 = 0; //扫描线置低
49 1 col2 = 0; //扫描线置低
50 1 temp = KeyPort ; //读键盘端口
51 1 if( (temp & 0x30) == 0x30 ) //等于FF表示没键按下
52 1 {
53 2 return(0); //无按键返回0
54 2 }
55 1
C51 COMPILER V7.02a HAVEKEY 05/04/2004 07:30:33 PAGE 2
56 1 do
57 1 {
58 2 Song(); //发声
59 2 temp = KeyPort; //读键盘
60 2 }while(temp ==0x30);
61 1 return(1); //有按键返回1
62 1 }
63
64 /*--------------------------------------------------
65 主程序
66 功能:识别有无按键,当有键按下蜂鸣器发声,
67 直至松开后停止发声
68 ---------------------------------------------------*/
69 void main()
70 {
71 1 while(1)
72 1 {
73 2 if ( haveKey() ) //识别有无按键
74 2 {
75 3 _Speak = 1; //停止发声
76 3 }
77 2 }
78 1 }
79
80
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 92 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -