📄 key.lst
字号:
C51 COMPILER V7.50 KEY 02/11/2009 16:16:20 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /************************************************************************
2 *文件名:KEY。C *
3 *功能: 高频实验箱DDS程序。 *
4 *作者: 杨乐 *
5 *日期: 2009年1月21日 *
6 ************************************************************************/
7 #include<REG52.h>
8 #include<intrins.h>
9 #include<absacc.h>
10 #include"key.h"
11 /************************************************************************
12 *作者: 杨乐 *
13 *函数名: Read_key *
14 *功能: 键盘扫描 *
15 *入口参数:无 *
16 *返回值: 有 *
17 *日期: 2009年1月21日 *
18 ************************************************************************/
19 unsigned char Read_key()
20 {
21 1 unsigned char scancode;
22 1 unsigned char i,j,key_value,tmp; //key_down ;
23 1
24 1
25 1 KeyPort = 0x0F;
26 1 _nop_();
27 1 tmp = (KeyPort&0x0F)^0x0F;
28 1
29 1 if (!tmp)
30 1 return 0xFF; //无按键
31 1
32 1 scancode = 0x7F;
33 1 for (i = 0; i<4; i++)
34 1 {
35 2 KeyPort = scancode;
36 2 _nop_();
37 2 tmp = (KeyPort | 0xF0);
38 2 if (tmp != 0xFF)
39 2 {
40 3 tmp = ~tmp;
41 3
42 3 for (j = 4; j >0 ; j--)
43 3 {
44 4 tmp = tmp>>1;
45 4 if (tmp == 0)
46 4 {
47 5 key_value = i + (j-1)*4;
48 5 break;
49 5 }
50 4 }
51 3 }
52 2 scancode = scancode>>1;
53 2 scancode += 0x80;
54 2 }
55 1 return 15-key_value;
C51 COMPILER V7.50 KEY 02/11/2009 16:16:20 PAGE 2
56 1 }
57
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 69 ----
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 + -