Thông báo

Collapse
No announcement yet.

giúp em lập trình giao tiếp max232 với máy tính nha!!:(

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp em lập trình giao tiếp max232 với máy tính nha!!:(

    em đang gặp một vấn đề là khi em dùng mạch giao tiếp từ 8051 sang cổng COM của máy tính dùng chương trình Hyper Terminal của WinXP để hiển thị ký tự ASCII từ vi xử lý phát ra thì trên Hyper Terminal ko thể nhận đc..em kết nối P3.0 và P3.1 của 8051 với chân 10,11 của max232 và từ max232 có 3 chân cổng COM 9 female như mạch nạp của 8051, em dùng thạch anh 11,0592MHz và chỉnh timer 1 (-3) để nhập baud rate là 9600, hyper terminal cũng chỉnh 9600 baud rate...vậy em cần kết nối như thế nào để hyper ternimal có thể nhận đc ngay ký tự từ 8051 phát ra...các chân của max232 phải kết nối như thế nào và cáp truyền dữ liệu phải kết nối như thế nào cho đúng...mấy anh giúp dùm e với....cám ơn các anh rất nhiều...
    tp hcm
    email :

  • #2
    /************************************************** *****************
    Project : CHUONG TRINH DIEU KHIEN LED MA TRAN SU DUNG CONG COM
    DO AN MON DO LUONG VA DIEU KHIEN TU MAY TINH
    Date : 24/02/2010
    Author : leemanhj916@gmail.com
    Phone : 0169 3829 235
    Company : FEE - Hanoi University of Industry

    IC type : AT8051 (89S52)
    Clock : 11.0592 MHz
    Command :
    ************************************************** ******************/

    #include <REGX52.H>
    #include <stdio.h>

    unsigned char Mem[80];
    unsigned char k,tg,sokt;
    char j;
    char n=0;
    unsigned int x,d;
    unsigned char code MaLed[] ={ /// Quet cot
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //Dau cach
    0xFF,0x07,0x03,0xB9,0x03,0x07,0xFF,0xFF, //A
    0xFF,0x01,0x01,0x6D,0x01,0x93,0xFF,0xFF, //B
    0xFF,0x83,0x01,0x7D,0x19,0x9B,0xFF,0xFF, //C
    0xFF,0x01,0x01,0x7D,0x01,0x83,0xFF,0xFF, //D
    0xFF,0x01,0x01,0x6D,0x6D,0xFF,0xFF,0xFF, //E
    0xFF,0x01,0x01,0xed,0xED,0xFF,0xFF,0xFF, //F
    0xFF,0x83,0x01,0x7D,0xAD,0x09,0x0B,0xFF, //G
    0xFF,0x01,0x01,0xEF,0x01,0x01,0xFF,0xFF, //H
    0xFF,0xFF,0x7D,0x01,0x01,0x7D,0xFF,0xFF, //I
    0xFF,0xBF,0x3F,0x7D,0x01,0x81,0xFD,0xFF, //J
    0xFF,0x01,0x01,0x83,0x19,0x7D,0xFF,0xFF, //K
    0xFF,0xFF,0x01,0x01,0x3F,0x3F,0xFF,0xFF, //L
    0x01,0x01,0xC7,0x0F,0xC7,0x01,0x01,0xFF, //M
    0xFF,0x01,0x01,0xE3,0x8F,0x01,0x01,0xFF, //N `-
    0xFF,0x83,0x01,0x7D,0x01,0x83,0xFF,0xFF, //O
    0xFF,0x01,0x01,0xDD,0xC1,0xE3,0xFF,0xFF, //P
    0xFF,0x83,0x01,0x7D,0x5D,0x01,0x83,0x7F, //Q
    0xFF,0x01,0x01,0xCD,0x01,0x23,0xFF,0xFF, //R
    0xFF,0xB3,0x21,0x6D,0x09,0x9B,0xFF,0xFF, //S
    0xFF,0xF9,0xF9,0x01,0x01,0xF9,0xF9,0xFF, //T
    0xFF,0x81,0x01,0x7F,0x01,0x81,0xFF,0xFF, //U
    0xFF,0xE1,0x81,0x3F,0x81,0xE1,0xFF,0xFF, //V
    0xE1,0x81,0x3F,0x87,0x87,0x3F,0x81,0xE1, //W
    0xFF,0x39,0x11,0xC7,0xC7,0x11,0x39,0xFF, //X
    0xFF,0xF9,0xE1,0x07,0x07,0xE1,0xF9,0xFF, //Y
    0xFF,0x3D,0x1D,0x4D,0x65,0x71,0x79,0xFF //Z
    };

    //--------[ b a b y i l o v e y o u .........™ ]---------->

    void convert(unsigned char kytu) // Ham chuyen ky tu sang ma Matrix LED
    { // Va dua vao mot mang
    unsigned int temp,i;
    if (kytu>64)
    temp = (kytu-64)*8;
    else
    temp = 0;
    for(i=temp; i<temp+8; i++)
    Mem[k++] = MaLed[i];
    }

    //-------------------------------
    void convert_str(unsigned char *str)
    {
    k=0;
    //for(i=0;i<sokt*8;i++)
    sokt=0;
    while(*str)
    {
    convert(*str);
    str++;
    sokt++;
    }
    }


    //---------------------------------
    void dichtrai(void)
    {
    unsigned char temp,i;
    temp = Mem[0];
    for(i=0;i<(sokt*8-1);i++)
    Mem[i] = Mem[i+1];
    Mem[sokt*8-1] = temp;
    }


    //-------------------------------

    void main(void)
    {
    unsigned char kt=0,temp,ch,chuoi[8];
    SCON = 0x52;
    TMOD = 0x22; // Timer 1 va Timer0 Mode 2
    TH1 = TL1 = -3; // Toc do Baud la 9600
    IE = 0x82;
    TH0 = TL0 = -100;

    convert_str("CON GA");
    TR0 = 1;
    TR1 = 1;
    TI=0;
    RI=0;
    while(1)
    {
    //temp = _getkey();
    //P1 = ~temp;
    do
    {
    temp = _getkey();
    }
    while(temp != '@');
    kt=0;
    TR0 = 0;
    do
    {
    temp = _getkey();
    ch = temp;
    if (ch!='@')
    chuoi[kt++]=ch;
    }
    while(ch != '@');
    convert_str(chuoi);
    TR0 = 1;
    }
    }

    //-------------------------------
    void NgatTimer0(void) interrupt 1
    {
    TR0 = TF0 = 0; // Dung Timer 0 va Xoa co tran
    d++;
    if(tg++>10)
    {
    if(x==0x0000)
    x=0x0001;
    P1 = 0xFF; // xoa du lieu tren cot
    P0 = x%256;
    P2 = x/256;
    P1 = Mem[n];
    x<<=1;
    if(n++>=15)
    n=0;
    tg=0;
    }
    if(d==2500)
    {
    dichtrai();
    d =0;
    }
    TR0 = 1;
    }

    Comment


    • #3
      Binh thuong thoi

      Comment

      Về tác giả

      Collapse

      krilin852000 Tìm hiểu thêm về krilin852000

      Bài viết mới nhất

      Collapse

      Đang tải...
      X