📄 key_4x3.lst
字号:
C51 COMPILER V8.02 KEY_4X3 11/22/2008 13:59:22 PAGE 1
C51 COMPILER V8.02, 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
2 #include"key_4x3.h"
3
4
5 /*******************************
6 *不是很精确,设计允许10%以内的误差
7 *Ver:1.0 0736
8 *Ver:2.0 0804
9 * Ary9006
10 ********************************/
11 void delay2ms(uchar m)
12 {
13 1 uchar n, s;
14 1 for (; m--; )
15 1 {
16 2 for (n = 16; n--;)
17 2 {
18 3 for (s=S; s--;)
19 3 {
20 4 }
21 3 }
22 2 }
23 1 }
24
25 void delay5us(uchar u)
26 {
27 1 u *= CLK;
28 1 while (--u);
29 1 }
30 /***************底层函数******************/
31 uchar Read_io() //ok
32 {
33 1 uchar tmp;
34 1 tmp = Px; //读入数据
35 1 tmp = (tmp >> MOVE) & 0x0f; //处理数据
36 1 return(tmp);
37 1 }
38
39 void Write_io(uchar value) //ok
40 {
41 1 uchar tmp = 0x0f;
42 1 Px = Px & ~(tmp << MOVE); //键盘口清0
43 1 Px = Px | (value << MOVE); //装入数值
44 1 }
45
46 /****************主函数*******************/
47 uchar KEY_value(uchar key,uchar wait)
48 {
49 1 uchar code _value[]={14,13,11,7}, _key[]={12,10,6,12,9,5,10,9,3,6,5,3};
50 1 --key;
51 1 Write_io(_value[key/3]);
52 1 if(Read_io() == _key[key])
53 1 {
54 2 delay2ms(14);
55 2 if(Read_io() == _key[key])
C51 COMPILER V8.02 KEY_4X3 11/22/2008 13:59:22 PAGE 2
56 2 if(!wait)
57 2 return(1);
58 2 else
59 2 {
60 3 while(Read_io() == _key[key])
61 3 {}
62 3 return(1);
63 3 }
64 2 else return(0);
65 2 }
66 1 else return(0);
67 1 }
68
69 uchar KEY_num(uchar wait)
70 {
71 1 uchar num;
72 1 for(num=1;num<13;num++)
73 1 {
74 2 if(KEY_value(num,wait))
75 2 {return(num);break;}
76 2 }
77 1 }
78
79 uchar KEY_wait()
80 {
81 1 uchar tmp;
82 1 while(!(tmp = KEY_num(0)));
83 1 return tmp;
84 1 }
85 /***********/
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 + -