📄 key_4x3.lst
字号:
C51 COMPILER V8.05a KEY_4X3 11/30/2008 13:26:22 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEY_4X3
OBJECT MODULE PLACED IN key_4x3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key_4x3.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "key_4x3.h"
2
3 void delay2ms(uchar m)
4 {
5 1 uchar n, s;
6 1 for (; m--; )
7 1 {
8 2 for (n = 16; n--;)
9 2 {
10 3 for (s=S; s--;)
11 3 {
12 4 }
13 3 }
14 2 }
15 1 }
16
17 void delay5us(uchar u)
18 {
19 1 u *= CLK;
20 1 while (--u);
21 1 }
22 /***************底层函数******************/
23 uchar Read_io() //ok
24 {
25 1 uchar tmp;
26 1 tmp = Px; //读入数据
27 1 tmp = (tmp >> MOVE) & 0x0f; //处理数据
28 1 return(tmp);
29 1 }
30
31 void Write_io(uchar value) //ok
32 {
33 1 uchar tmp = 0x0f;
34 1 Px = Px & ~(tmp << MOVE); //键盘口清0
35 1 Px = Px | (value << MOVE); //装入数值
36 1 }
37
38 /****************主函数*******************/
39 uchar KEY_value(uchar key,uchar wait)
40 {
41 1 uchar code _value[]={14,13,11,7}, _key[]={12,10,6,12,9,5,10,9,3,6,5,3};
42 1 --key;
43 1 Write_io(_value[key/3]);
44 1 if(Read_io() == _key[key])
45 1 {
46 2 delay2ms(14);
47 2 if(Read_io() == _key[key])
48 2 if(!wait)
49 2 return(1);
50 2 else
51 2 {
52 3 while(Read_io() == _key[key])
53 3 {}
54 3 return(1);
55 3 }
C51 COMPILER V8.05a KEY_4X3 11/30/2008 13:26:22 PAGE 2
56 2 else return(0);
57 2 }
58 1 else return(0);
59 1 }
60
61 uchar KEY_num(uchar wait)
62 {
63 1 uchar num;
64 1 for(num=1;num<13;num++)
65 1 {
66 2 if(KEY_value(num,wait))
67 2 {return(num);break;}
68 2 }
69 1 }
70
71 uchar KEY_wait()
72 {
73 1 uchar tmp;
74 1 while(!(tmp = KEY_num(0)));
75 1 return tmp;
76 1 }
77 /***********/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 143 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -