ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 2 از 2
  1. #1
    2008/09/22
    3
    0

    كمك فوری GLCD و موس

    با عرض سلام وخسته نباشيد خدمت كاربران عزيز
    من دو برنامه GLCD و راه اندازي موس در زير آوردم كه ميخوام با استفاده از اين دو برنامه و توابع فرعي آنها:
    1- برنامه اي كه port b را بخونه و به ازاي عدد ورودي نموداري روي GLCD بالا وپايين شود
    نمودار شامل ستون هاي 30 تا 38 شود.
    2- برنامه اي كه با استفاده از زيربرنامه هاي موس يك ستون روي GLCD از وسط به ازاي حركت موس به بالا . بالا وبه ازاي حركت موس به پايين . پايين رود.
    لطفا كمكم كنيد خيلي روشون كار كردم ولي نتونستم انجام بدم

    1- برنامه GLCD

    #include <mega16.h>

    void command (unsigned char);
    void display (unsigned char);
    void ready (void);
    void lcd_clr (void);
    void main(void) {
    unsigned char x;
    PORTA = 0x00;
    DDRA = 0xFF;
    PORTB = 0x00;
    DDRB = 0x00;
    PORTC = 0xFF;
    DDRC = 0xFF;
    PORTD = 0x00;
    DDRD = 0x00;
    // LCD module initialization
    command(0x3F);
    command(0xB8);
    command(0x42);
    command(0xC0);
    lcd_clr();
    while (1) {
    x = PIND;
    x = x | 0xB8;
    x = x & 0xBF;
    command(x);
    command(0x42);
    display(PINB);
    };
    }
    void command(unsigned char x) {
    ready();
    PORTA = x;
    PORTC.0 = 0;
    PORTC.1 = 0;
    PORTC.2 = 1;
    PORTC.2 = 0;
    }
    void display(unsigned char x) {
    ready();
    PORTA = x;
    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 1;
    PORTC.2 = 0;
    }
    void ready(void) {
    DDRA = 0x7F;
    PORTC.0 = 0;
    PORTC.1 = 1;
    do {
    PORTC.2 = 1;
    PORTC.2 = 0;
    }
    while (PINA.7 == 1);
    DDRA = 0xFF;
    }
    void lcd_clr (void) {
    unsigned char i, j;
    for (i=0; i<8; i++)
    for (j=0; j<64; j++) {
    command(0xB8 + i);
    command(0x40 + j);
    display(0x00);
    };
    }


    2- برنامه موس

    #include <mega16.h>
    #include <delay.h>
    unsigned char mouse_r (void);
    void mouse_w (unsigned char);
    void mouse_on (void);
    void main(void) {
    unsigned char y, x, s, ch;
    PORTA = 0x00;
    DDRA = 0xFF;
    PORTB = 0x00;
    DDRB = 0x00;
    PORTC = 0x00;
    DDRC = 0x00;
    PORTD = 0x00;
    DDRD = 0x00;
    mouse_on( );
    while (1) {
    s = mouse_r( ) ;
    x = mouse_r( ) ;
    y = mouse_r( ) ;
    PORTA = 0x00;
    ch = s;
    ch &= 0xC0;
    if (ch == 0) {
    ch = s;
    ch &= 0x10;
    if (ch!=0) {
    x = 255 - x;
    if (x != 0) PORTA.0 = 1;
    else PORTA.0 = 0;
    }
    else
    if ( x!= 0) PORTA.1 = 1;
    else PORTA.1 = 0;

    ch = s;
    ch &= 0x20;
    if (ch != 0) {
    y = 255 - y;
    if (y != 0) PORTA.2 = 1;
    else PORTA.2 = 0;
    }
    else
    if (y != 0) PORTA.3 = 1;
    else PORTA.3 = 0;
    //key check
    ch = s;
    ch &= 0x02;
    if (ch != 0) PORTA.4 = 1;
    ch = s;
    ch &= 0x01;
    if (ch != 0) PORTA.6 = 1;
    ch = s;
    ch &= 0x04;
    if (ch != 0) PORTA.5 = 1;
    };
    };
    }
    unsigned char mouse_r (void) {
    unsigned char c, a, i = 0;
    DDRB = 0x00;
    while (PINB.0 == 0 & PINB.1 == 0);
    while (PINB.0 == 1 & PINB.1 == 1);
    while (PINB.0 == 0);
    while (PINB.0 == 1);
    for (i=0; i<8; i++) {
    c = PINB;
    c = c << 6;
    c = c & 0x80;
    a = a >> 1;
    a = a ^ c;
    while (PINB.0 == 0);
    while (PINB.0 == 1);
    };
    while (PINB.0 == 0 & PINB.1 == 0);
    return a ;
    }
    void mouse_w (unsigned char x) {
    unsigned char i, c, p = 0;
    PORTB = 0x03;
    DDRB = 0x03;
    while (PINB.0 == 0 & PINB.1 == 0);
    PORTB.0 = 0;
    delay_us(100);
    PORTB.1 = 0;
    PORTB.0 = 1;
    DDRB = 0x02;
    while (PINB.0 == 1);
    for (i=0; i<8; i++) {
    c = x;
    c = c & 0x01;
    x = x >> 1;
    PORTB.1 = c;
    if (c == 1) p += 1;
    while (PINB.0 == 0);
    while (PINB.0 == 1);
    };
    p = p%2;
    if (p == 0) PORTB.1 = 1;
    else PORTB.1 = 0;
    while (PINB.0 == 0);
    while (PINB.0 == 1);
    PORTB.1 = 1;
    DDRB = 0x00;
    while (PINB.0 == 1 & PINB.1 == 1);
    while (PINB.0 == 0 & PINB.1 == 0);
    }
    void mouse_on ( ) {
    unsigned char y;
    mouse_w(0xFF);
    y = mouse_r( );
    y = mouse_r( );
    mouse_w(0xEA);
    y = mouse_r( );
    mouse_w(0xE8);
    y = mouse_r( );
    mouse_w(0x01);
    y = mouse_r( );
    mouse_w(0xF3);
    y = mouse_r( );
    mouse_w(0x0A);
    y = mouse_r( );
    mouse_w(0xF4);
    y = mouse_r( );
    }

    :bye
  2. #2
    2006/10/29
    M.I.S
    631
    2

    پاسخ : كمك فوری GLCD و موس

    سلام اگر این برنامه رو خودت نوشتی خوب میگم احسنت ولی اگر از یک کتاب نوشتی باید بگم این برنامه جواب نمیده .واگر راهنمایی خواستی در خدمتم
نمایش نتایج: از 1 به 2 از 2

موضوعات مشابه

  1. پاسخ: 4
    آخرين نوشته: 2015/08/26, 10:49
  2. طراحی شبکه عصبی دولایه با تابع اکلی دوبعدی. کمک فوری فوری
    توسط llnadia در انجمن هوش مصنوعی و شبکه های عصبی
    پاسخ: 0
    آخرين نوشته: 2015/08/21, 14:11
  3. کمک فوری فوری برای تنظیم فیوز بیت میکرو اتمگا 8
    توسط hamed.asadi در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2015/05/12, 18:10
  4. فوری فوری >>>>>>>>>>یک مدار فرمان ستاره مثلث میخواستم.
    توسط vazirnia در انجمن تاسیسات الکتریکی
    پاسخ: 1
    آخرين نوشته: 2010/11/30, 16:58
  5. هر مطلبی برای ساخت بالاست مهتابی سه سر (فوری فوری)
    توسط Iran-PC در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 2
    آخرين نوشته: 2010/07/23, 07:24

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •