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





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









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









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






جهت تبلیغ در وب سایت ECA کلیک کنید.

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

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2007/12/19
    6
    0

    کار با پورت توسط C

    سلام
    ایا میتوان با Cداده از کیبورد گرفت و به پورت سریال ارسال کرد؟؟
    لطفا دستورات لازمو برام بنویسید
  2. #2
    2006/02/24
    تهران
    578
    2

    پاسخ : کار با پورت توسط C

    ضمن خوش آمد گویی.
    مشکلی نداره نوشتنش , شاید کلا 10 - 12 خط بشه.
    ولی اینجا عرف اینه که کسی برای کسی سورس نمینویسه , به قولی ماهی نمیگیرند برات , اگه دوست داشته باشی , ماهی گیری یادت میدند.

    برای این کار , باید بتونی پورت کام رو کانفیگ کنی , و با دستورات ساده ای که برای کار با صفحه کلید هست , اگر کلیدی فشرده شد , کد کلید رو به پورت بفرستی.
    الهم عجل لولیک الفرج

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2007/03/08
    116
    0
    MCC

    پاسخ : کار با پورت توسط C

    سلام
    می تونید راجع به پیکر بندی توضیح و منبع بدید؟

    کتاب جعفر نژاد قمی کا فی است؟
  4. #4
    2007/11/08
    یزد
    14
    0

    پاسخ : کار با پورت توسط C

    سلام
    این برنامه کارت رو راه میندازه
    کد:
    #include <stdio.h>
    
    #include <stdlib.h>
    
    #include <dos.h>
    
    #include <math.h>
    
    #include <conio.h>
    
    #include <bios.h>
    
    #define INTR 0X14
    
    #define __CPPARGS ...
    
    #define PORT1 0x3F8 /* Port Address Goes Here */
    
    #define INTVECT 0X0C /* Com Port's IRQ here (Must also change PIC setting) */
    
    /* Defines Serial Ports Base Address */
    
    /* COM1 0x3F8 */
    
    /* COM2 0x2F8 */
    
    /* COM3 0x3E8 */
    
    /* COM4 0x2E8 */
    
    int bufferin = 0;
    
    int bufferout = 0;
    
    char ch;
    
    char buffer[1025];
    
    void interrupt (*oldport1isr)(__CPPARGS);
    
    void interrupt PORT1INT(__CPPARGS) /* Interrupt Service Routine (ISR) for PORT1 */
    
    {
    
    int c;
    
    do { c = inportb(PORT1 + 5);
    
    if (c & 1) {buffer[bufferin] = inportb(PORT1);
    
    bufferin++;
    
    if (bufferin == 1024) {bufferin = 0;}}
    
    }while (c & 1);
    
    outportb(0x20,0x20);
    
    }
    
    void main(void)
    
    {
    
    int c;
    
    outportb(PORT1 + 1 , 0); /* Turn off interrupts - Port1 */
    
    oldport1isr = getvect(INTVECT); /* Save old Interrupt Vector of later
    
    recovery */
    
    setvect(INTVECT, PORT1INT); /* Set Interrupt Vector Entry */
    
    /* COM1 - 0x0C */
    
    /* COM2 - 0x0B */
    
    /* COM3 - 0x0C */
    
    /* COM4 - 0x0B */
    
    /* PORT 1 - Communication Settings */
    
    outportb(PORT1 + 3 , 0x80); /* SET DLAB ON */
    
    outportb(PORT1 + 0 , 0x0C); /* Set Baud rate - Divisor Latch Low Byte */
    
    /* Default 0x03 = 38,400 BPS */
    
    /* 0x01 = 115,200 BPS */
    
    /* 0x02 = 57,600 BPS */
    
    /* 0x06 = 19,200 BPS */
    
    /* 0x0C = 9,600 BPS */
    
    /* 0x18 = 4,800 BPS */
    
    /* 0x30 = 2,400 BPS */
    
    outportb(PORT1 + 1 , 0x00); /* Set Baud rate - Divisor Latch High Byte */
    
    outportb(PORT1 + 3 , 0x03); /* 8 Bits, No Parity, 1 Stop Bit */
    
    outportb(PORT1 + 2 , 0xC7); /* FIFO Control Register */
    
    outportb(PORT1 + 4 , 0x0B); /* Turn on DTR, RTS, and OUT2 */
    
    outportb(0x21,(inportb(0x21) & 0xEF)); /* Set Programmable Interrupt Controller */
    
    /* COM1 (IRQ4) - 0xEF */
    
    /* COM2 (IRQ3) - 0xF7 */
    
    /* COM3 (IRQ4) - 0xEF */
    
    /* COM4 (IRQ3) - 0xF7 */
    
    outportb(PORT1 + 1 , 0x01); /* Interrupt when data received */
    
    printf("\nSample Comm's Program. Press ESC to quit \n");
    
    do {
    
    if (bufferin != bufferout){ch = buffer[bufferout];
    
    bufferout++;
    
    if (bufferout == 1024) {bufferout = 0;}
    
    printf("%c",ch);}
    
    if (kbhit()){c = getch();
    
    outportb(PORT1, c);}
    
    } while (c !=27);
    
    outportb(PORT1 + 1 , 0); /* Turn off interrupts - Port1 */
    
    outportb(0x21,(inportb(0x21) | 0x10)); /* MASK IRQ using PIC */
    
    /* COM1 (IRQ4) - 0x10 */
    
    /* COM2 (IRQ3) - 0x08 */
    
    /* COM3 (IRQ4) - 0x10 */
    
    /* COM4 (IRQ3) - 0x08 */
    
    setvect(INTVECT, oldport1isr); /* Restore old interrupt vector */
    
    }

    برای تستش می تونی ورودی خروجی پورت سریال com1 رو به هم وصل کنی و با زدن هر کلید کاراکتر مربوط به آن کلید به پرت فرستاده می شود و جون خروجی وصل ورودی هست کارکتر فرستاده شده دباره دریافت و روی صفحه نمایش چاپ می شود. من برنامه رو تو Torbo C++ 3.0 کامپایل کردم و جواب می ده.ان شاالله که ماهی گیر رو هم یا می گیری.
    کتاب جعفر نژاد هم کافیه.تابع : outportb(address,data)
    موفق باشی!
نمایش نتایج: از 1 به 4 از 4

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

  1. راه اندازی پورت سریال توسط ASF
    توسط homayon در انجمن XMEGA
    پاسخ: 1
    آخرين نوشته: 2015/12/12, 15:31
  2. ايجاد ارتباط با PC توسط پورت USB
    توسط mohsen_k.nazar در انجمن میکروکنترلرهای AVR
    پاسخ: 7
    آخرين نوشته: 2014/09/12, 00:49
  3. تغيير پورت ارسال اس ام اس توسط sim900
    توسط trrstrima در انجمن ماژول های GPS - GSM - GPRS
    پاسخ: 0
    آخرين نوشته: 2013/04/09, 12:39
  4. نوشتن روي پورت LPT توسط AVR
    توسط zahedi13 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2007/12/02, 16:23
  5. تست ترانزيستور توسط پورت LPT
    توسط رضا حاجي زاده در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 0
    آخرين نوشته: 2006/06/06, 13:10

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

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

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

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

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