📄 send.lst
字号:
C51 COMPILER V6.23a SEND 04/15/2006 20:23:32 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE SEND
OBJECT MODULE PLACED IN send.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE send.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <at89x52.h>
2 unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66 ,0x6d ,0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c};
3 unsigned char keyvalue;
4 void delay(unsigned char j)
5 {
6 1 unsigned char m,k;
7 1 for(m=0;m<j;m++)
8 1 for(k=0;k<255;k++);
9 1 }
10
11 void Serialinit(void)
12 {
13 1 TMOD = (TMOD & 0x0F) | 0x20; //T1工作方式
14 1 TH1 = -6; //波特率初始值 注意用倍频方式
15 1 PCON |= 0x00; //SMOD = 1
16 1 TR1 = 1;
17 1 SCON = 0x40; //REN = 1
18 1 ES = 1;
19 1 EA = 1; }
20 void RS232_intr( void ) interrupt 4 //注意RI和TI任一位变为1都中断
21 {
22 1
23 1 if( TI == 1 ){ TI=0;SBUF=keyvalue;
24 2 while(TI==0);TI=0; }
25 1
26 1
27 1 }
28 /*void Key()
29 {
30 unsigned char x,y,key;
31
32 P2=0xf0;
33 x=P2;
34 x=x&0xf0;
35 P2=0x0f;
36 y=P2;
37 y=y&0x0e;
38 key=x|y;
39 if(key==254) return;
40
41 delay(1);
42 switch(key)
43 {
44 case 236: keyvalue=3; break;
45 case 234: keyvalue=2; break;
46 case 230: keyvalue=1; break;
47
48 case 220: keyvalue=6; break;
49 case 218: keyvalue=5; break;
50 case 214: keyvalue=4; break;
51
52 case 188: keyvalue=9; break;
53 case 186: keyvalue=8; break;
54 case 182: keyvalue=7; break;
55
C51 COMPILER V6.23a SEND 04/15/2006 20:23:32 PAGE 2
56 case 124: keyvalue=0; break;
57 case 122: keyvalue=11; break;
58 case 118: keyvalue=10; break;
59 }
60 P0=a[keyvalue];
61 TI=1;
62
63 }*/
64
65 unsigned char KeyDriver()
66 { unsigned char x,y,key;
67 1 P2=0x0f; //低四位输入1,高四位输出0
68 1 x=P2;
69 1
70 1 //x=x&0x0f; //P2输入后,清高四位,作为X值
71 1 P2=0xf0; //高四位输入1,低四位输出0
72 1
73 1 y=P2;
74 1 //y=y&0xf0; //P2输入后移位到低四位,并清低四位,作为Y值
75 1 key=x|y;
76 1 key=key&0xfe;
77 1 return key;
78 1 }
79
80 unsigned char Key()
81 {
82 1 unsigned char Keyok;
83 1 Keyok=KeyDriver();
84 1 if(Keyok==0xfe)
85 1 {//keyvalue=111;
86 2 return (keyvalue);
87 2 }
88 1 else
89 1 {
90 2
91 2
92 2 switch(Keyok)
93 2 {
94 3 case 0x0ec: keyvalue=3; return(keyvalue);
95 3 case 0x0ea: keyvalue=2; return(keyvalue);
96 3 case 0x0e6: keyvalue=1; return(keyvalue);
97 3 case 220: keyvalue=6; return(keyvalue);
98 3 case 218: keyvalue=5; return(keyvalue);
99 3 case 0x0d6: keyvalue=4; return(keyvalue);
100 3 case 188: keyvalue=9; return(keyvalue);
101 3 case 186: keyvalue=8; return(keyvalue);
102 3 case 182: keyvalue=7; return(keyvalue);
103 3 case 124: keyvalue=11; return(keyvalue);
104 3 case 122: keyvalue=0; return(keyvalue);
105 3 case 118: keyvalue=10; return(keyvalue);
106 3 }
107 2 P0=a[keyvalue];
108 2 TI=1;
109 2 }
110 1 }
111
112 void main( void )
113 {
114 1 Serialinit();
115 1
116 1 while(1)
117 1 { Key();
C51 COMPILER V6.23a SEND 04/15/2006 20:23:32 PAGE 3
118 2 delay(25);}
119 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 218 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 ----
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 + -