Thông báo

Collapse
No announcement yet.

Code giao tiếp máy tính cho led ma trận

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

  • Code giao tiếp máy tính cho led ma trận

    Mình mới viết đoạn code cho viêch giao tiếp máy tính để hiển thị lên led ma trận. Mình dùng Hyper Teminal để gởi dữ liệu từ PC sang led. Chương trinh của mình không báo lổi nhưng khi gởi 1 kí tự nó kô hiển thị được , nhờ các bạn xem giúp đoạn code có phải do thuật toán sai không, hay vấn đề khác .
    CODE :
    #include <REGX52.H> // Su dung 89c52 quet hang
    #define SHIFT P2_2
    #define LATCH P2_1
    #define DATA P2_0
    unsigned int byte_cot,che_bit,hang,chay,cot,toc_do;
    unsigned char chay_gia_tri_bang,ki_tu, uart_data;
    void delay(unsigned char time);
    void dich_bit();
    void hien_thi();
    void giai_ma();
    void khoi_tao();
    void receive_data_pc ();
    unsigned char code ma_che_bit[]=
    {0xFF,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
    unsigned char code font[]={
    0xFF,0x8F,0x77,0x77,0x07,0x77,0x77,0x77,//65(A)
    0xFF,0x0F,0x77,0x77,0x0F,0x77,0x77,0x0F,//66(B)
    0xFF,0x8F,0x77,0x7F,0x7F,0x7F,0x77,0x8F//;67(C)
    };
    void delay(unsigned char time )
    {
    unsigned char i,j;
    for(i=0;i<time;i++)
    for(j=0;j<121;j++);

    }
    void khoi_tao()
    {
    SCON =0X50;// UART CHE DO 1 (8 BIT), REN 1
    TMOD=0X20; // TIMER 1 MODE 2, TIMER 0 MODE 1
    TH1=0XFD; // BAUD 9600
    TH1=0XFD; // BAUD 9600 TA: 11.0592
    TR1=1; // KHOI DONG TIMER 1
    IE=0X90;// CHO PHEP NGAT TOAN CUC VA NGAT NOI TIEP DE XU LY DU LIEU DEN
    TI=0;
    RI=0;
    }
    void receive_data_pc () interrupt 4
    {
    if(RI==1)
    {
    RI=0; // Xoa RI de xac dinh du lieu co duoc truyen tu PC xuong ?
    uart_data =SBUF; // Khi Goi du lieu tu PC --> COM thi lay tu SBUF
    // Dua du lieu vao chan DATA cua IC 595
    }
    }
    void chon_hang(unsigned char hang)
    {
    switch(hang)
    {
    case 1:
    {
    P0=0x7F;// HANG 1
    break;
    }
    case 2:
    {
    P0=0xBF;//hang 2
    break;
    }
    case 3:
    {
    P0=0xDF;//hang3
    break;
    }
    case 4:
    {
    P0=0XEF;//hang 4
    break;
    }
    case 5 :
    {
    P0=0xF7;// HANG 5
    break;
    }
    case 6:
    {
    P0=0xFB;// hang 6
    break;
    }
    case 7:
    {
    P0=0xFD;//hang 7
    break;
    }
    case 8 :
    {
    P0=0xFE;// hang 8
    break;
    }

    }
    }
    void dich_bit()
    {
    for(cot=24;cot>0;cot--)
    {

    che_bit=ma_che_bit[hang];
    byte_cot=font[(ki_tu-32)*8+hang+cot];// quet led
    DATA=(bit)(byte_cot&che_bit);
    SHIFT=1;// dich cot
    SHIFT=0;
    DATA=1;
    }
    }
    void hien_thi()
    {
    for(hang=0;hang<8;hang++)
    {
    dich_bit();
    chon_hang(hang);
    LATCH = 1;
    LATCH = 0;
    delay(1);
    P0=0xff;
    }

    }
    void main(void)
    {

    P0=0xff;
    ki_tu=uart_data;
    khoi_tao();
    while(1)
    {

    hien_thi();

    }
    }


    Mong các bạn xem giúp mình chút nha. thanks trước .
    Học hỏi là trên hết .

  • #2
    Máy anh cao thủ đâu hết rồi, giúp em chút đi, em đang làm đò án, giờ bí quá phải nhờ đến sự giúp đỡ của anh em. Mong giúp mình .
    Học hỏi là trên hết .

    Comment


    • #3
      pro ơi la pro , đi đâu hết rồi , giúp em đoạn code trên cái . Chả thấy ai ghi gì hết vậy.
      Học hỏi là trên hết .

      Comment


      • #4
        ko co mach, ko co mo phong lam sau toi biet ban viet gi. lam sau giup duoc day. add code va mo fong len luon di.

        Comment


        • #5
          hehe C em chịu rồi ko giúp dc pác
          pác post file mô phỏng lun để anh em còn giúp
          good luck!!!1
          8051 là con em viết thành thạo. em sẵn sàng giúp đỡ các pác nếu em có thể
          liên lạc với em qua địa chi email: Mob: 01882.076.989

          Comment

          Về tác giả

          Collapse

          wish_blue07 10_9 Tìm hiểu thêm về wish_blue07

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

          Collapse

          Đang tải...
          X