📄 ps2barcode.lst
字号:
C51 COMPILER V7.50 PS2BARCODE 06/25/2007 18:03:14 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PS2BARCODE
OBJECT MODULE PLACED IN ps2barcode.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE ps2barcode.c BROWSE DEBUG OBJECTEXTEND TABS(2)
line level source
1 //#include <AT89X52.h>
2 #include "me.h"
3 #include "disp.h"
4 #include "LCD1602.h"
5 sbit Ps2Dat = P1^0;
6 sbit Ps2Clk = P3^3;//INT1 low
7
8 unsigned char code ASCII[] ="0123456789ABCDEF";
9
10 unsigned int KeyGet( void );
11 unsigned char KeyPut( int KeyVal);
12 unsigned char KeyBack( int KeyVal);
13
14 void KeyClear( void );
15 void KeyInitial(void);
16 void KeyScan( void );
17
18 #define KEYBUFSIZE 32
19 unsigned char KeyBuf[KEYBUFSIZE];
20 unsigned char KeyRp=0;
21 unsigned char KeyWp=0;
22
23
24 void main( void )
25 {
26 1 unsigned int KeyVal;
27 1 KeyInitial();
28 1 LCD_init();
29 1 CLEARSCREEN;
30 1 // delay_nms(2);
31 1
32 1 LCD_write_string(LINE1,0,"ESCAdd");
33 1 while(1)
34 1 {
35 2 KeyVal = KeyGet();
36 2 if( KeyVal != 0xff )
37 2 {
38 3 LCD_write_string(LINE1,0,"Add");
39 3 P30=~P30;
40 3 P31=~P31;
41 3 // LCD_write_char(LINE1,0,'A');
42 3 }
43 2 // KeyScan();
44 2 }
45 1 }
46
47
48 unsigned int KeyGet( void )
49 {
50 1 unsigned int RetVal=0xff,flag=0;
51 1 if( KeyRp != KeyWp )
52 1 {
53 2 RetVal = KeyBuf[ KeyRp ];
54 2 switch (RetVal)
55 2 {
C51 COMPILER V7.50 PS2BARCODE 06/25/2007 18:03:14 PAGE 2
56 3 case 0x0e: RetVal=0x30; break;
57 3 case 0x96: RetVal=0x31; break;
58 3 case 0x4e: RetVal=0x32; break;
59 3 case 0x5e: RetVal=0x33; break;
60 3 case 0xd6: RetVal=0x34; break;
61 3 case 0xce: RetVal=0x35; break;
62 3 case 0x2e: RetVal=0x36; break;
63 3 case 0x36: RetVal=0x37; break;
64 3 case 0xae: RetVal=0x38; break;
65 3 case 0xbe: RetVal=0x39; break;
66 3 case 0x9e: RetVal=0x2b; break;
67 3 case 0xde: RetVal=0x2d; break;
68 3 case 0x3e: RetVal=0x2a; break;
69 3 case 0x8e: RetVal=0x2e; break;
70 3 case 0x0f: RetVal=0xff00; break;
71 3 case 0x52: RetVal=0x2f; break;
72 3 default: RetVal=0x0a; flag=1;
73 3 }
74 2
75 2 if( ++KeyRp >= KEYBUFSIZE ) KeyRp=0;
76 2 }
77 1 return( RetVal );
78 1 }
79
80 void KeyInitial( void )
81 {
82 1 TMOD = 0x20; //9600, crystal = 22.1184MHz
83 1 TH1 = -3;
84 1 SCON = 0x42;
85 1 PCON = 0x80;
86 1 TI = 1;
87 1 TR1 = 1;
88 1
89 1 Ps2Clk = 1;
90 1 Ps2Dat = 1;
91 1
92 1 INT1 = 1;
93 1 IT1 = 1;
94 1 EX1 = 1;
95 1 EA = 1;
96 1 }
97
98 void KeyScan( void ) interrupt 2 //int1
99 {
100 1 static unsigned char ch;
101 1 static unsigned char cnt=0;
102 1 static unsigned int abc=0;
103 1
104 1 if( (cnt==0) && (Ps2Dat==1) ) return;
105 1
106 1 ch <<= 1; if( Ps2Dat == 1 ) ch |=0x01;
107 1
108 1 if( ++cnt == 9 )
109 1 {
110 2 KeyBuf[ KeyWp ]= ch;
111 2
112 2 LCD_write_char(LINE2,abc++,ASCII[ch>>4]);
113 2 LCD_write_char(LINE2,abc++,ASCII[ch&0x0f]);
114 2 if(abc==16)
115 2 {
116 3 abc=0;
117 3 CLEARSCREEN;
C51 COMPILER V7.50 PS2BARCODE 06/25/2007 18:03:14 PAGE 3
118 3 }
119 2
120 2 if( ++KeyWp >= KEYBUFSIZE ) KeyWp=0;
121 2 }
122 1 if( cnt == 11) cnt=0;
123 1 }
124
125
126
127 /*
128 void KeyScan( void ) //interrupt 0
129 {
130 // static unsigned char Clk_Sta;
131 static unsigned char ch;
132 static unsigned char cnt=0;
133 static unsigned int abc=0;
134 // if (Ps2Clk!=Clk_Sta)
135 // {
136 // if (Ps2Clk==0)
137 // {
138
139 if( (cnt==0) && (Ps2Dat==1) ) return;
140
141 if( (cnt==0) && (Ps2Dat==1) )
142 {
143 return;
144 }
145 ch <<= 1;
146 if( Ps2Dat == 1 )
147 {
148 ch |=0x01;
149 }
150 if( ++cnt == 9 )
151 {
152 KeyBuf[ KeyWp ]= ch;
153 LCD_write_char(LINE2,abc++,ASCII[ch>>4]);
154 LCD_write_char(LINE2,abc++,ASCII[ch&0x0f]);
155 if(abc==16)
156 {
157 abc=0;
158 CLEARSCREEN;
159 }
160 if( ++KeyWp >= KEYBUFSIZE )
161 {
162 KeyWp=0;
163 }
164 }
165 if( cnt == 11)
166 {
167 cnt=0;
168 }
169 }
170 // Clk_Sta=Ps2Clk;
171 // }
172 }
173
174 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 499 ----
CONSTANT SIZE = 28 ----
C51 COMPILER V7.50 PS2BARCODE 06/25/2007 18:03:14 PAGE 4
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 38 2
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 + -