با سلام
من یه برنامه خودم نوشتم واسه این ال سی دی که توی پروتیوس با ال سی دی 1100 امتحان کردم جواب داد ولی عملی جواب نمیده
توی تاپیک http://www.eca.ir/forum2/index.php?topic=91526.msg572756#msg572756 آقا مهدی (punisher.x64) یک فایل هگز گذاشتن ک اونو امتحان کردم جواب داد فقط نوشته test for 1202 lcd به صورت برعکس(mirror) روش نمایش داده میشه
برنامه رو میزارم ببینید مشکلش چیه؟آیا توابعی که نوشتم درسته؟(چون تو شبیه سازی درست عمل میکنه البته با ال سی دی 1100)
من یه برنامه خودم نوشتم واسه این ال سی دی که توی پروتیوس با ال سی دی 1100 امتحان کردم جواب داد ولی عملی جواب نمیده
توی تاپیک http://www.eca.ir/forum2/index.php?topic=91526.msg572756#msg572756 آقا مهدی (punisher.x64) یک فایل هگز گذاشتن ک اونو امتحان کردم جواب داد فقط نوشته test for 1202 lcd به صورت برعکس(mirror) روش نمایش داده میشه
برنامه رو میزارم ببینید مشکلش چیه؟آیا توابعی که نوشتم درسته؟(چون تو شبیه سازی درست عمل میکنه البته با ال سی دی 1100)
کد:
[left] #include <mega32.h> #include <delay.h> #define set_data_pin PORTB |= 0x02 #define clear_data_pin PORTB &= ~0x02 #define set_rst_pin PORTB |= 0x04 #define clear_rst_pin PORTB &= ~0x04 #define set_clk_pin PORTB |= 0x01 #define clear_clk_pin PORTB &= ~0x01 #define set_cs_pin PORTB |= 0x08 #define clear_cs_pin PORTB &= ~0x08 void LCD_writeCommand ( unsigned char command ); void LCD_writeData ( unsigned char data ); void Gotoxy(char x,char y); void LCD_init (void ){ unsigned int j; delay_ms(10); clear_rst_pin; //reset LCD delay_ms(100); set_rst_pin; LCD_writeCommand(0xe2); delay_ms(10); Gotoxy(0,0); for(j=0;j<864;j++) LCD_writeData(0x00); } void LCD_writeData ( unsigned char data ){ char i; clear_clk_pin; set_data_pin; set_clk_pin; for(i=0;i<8;i++){ clear_clk_pin; if(data & 0x80) set_data_pin; else clear_data_pin; set_clk_pin; data <<= 1; } clear_clk_pin; clear_data_pin; set_cs_pin; //disable LCD } void LCD_writeCommand ( unsigned char command ){ char i; clear_clk_pin; clear_data_pin; set_clk_pin; for(i=0;i<8;i++){ clear_clk_pin; if(command & 0x80) set_data_pin; else clear_data_pin; set_clk_pin; command <<= 1; } clear_clk_pin; clear_data_pin; set_cs_pin; //disable LCD } void Gotoxy(char x,char y){ LCD_writeCommand(0xB0|(y&0x0F)); // Y axis initialisation: 0100 yyyy LCD_writeCommand(0x00|(x&0x0F)); // X axis initialisation: 0000 xxxx ( x3 x2 x1 x0) LCD_writeCommand(0x10|((x>>4)&0x07)); // X axis initialisation: 0010 0xxx ( x6 x5 x4) } void main(void){ unsigned int i; DDRD=0xff; DDRB=0xff; PORTB=0x00; delay_ms(300); LCD_init(); Gotoxy(0,0); for(i=0;i<864;i++){ LCD_writeData(0xff); } while(1){ PORTD.0=1; delay_ms(500); PORTD.0=0; delay_ms(500); } } [/left]
دیدگاه