📄 sy8.lst
字号:
146 2 dat<<=1; //将要发送位送人CY寄存器
147 2 LCD_DA=CY; //发送CY中字节
148 2 LCD_SCK=0;
149 2 delay(10);
150 2 LCD_SCK=1; //时钟电平上升沿 数据位送给LCD
151 2 delay(10);
152 2 }
153 1 LCD_CS=1; //片选关
154 1 delay(20);
155 1 }
156 void lcd_send_cmd(uchar dat)
157 {
158 1 uchar i;
159 1 LCD_CS=0; //片选选通
160 1 LCD_A0=0; //选择发送命令
161 1 LCD_SCK=1;
162 1 for(i=0;i<8;i++)
163 1 {
164 2 dat<<=1; //将要发送位送人CY寄存器
165 2 LCD_DA=CY; //发送CY中字节
166 2 LCD_SCK=0;
167 2 delay(10);
168 2 LCD_SCK=1; //时钟电平上升沿 数据位送给LCD
169 2 delay(10);
170 2 }
171 1 LCD_CS=1; //片选关
172 1 delay(20);
173 1 }
174 void lcd_init()
175 {
176 1 LCD_RES=1;
177 1 delay(20000);
178 1 lcd_send_cmd(0xE2); //复位
179 1 lcd_send_cmd(0xA2); //d0:Set LCD drive voltage bias ratio 0=1/9bias 1=1/7bias
C51 COMPILER V7.20 SY8 08/10/2008 08:47:17 PAGE 4
180 1 lcd_send_cmd(0xC8); //d3:select COM output direction 0=normal 1=reverse
181 1 lcd_send_cmd(0xA0); //d0:select SEG output direction 0=normal 1=reverse
182 1 lcd_send_cmd(0xA6); //d0:0=display normal 1=reverse
183 1 lcd_send_cmd(0xF8); //select booster ratio
184 1 lcd_send_cmd(0x00); //select booster ratio d0&d1:00=4x
185 1 lcd_send_cmd(0x2C); //d2:1=select internal power supply operating mode
186 1 lcd_send_cmd(0x2E);
187 1 lcd_send_cmd(0x2F);
188 1 lcd_send_cmd(0x81); //select the VO output voltage electronic volume register
189 1 lcd_send_cmd(0x14); //select the VO output voltage electronic volume register
190 1 lcd_send_cmd(0x0E); //select the VO output voltage electronic volume register
191 1 lcd_send_cmd(0xAF); //d0:LCD display ON=1/OFF=0
192 1 lcd_send_cmd(0xE0);
193 1 lcd_send_cmd(0x40); //Set the display RAM start line address
194 1 }
195 void lcd_set_page(uchar dat)
196 {
197 1 lcd_send_cmd(0xb0|dat);
198 1 }
199 void lcd_set_colume(uchar dat)
200 {
201 1 uchar tmp;
202 1 tmp=dat>>4;
203 1 lcd_send_cmd(0x10|tmp); //送列地址高四位
204 1 tmp=0x0f&dat;
205 1 lcd_send_cmd(tmp); //送列地址低四位
206 1 }
207 void lcd_clr()
208 {
209 1 uchar i,j;
210 1 for(i=0;i<8;i++)
211 1 {
212 2 lcd_set_page(i);
213 2 lcd_set_colume(0);
214 2 for(j=0;j<128;j++)
215 2 lcd_send_data(0x00);
216 2 }
217 1 }
218 //-------------------------------------------------------
219 //x:列(0-127) y:行(0-63)
220 //-------------------------------------------------------
221 void lcd_point(uchar x,uchar y)
222 {
223 1 lcd_set_colume(x); //设置列
224 1 lcd_set_page(y>>3); //设置页
225 1 lcd_send_data(1<<(0x07&y));
226 1 }
227 //-------------------------------------------------------
228 //每个汉字宽16 高2页
229 //
230 //wordx:汉字列位置(0-111) wordy:汉字行(0-8) word:字模数组名
231 //-------------------------------------------------------
232 void lcd_word(uchar wordx,uchar wordy,uchar *word)
233 {
234 1 uchar i;
235 1 lcd_set_page(wordy);
236 1 lcd_set_colume(wordx);
237 1 for(i=0;i<16;i++)
238 1 lcd_send_data(*(word+i));
239 1 lcd_set_page(wordy+1);
240 1 lcd_set_colume(wordx);
241 1 for(i=0;i<16;i++)
C51 COMPILER V7.20 SY8 08/10/2008 08:47:17 PAGE 5
242 1 lcd_send_data(*(word+i+16));
243 1 }
244
245 void sysclk_init()
246 {
247 1 WDTCN=0XDE; //关看门狗
248 1 WDTCN=0XAD;
249 1 OSCICN=0x07; //内部16M时钟
250 1 }
251
252
253 void port_init()
254 {
255 1 XBR0=0X00; //CEX0,CEX1连接到端口
256 1 XBR1=0X00;
257 1 XBR2=0X40; //交叉开关允许
258 1 PRT0CF=0Xff; //P0口输出方式推挽
259 1 PRT1CF=0Xff; //P1口输出方式推挽
260 1 PRT2CF=0Xff; //P2口输出方式推挽
261 1 }
262
263 //----------------------------------------------
264 //向flash的128字节扇区写数据 扇区地址0x8000-0x807f
265 //dat 要存储的数据 x:存储在128字节扇区的第X字节
266 //----------------------------------------------
267 void flash_wr(uchar x,float dat)
268 {
269 1 float xdata *pwr=0x8000+8*x;//写指针
270 1 FLSCL=0x89;
271 1 PSCTL=0x03; //擦除允许 写允许
272 1 *pwr=1;
273 1 PSCTL=0x01; //写允许
274 1 *pwr=dat;
275 1 }
276
277 //----------------------------------------------
278 //读取flash的128字节扇区内容
279 //----------------------------------------------
280 float flash_re(uchar x)
281 {
282 1 float code *pre=0x8000+8*x;//读指针
283 1 return *pre;
284 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1061 ----
CONSTANT SIZE = 489 ----
XDATA SIZE = ---- 24
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -