📄 display.lst
字号:
C51 COMPILER V7.50 DISPLAY 12/03/2005 12:09:14 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN Display.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Display.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <head.h> // SFR declarations
2 void delay(unsigned int num)
3 {
4 1 while(num--)
5 1 {
6 2 ;
7 2 }
8 1
9 1 }
10 void lw(unsigned char x,unsigned char y,unsigned char dd)
11 {
12 1 if (x<61)
13 1 { e1=e2=1;
14 2 di=rw=0;P1=0xb8|y;e1=1;delay(VA);e1=0;delay(VA);
15 2 e1=e2=1;
16 2 di=rw=0;P1=0x00|x;e1=1;delay(VA);e1=0;delay(VA);
17 2 e1=e2=1;
18 2 di=1;rw=0;P1=dd;e1=1;delay(VA);e1=0;delay(VA);
19 2 e1=e2=1;
20 2 }
21 1 else
22 1 {
23 2 x=x-61;e1=e2=1;
24 2 di=rw=0;P1=0xb8|y;e2=1;delay(VA);e2=0;delay(VA);
25 2 e1=e2=1;
26 2 di=rw=0;P1=0x00|x;e2=1;delay(VA);e2=0;delay(VA);
27 2 e1=e2=1;
28 2 di=1;rw=0;P1=dd;e2=1;delay(VA);e2=0;delay(VA);
29 2 e1=e2=1;
30 2 }
31 1 P1=0xff;
32 1 }
33 void clear_screen(unsigned char Row)
34 {
35 1 unsigned char x,y;
36 1 for (y=0;y<Row;y++)
37 1 {
38 2 for (x=0;x<122;x++)
39 2 lw(x,y,0x00);
40 2 }
41 1 }
42 void ClearModTime(void)
43 {
44 1 unsigned char x;
45 1 for (x=0x36;x<122;x++)
46 1 lw(x,2,0x00);
47 1 }
48 void write_chinese(UCHAR x,UCHAR y,UCHAR width,UCHAR code*array)
49 {
50 1 unsigned char j,dd;
51 1 switch(width)
52 1 {
53 2 case 0x02:
54 2 for(j=0;j<width*2;j++)
55 2 {
C51 COMPILER V7.50 DISPLAY 12/03/2005 12:09:14 PAGE 2
56 3 dd=array[j];
57 3 lw(x+j,y,dd);
58 3 }
59 2 break;
60 2 case 0x04:
61 2 for(j=0;j<width*2;j++)
62 2 {
63 3 dd=array[j];
64 3 if(j<width) lw(x+j,y,dd);
65 3 else lw(x+j-width,y+1,dd);
66 3 }
67 2 break;
68 2 case 0x08:
69 2 for(j=0;j<width*2;j++)
70 2 {
71 3 dd=array[j];
72 3 if(j<width) lw(x+j,y,dd);
73 3 else lw(x+j-width,y+1,dd);
74 3 }
75 2 break;
76 2 case 0x0e:
77 2 for(j=0;j<width*2;j++)
78 2 {
79 3 dd=array[j];
80 3 if(j<width) lw(x+j,y,dd);
81 3 else lw(x+j-width,y+1,dd);
82 3 }
83 2 break;
84 2 default:
85 2 for(j=0;j<0x20;j++)
86 2 {
87 3 dd=array[j];
88 3 if(j<0x10) lw(x+j,y,dd);
89 3 else lw(x+j-0x10,y+1,dd);
90 3 }
91 2 break;
92 2 }
93 1 }
94 unsigned char code *number(unsigned char t)
95 {
96 1 unsigned char code*string;
97 1 switch(t)
98 1 {
99 2 case 0: string=num0;break;
100 2 case 1: string=num1;break;
101 2 case 2: string=num2;break;
102 2 case 3: string=num3;break;
103 2 case 4: string=num4;break;
104 2 case 5: string=num5;break;
105 2 case 6: string=num6;break;
106 2 case 7: string=num7;break;
107 2 case 8: string=num8;break;
108 2 case 9: string=num9;break;
109 2 default: string=num0;break;
110 2 }
111 1 return(string);
112 1 }
113 unsigned char code*SNumber(unsigned char t)
114 {
115 1 unsigned char *string;
116 1 switch(t)
117 1 {
C51 COMPILER V7.50 DISPLAY 12/03/2005 12:09:14 PAGE 3
118 2 case 0: string=snum0;break;
119 2 case 1: string=snum1;break;
120 2 case 2: string=snum2;break;
121 2 case 3: string=snum3;break;
122 2 case 4: string=snum4;break;
123 2 case 5: string=snum5;break;
124 2 case 6: string=snum6;break;
125 2 case 7: string=snum7;break;
126 2 case 8: string=snum8;break;
127 2 case 9: string=snum9;break;
128 2 default: string=snum0;break;
129 2 }
130 1 return(string);
131 1 }
132 void send_command(unsigned char cmd)
133 {
134 1 e1=e2=1;
135 1 delay(VA);
136 1 e1=e2=0;
137 1 di=rw=0;
138 1 P1=cmd;
139 1 e1=e2=1;
140 1 delay(VA);
141 1 e1=e2=0;
142 1 delay(VA);
143 1 P1=0xff;
144 1 e1=e2=1;
145 1 }
146 unsigned char read(void)
147 {
148 1 unsigned char status;
149 1 e1=e2=1;
150 1 delay(VA);
151 1 e1=e2=0;
152 1 di=0;rw=1;
153 1 delay(VA);
154 1 e1=e2=1;
155 1 delay(VA);
156 1 e1=e2=0;
157 1 status=P1;
158 1 delay(VA);
159 1 e1=e2=1;
160 1 return(status);
161 1 }
162 void lcd_init(void)
163 {
164 1 UCHAR x;
165 1 rst = 1;
166 1 delay(VA);
167 1 rst = 0;
168 1 delay(VA);
169 1 x=read();
170 1 rst = 1;
171 1 x=read();
172 1 // delay(50000);
173 1
174 1 send_command(0xae);
175 1 send_command(0xc0);
176 1 send_command(0xa4);
177 1 send_command(0x00);
178 1 send_command(0xbb);
179 1 send_command(0xa9);
C51 COMPILER V7.50 DISPLAY 12/03/2005 12:09:14 PAGE 4
180 1 send_command(0xa0);
181 1 send_command(0xee);
182 1 send_command(0xaf);
183 1 delay(60000);
184 1 }
185
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 960 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
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 + -