سلام دوستان
من یه پروژه با آی سی FT232RL و میکرو انجام دادم که اینجا میذارم تا سایر دوستان استفاده کنن و در ادامه یه سوال دارم خواهشم اینه دوستانی که کار کردن کمک کنن
این پروژه ابتدا یک دیتا به PC ارسال میکنه سپس میتونید هر کاراکتر کی بردو رو LCD که به میکرو متصل است ببیند و با Enter به خط بعد رفته و با ESC صفحه را پاک میکند.
سوال: چه طور میشه جوییستک (فلش های بالا و پایین و چپ وراست روی کی برد) و Backspace رو فعال کرد؟ به نحوی که با فلش ها به سطرو ستون دلخواه در LCD رفته و کاراکتر مربوطه را پاک کرد؟؟؟؟
من یه پروژه با آی سی FT232RL و میکرو انجام دادم که اینجا میذارم تا سایر دوستان استفاده کنن و در ادامه یه سوال دارم خواهشم اینه دوستانی که کار کردن کمک کنن
این پروژه ابتدا یک دیتا به PC ارسال میکنه سپس میتونید هر کاراکتر کی بردو رو LCD که به میکرو متصل است ببیند و با Enter به خط بعد رفته و با ESC صفحه را پاک میکند.
سوال: چه طور میشه جوییستک (فلش های بالا و پایین و چپ وراست روی کی برد) و Backspace رو فعال کرد؟ به نحوی که با فلش ها به سطرو ستون دلخواه در LCD رفته و کاراکتر مربوطه را پاک کرد؟؟؟؟
کد:
#include <mega16.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB #endasm #include <lcd.h> // Standard Input/Output functions #include <stdio.h> char c; // Declare your global variables here void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 1200 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(16); #asm("sei") lcd_gotoxy(3,0); lcd_putsf("scaning"); delay_ms (500); lcd_putsf("."); delay_ms (600); lcd_putsf("."); delay_ms (700); lcd_putsf(".\n"); printf("This Program Was Produced By Anchornic.ir (S.P.Hosseini) \n "); printf("Waiting...\n"); putchar(0x33); printf("\n"); delay_ms(1100); putchar(0x32); printf("\n"); delay_ms(1100); putchar(0x31); printf("\n"); delay_ms(1100); printf("\n"); lcd_gotoxy(0,1); _lcd_ready(); _lcd_write_data(0x0d); while (1) { c=getchar(); if (c==27) { lcd_clear(); lcd_gotoxy(0,0); _lcd_ready(); _lcd_write_data(0x0d); goto s1; } if (c==13) { lcd_gotoxy(0,1); goto s1; } lcd_putchar(c); s1: }; }
دیدگاه