原來用ST7920作為驅動IC的LCD,因為要百來塊,為了省成本選了COG(CHIP ON GLASS)封裝的LCD,驅動IC變成了ST7565P的了,所有的命令都是E文的,百來頁,可憐的資料又比較匱乏,好不容易網上找到點運用程序。
void LCD_Init (void)
{
LCD_RST_OUTPUT;
LCD_RST_LOW;//LOW
Delay_ms(50);
LCD_RST_HIGH;//HIGH
Delay_ms(50);
LCD_Write (LCD_COMMAND,0xa2); /*LCD BIASSELECT 1/9 BIAS*/
LCD_Write (LCD_COMMAND,0xa1); /*ADC SELECT,REVERSE*/
LCD_Write (LCD_COMMAND,0xc0); /*COM SELECT,NORMAL*/
LCD_Write (LCD_COMMAND,0x25); /*Vo voltage regulator internal resistor ratio set*/
LCD_Write (LCD_COMMAND,0x81); /*ELECTRONIC VOLUME mode setting 100B*/
LCD_Write (LCD_COMMAND,Contrast_Value); /*Set reference voltagel register*/
LCD_Write (LCD_COMMAND,0x2f); /*power control(VB,VR,VF=1,1,1,ALL ON)*/
LCD_Write (LCD_COMMAND,0xa4);
LCD_Write (LCD_COMMAND,0xf8); /*SET BOOSTER RATIO*/
LCD_Write (LCD_COMMAND,0x03); /*問題出在這里
Delay_ms(50);
LCD_Write (LCD_COMMAND,0xaf); /*SET DISPLAY ON*/
}
實際調試時,一開始電壓3.3V,底色有點陣出現,折騰了兩天,后來廠家對偶說用3V,OK,當時輸入的是0XA3,選的是1/7 BIAS,命令上寫的1/7 BIAS(ST7565P),好多人的運用也都是這樣的。當時點了幾行字都不錯,都是按照順序從第0列開始,8列一個數字點的。但是后來發現如果不是按照從第0列開始的順序,譬如第二行從第4列開始,8列一個數字點,就發現中間有幾個數字會有某幾列脫影,顏色變淡,折騰了一整天,電壓從3V到3.3V都試過了,Contrast_Value,也就是對比度也改了無數次,一直百思不得其解。網上查到的資料還有廠家給偶的例子當時都用1/9BIAS,偶就覺得很奇怪,為什么偶運用1/9就不行呢?改成1/9后會變的很淡很淡,幾乎辨別不出來,如果電壓升高到3.3V,背景底色就會出現黑糊糊的點陣,真是郁悶無比啊,上百頁的E文文檔看了N遍,想來想去問題肯定是出現LCD初始化的某個命令上,程序肯定是沒問題的,就一個個試,試到BOOSTER RATIO那里,輸入01,選5X的RATIO,發現某幾列的脫影沒了,但是背景底色會有點偏黑,興奮啊,馬上再改0X03,改成6X的RATIO,脫影也沒,字跡清晰,底色也不會有一點偏黑了。
時鐘調試下來發現一天一夜會快個幾秒種,還不錯,過兩天去上海選誤差在5ppm的32.768KHz晶振,這次用的是20ppm。
|