📄 key.lst
字号:
C51 COMPILER V6.23a KEY 04/10/2007 16:25:31 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN KEY.OBJ
COMPILER INVOKED BY: e:\mcs51\Keil\C51\BIN\C51.EXE KEY.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char
2 #define uint unsigned int
3 #define k0 18
4 #define kr 27
5 #define kl 26
6 #define km 25
7 #define slv7290 0x70
8 #define subkey 0x01
9 #define subcmd 0x07
10 #define subdpr 0x10
11 #define key readbuf[0]
12 #define keyrp readbuf[1]
13 #define funkey readbuf[2]
14
15 bit editmode=0;
16 extern bit I2C_Gets(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat);
17 extern bit I2C_Puts(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat);
18 extern unsigned char scannum;
19 uchar code mb[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};
20 uchar i=0;
21 uchar dpbuf[8];
22 uchar writebuf[2];
23 uchar readbuf[3];
24 long int flag=-1;
25
26 void keypd()
27 {
28 1 uchar keynum;
29 1 while(I2C_Gets(slv7290,subkey,3,&readbuf)==1);
30 1
31 1 if(key<=k0)
32 1 {
33 2 if(flag<7)
34 2 flag++;
35 2 switch(key)
36 2 {
37 3 case 1:keynum=1;break;
38 3 case 2:keynum=2;break;
39 3 case 3:keynum=3;break;
40 3 case 4:keynum=4;break;
41 3 case 9:keynum=5;break;
42 3 case 10:keynum=6;break;
43 3 case 11:keynum=7;break;
44 3 case 12:keynum=8;break;
45 3 case 17:keynum=9;break;
46 3 case 18:keynum=0;break;
47 3 }
48 2 if(editmode==0)
49 2 {
50 3 writebuf[0]=0x10;
51 3 I2C_Puts(slv7290,subcmd,1,&writebuf);
52 3 }
53 2 dpbuf[i]=keynum;
54 2 writebuf[1]=dpbuf[i];
55 2 writebuf[0]=0x60+i;
C51 COMPILER V6.23a KEY 04/10/2007 16:25:31 PAGE 2
56 2 if(editmode)
57 2 writebuf[1]|=0x40;
58 2 // I2C_Puts(slv7290,0x10+flag,1,&mb[flag]);
59 2 /* if(flag>0)
60 2 {
61 2 scannum++;
62 2 I2C_Puts(0x70,0x0d,1,&scannum);
63 2 }
64 2 */ I2C_Puts(slv7290,subcmd,2,&writebuf);
65 2 }
66 1 else
67 1 {
68 2 if(key==km)
69 2 {
70 3 editmode=~editmode;
71 3 i=0;
72 3 }
73 2 writebuf[1]=0x00;
74 2
75 2 if(editmode==1)
76 2 {
77 3 if(key==kl)
78 3 {
79 4 if(i<7)
80 4 i++;
81 4 }
82 3 if(key==kr)
83 3 {
84 4 if(i>0)
85 4 i--;
86 4 }
87 3 writebuf[1]=1;
88 3 writebuf[1]<<=i;
89 3 }
90 2 writebuf[0]=0x70;
91 2 I2C_Puts(slv7290,subcmd,2,&writebuf);
92 2 }
93 1 }
94
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 299 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -