请教S6B0719驱动问题,打击惨了~

[复制链接]
2357|1
 楼主| t-z-sh 发表于 2008-12-27 21:35 | 显示全部楼层 |阅读模式
是28pin引线的那种COG,MCU通过一个74HC164进行传并转换,连接LCD。我是用示波器检测的。<br />以下是读写:<br />void&nbsp;write_LCD_command(uchar&nbsp;dat){<br />&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;&nbsp;LCD_WR=0;<br />&nbsp;&nbsp;&nbsp;LCD_RS=0;//command&nbsp;write.<br />&nbsp;&nbsp;&nbsp;LCD_CS=0;<br />&nbsp;&nbsp;&nbsp;LCD_RD=1;<br />&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt8;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;LCD_SCLK=0;<br />&nbsp;_nop_();<br />&nbsp;&nbsp;&nbsp;&nbsp;if(dat&0x80)&nbsp;LCD_DATA=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat&lt&lt=1;<br />&nbsp;_nop_();<br />&nbsp;_nop_();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_SCLK=1;<br />&nbsp;}<br />&nbsp;LCD_RD=0;&nbsp;&nbsp;&nbsp;//WRITE&nbsp;NOW!<br />&nbsp;_nop_();<br />&nbsp;LCD_CS=1;<br />&nbsp;LCD_RS=1;<br />}void&nbsp;write_LCD_data(uchar&nbsp;dat){<br />&nbsp;&nbsp;&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;&nbsp;LCD_WR=0;<br />&nbsp;&nbsp;&nbsp;LCD_RS=1;//DATA&nbsp;write.<br />&nbsp;&nbsp;&nbsp;LCD_CS=0;<br />&nbsp;&nbsp;&nbsp;LCD_RD=1;<br />&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt8;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;LCD_SCLK=0;<br />&nbsp;_nop_();<br />&nbsp;&nbsp;&nbsp;&nbsp;if(dat&0x80)&nbsp;LCD_DATA=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCD_DATA=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;dat&lt&lt=1;<br />&nbsp;_nop_();<br />&nbsp;_nop_();<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_SCLK=1;<br />&nbsp;}<br />&nbsp;LCD_RD=0;&nbsp;&nbsp;&nbsp;//WRITE&nbsp;NOW!<br />&nbsp;_nop_();<br />&nbsp;LCD_CS=1;<br />&nbsp;LCD_RS=0;<br />}<br /><br />以下是初始化代码<br />void&nbsp;iniLCD(void){<br />&nbsp;&nbsp;&nbsp;LCD_RES=1;<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;LCD_RES=&nbsp;0&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;LCD_RES=1;<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0xe2);&nbsp;/*reset&nbsp;by&nbsp;software*/<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x48);&nbsp;&nbsp;//SET&nbsp;DUTY&nbsp;<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x50);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0xA0);&nbsp;&nbsp;/*&nbsp;ADC&nbsp;SELECT&nbsp;&nbsp;A0:NORMAL&nbsp;&nbsp;A1:REVERSE&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0xC0);&nbsp;&nbsp;//SHL&nbsp;SELECT&nbsp;&nbsp;C0:NORMAL&nbsp;&nbsp;C1:REVERSE&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0xAB);&nbsp;&nbsp;//OSC&nbsp;START&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x67);&nbsp;/*&nbsp;SELECT&nbsp;DC-DC&nbsp;STEP-UP&nbsp;0x64~0x67&nbsp;*/&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x27);&nbsp;/*&nbsp;Regulator&nbsp;Select&nbsp;0x20-0x27&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x81);&nbsp;/*Set&nbsp;Reference&nbsp;Voltage&nbsp;Select&nbsp;Mode&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x3F);&nbsp;&nbsp;//Set&nbsp;Reference&nbsp;Voltage&nbsp;Register&nbsp;0x00-0x3F&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x54);&nbsp;/*&nbsp;lcd&nbsp;bias&nbsp;*/&nbsp;&nbsp;&nbsp;write_LCD_command(0x2c);&nbsp;/*&nbsp;V/C&nbsp;on,&nbsp;V/R&nbsp;on,&nbsp;V/F&nbsp;on&nbsp;*/<br />&nbsp;&nbsp;&nbsp;delay_ms(500);//Delay&nbsp;1S<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x2e);&nbsp;/*&nbsp;V/C&nbsp;on,&nbsp;V/R&nbsp;on,&nbsp;V/F&nbsp;on&nbsp;*/<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x2f);&nbsp;/*&nbsp;V/C&nbsp;on,&nbsp;V/R&nbsp;on,&nbsp;V/F&nbsp;on&nbsp;*/&nbsp;&nbsp;——问题1:到这句屏会全黑,正常??<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x40);&nbsp;/*&nbsp;display&nbsp;start&nbsp;first&nbsp;line&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x00);<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x44);&nbsp;/*&nbsp;COM0&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x00);<br />&nbsp;&nbsp;&nbsp;delay_ms(500);<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0xaf);&nbsp;/*&nbsp;display&nbsp;on&nbsp;*/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;——问题2:到这句上部1/4熄灭,其余全亮(黑)<br />&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />下面是清屏函数,但运行没任何效果。<br />void&nbsp;clear_disp(void)<br />&nbsp;&nbsp;&nbsp;{&nbsp;uchar&nbsp;page=0xb0,column;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(page=0xb0;page&lt0xbe;page++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;write_LCD_command(page);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;page&nbsp;adress<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_LCD_command(0x00);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set&nbsp;start&nbsp;column&nbsp;adress<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_LCD_command(0x10);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(column=0;column&lt=160;column++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;write_LCD_data(0x0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_LCD_data(0x0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}
sutie2008 发表于 2008-12-29 13:10 | 显示全部楼层

修改一下对比度

&nbsp;&nbsp;write_LCD_command(0x27);&nbsp;/*&nbsp;Regulator&nbsp;Select&nbsp;0x20-0x27&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x81);&nbsp;/*Set&nbsp;Reference&nbsp;Voltage&nbsp;Select&nbsp;Mode&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x3F);&nbsp;&nbsp;//Set&nbsp;Reference&nbsp;Voltage&nbsp;Register&nbsp;<br /><br /><br />修改为下面的试试,你对比度调的可能高点<br />&nbsp;&nbsp;write_LCD_command(0x24);&nbsp;/*&nbsp;Regulator&nbsp;Select&nbsp;0x20-0x27&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x81);&nbsp;/*Set&nbsp;Reference&nbsp;Voltage&nbsp;Select&nbsp;Mode&nbsp;*/<br />&nbsp;&nbsp;&nbsp;write_LCD_command(0x24);&nbsp;&nbsp;//Set&nbsp;Reference&nbsp;Voltage&nbsp;Register
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

48

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部