?? pc鍵盤.lst
字號:
C51 COMPILER V6.23a PC_黖_ 03/27/2007 17:48:00 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE PC_黖_
OBJECT MODULE PLACED IN PC鍵盤.OBJ
COMPILER INVOKED BY: D:\mcs51\Keil\C51\BIN\C51.EXE PC鍵盤.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<ASC2.h>
2 #include<LCD.h>
3
4 #define disp_on 0x3f
5 #define disp_off 0x3e
6 #define col_add 0x40
7 #define page_add 0xb8
8 #define start_line 0xc0
9
10 unsigned char x=0,y=0,sscs=0;
11
12 #define cs XBYTE[0X8000]
13 #define wc XBYTE[0XA000]
14 #define wd XBYTE[0XA001]
15
16 void delay(unsigned int t)
17 {
18 1 unsigned int i,j;
19 1 for(i=0;i<t;i++)
20 1 for(j=0;j<10;j++);
21 1 }
22
23 void write_command(unsigned char cmdcode)
24 {
25 1 wc=cmdcode;
26 1 }
27
28 void write_data(unsigned char dispdata)
29 {
30 1 wd=dispdata;
31 1 }
32
33 void clr_scr()
34 {
35 1 unsigned char j,k;
36 1 cs=0x10;
37 1 for(j=0;j<8;j++)
38 1 {
39 2 write_command(page_add+j);
40 2 write_command(col_add+0);
41 2 for(k=0;k<64;k++)
42 2 write_data(0x00);
43 2 }
44 1 cs=0x20;
45 1 for(j=0;j<8;j++)
46 1 {
47 2 write_command(page_add+j);
48 2 write_command(col_add+0);
49 2 for(k=0;k<64;k++)
50 2 write_data(0x00);
51 2 }
52 1 x=0;y=0;
53 1 }
54
55 void sz_disp16(unsigned char pag,unsigned char col,unsigned char code *szk)
C51 COMPILER V6.23a PC_黖_ 03/27/2007 17:48:00 PAGE 2
56 {
57 1 unsigned char j,k;
58 1 for(j=0;j<2;j++)
59 1 {
60 2 write_command(page_add+pag+j);
61 2 write_command(col_add+col);
62 2 for(k=0;k<8;k++)
63 2 write_data(szk[8*j+k]);
64 2 }
65 1 }
66
67 void init_lcd()
68 {
69 1 cs=0x30;
70 1 delay(100);
71 1 write_command(disp_off);
72 1 write_command(page_add+0);
73 1 write_command(start_line);
74 1 write_command(col_add+0);
75 1 write_command(disp_on);
76 1 }
77
78 void putgb()
79 {
80 1 sscs++;
81 1 if(sscs==300)
82 1 sscs=0;
83 1 if(y<8)
84 1 {
85 2 cs=0x10;
86 2 if(sscs<150)
87 2 sz_disp16(x*2,y*8,guangbiao);
88 2 else
89 2 sz_disp16(x*2,y*8,kongbai);
90 2 }
91 1 if(y>=8)
92 1 {
93 2 cs=0x20;
94 2 if(sscs<150)
95 2 sz_disp16(x*2,(y-8)*8,guangbiao);
96 2 else
97 2 sz_disp16(x*2,(y-8)*8,kongbai);
98 2 }
99 1 }
100
101 void putkongbai()
102 {
103 1 if(y<8)
104 1 {
105 2 cs=0x10;
106 2 sz_disp16(x*2,y*8,kongbai);
107 2 }
108 1 if(y>=8)
109 1 {
110 2 cs=0x20;
111 2 sz_disp16(x*2,(y-8)*8,kongbai);
112 2 }
113 1 }
114
115 void putchar(unsigned char p)
116 {
117 1 bit bs_flag=0;
C51 COMPILER V6.23a PC_黖_ 03/27/2007 17:48:00 PAGE 3
118 1 unsigned char code *c;
119 1 unsigned char j,k;
120 1 if(p<' ')
121 1 {
122 2 if(p=='\n')
123 2 {
124 3 if(x==3)
125 3 return;
126 3 x++;
127 3 y=0;
128 3 }
129 2 else if(p=='\b')
130 2 {
131 3 putkongbai();
132 3 if(y==0)
133 3 {
134 4 if(x==0)
135 4 return;
136 4 x--;
137 4 y=15;
138 4 p=' ';
139 4 bs_flag=1;
140 4 goto start;
141 4 }
142 3 else
143 3 {
144 4 y--;
145 4 p=' ';
146 4 bs_flag=1;
147 4 goto start;
148 4 }
149 3 }
150 2 return;
151 2 }
152 1 start: c=ASCII_TAB+(p-' ')*16;
153 1 if(y<8)
154 1 {
155 2 cs=0x10;
156 2 for(j=0;j<2;j++)
157 2 {
158 3 write_command(page_add+x*2+j);
159 3 write_command(col_add+y*8);
160 3 for(k=0;k<8;k++)
161 3 write_data(*c++);
162 3 }
163 2 }
164 1 if(y>=8)
165 1 {
166 2 cs=0x20;
167 2 for(j=0;j<2;j++)
168 2 {
169 3 write_command(page_add+x*2+j);
170 3 write_command(col_add+(y-8)*8);
171 3 for(k=0;k<8;k++)
172 3 write_data(*c++);
173 3 }
174 2 }
175 1 if(bs_flag) return;
176 1 y++;
177 1 if(y==16)
178 1 {
179 2 if(x==3)
C51 COMPILER V6.23a PC_黖_ 03/27/2007 17:48:00 PAGE 4
180 2 {
181 3 y=15;
182 3 return;
183 3 }
184 2 else
185 2 {
186 3 y=0;
187 3 x++;
188 3 }
189 2 }
190 1 putgb();
191 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 659 ----
CONSTANT SIZE = 1568 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 6
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 + -