📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 11/21/2008 14:35:03 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "at89x52.h"
2 #include "common.h"
3 #include "intrins.h"
4
5 //uchar X=0,Y=0;
6
7 uint X=0,Y=0;
8 uint X_LCD=0;Y_LCD=0;
9 unsigned long int TchScr_Xmin=0,TchScr_Ymin=0,TchScr_Xmax=0xfff,TchScr_Ymax=0xfff;
10 unsigned long int LCDWIDTH=320,LCDHEIGHT=240;//width=0x140 height=0xf0
11
12 uint keytable[][4]={
13 {20,20,60,60}, //red
14 {140,100,180,140}, //green
15 };
16
17 void initial(void)
18 {
19 1 // P1=P2=P3=P0=0xff;
20 1 SCON=0x50; // UART_mode=1,REN=1
21 1 RCAP2H=0xFF;
22 1 RCAP2L=0xDC; // 9600,
23 1 T2MOD=0;
24 1 T2CON=0x34; // Set T2 to baud rate register
25 1 EX0=1;
26 1 EA=1;
27 1
28 1 }
29
30 void delay(unsigned char i)
31 {
32 1 while(i--);
33 1 }
34
35
36 void delay_1ms(uint x)
37 {
38 1 uint j;
39 1 uchar i;
40 1 for(j=0;j<x;j++)
41 1 for(i=0;i<120;i++)
42 1 ;
43 1 }
44
45
46 void send232 (uchar ch)
47 {
48 1 SBUF=ch;
49 1 while(TI==0);
50 1 TI=0;
51 1 }
52
53
54 void start7843(void)
55 {
C51 COMPILER V7.50 MAIN 11/21/2008 14:35:03 PAGE 2
56 1 DCLK=0;
57 1 CS=1;
58 1 DIN=1;
59 1 DCLK=1;
60 1 CS=0;
61 1 }
62 /*
63 void stop7843(void)
64 {
65 DCLK=0;
66 DIN=0;
67 DOUT=1;
68 CS=1;
69 }
70 */
71 void write7843 (uchar num)
72 {
73 1 uchar count;
74 1 DCLK=0;
75 1 for(count=0;count<8;count++)
76 1 {
77 2 num<<=1;
78 2 DIN=CY;
79 2 DCLK=0;
80 2 _nop_();_nop_();_nop_();
81 2 DCLK=1;
82 2 _nop_();_nop_();_nop_();
83 2 }
84 1 }
85
86 uint read7843 (void)
87 {
88 1 uchar count;
89 1 uint codata;
90 1 codata=0;
91 1 DCLK=0;
92 1 for (count=0;count<12;count++)
93 1 {
94 2 codata<<=1;
95 2 DCLK=1;
96 2 _nop_();_nop_();_nop_();
97 2 DCLK=0;
98 2 _nop_();_nop_();_nop_();
99 2 if(DOUT)
100 2 codata++;
101 2 }
102 1 return(codata);
103 1 }
104
105
106 void IT0_int(void) interrupt 0
107 {
108 1 start7843();
109 1 delay(2);
110 1 write7843(0x94);
111 1 DCLK=1;
112 1 _nop_();_nop_();_nop_();_nop_();
113 1 DCLK=0;
114 1 _nop_();_nop_();_nop_();_nop_();
115 1 X=read7843();
116 1 write7843(0xD4);
117 1 DCLK=1;
C51 COMPILER V7.50 MAIN 11/21/2008 14:35:03 PAGE 3
118 1 _nop_();_nop_();_nop_();_nop_();
119 1 DCLK=0;
120 1 _nop_();_nop_();_nop_();_nop_();
121 1 Y=read7843();
122 1 CS=1;
123 1 }
124
125
126 void switchXY (void)
127 {
128 1 unsigned long int s;
129 1 s=((unsigned long int)X-TchScr_Xmin)*LCDWIDTH;
130 1 X_LCD=(uint)(s/(TchScr_Xmax-TchScr_Xmin));
131 1 s=((unsigned long int)Y-TchScr_Ymin)*LCDHEIGHT;
132 1 Y_LCD=(uint)(s/(TchScr_Ymax-TchScr_Ymin));
133 1 }
134 void checkkey(void)
135 {
136 1 if((X_LCD>keytable[0][0])&&(X_LCD<keytable[0][2]))
137 1 if((Y_LCD>keytable[0][1])&&(Y_LCD<keytable[0][3]))
138 1 {
139 2 red=0;
140 2 delay_1ms(1000);
141 2 red=1;
142 2 }
143 1 if((X_LCD>keytable[1][0])&&(X_LCD<keytable[1][2]))
144 1 if((Y_LCD>keytable[1][1])&&(Y_LCD<keytable[1][3]))
145 1 {
146 2 green=0;
147 2 delay_1ms(1000);
148 2 green=1;
149 2 }
150 1 }
151 void main(void)
152 {
153 1 uchar X_L,X_H,Y_L,Y_H;
154 1 initial();
155 1 while(1)
156 1 {
157 2 if((X!=0)&&(Y!=0))
158 2 {
159 3 EX0=0;
160 3 switchXY();
161 3 checkkey();
162 3 X_L=(unsigned char)(X_LCD);
163 3 X_H=(X_LCD>>8);
164 3 Y_L=(unsigned char)(Y_LCD);
165 3 Y_H=(Y_LCD>>8);
166 3 send232(X_H);send232(X_L);
167 3 send232(Y_H);send232(Y_L);
168 3 X=Y=0;
169 3 // delay_1ms(1000);
170 3 EX0=1;
171 3 }
172 2 }
173 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 519 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V7.50 MAIN 11/21/2008 14:35:03 PAGE 4
PDATA SIZE = ---- ----
DATA SIZE = 48 4
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 + -