Thông báo

Collapse
No announcement yet.

LED MATRIX DISPLAY

Collapse
This topic is closed.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • bảng quang báo

    Tôi đang thiết kế một bảng quang báo với số dòng 16 X 96 cột . Gủi kèm đây sơ đồ 1 modul . Ai có kinh nghiệm xin chỉ giáo

    Comment


    • nhờ các cao thủ giúp đỡ

      :Em đang làm bài tập dài về quang báo,thầy yêu cầu có sản phẩm thực bài tập của em la hiển thị 1 đoạn tin trên led matrix 8x96, Em dùng 89s52,quét cột dùng 74hc138 (2 con 74138 dùng điều khiển chọn chân cho 12 con 74138 còn lai)Em dung P0 để điều khiển quét cột, P2 xuất dữ liệu ra hàng,Dưới đây là mã chương trình Em dùng Em đã thủ với 2 matrix 8x8 thi chay ổn nhưng chạy 12 con 8x8 thi led nhay ko điều chỉnh được mong các cao thủ giup đỡ
      Chương trình của Em là:

      ;+++++++++By DUCTDH2+++++++++++++
      ORG 0000H
      LJMP MAIN
      ORG 0030H
      MAIN:
      MOV DPTR,#MYLOVE
      HIENTHI:
      MOV R4,#65
      MOV R5,#40
      PLAY:
      MOV R3,#0
      MOV R2,#0
      LOOP:
      MOV A,R3
      MOVC A,@A+DPTR
      MOV P2,A;XUAT DU LIEU RA HANG
      MOV P0,R2;QUET COT
      ACALL DELAY
      MOV P0,#00000000B
      ACALL DELAY1
      INC R3
      INC r2
      CJNE R3,#96,LOOP
      DJNZ R5,PLAY
      INC DPTR
      MOV R5,#40
      DJNZ R4,PLAY
      NOP
      STOP_2:
      MOV P2,#00000000B
      MOV P0,#00000000B
      ACALL DELAY
      LJMP MAIN
      DELAY:
      MOV R7,#2
      LOOP1:
      MOV R6,#127
      LOOP2:
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      DJNZ R6,LOOP2
      DJNZ R7,LOOP1
      RET
      DELAY1:
      MOV R7,#4
      DJNZ R7,$
      RET
      ;$$$$$$$$$$$ DU LIEU $$$$$$$$$$$$
      MYLOVE:
      DB 11111111B,11111111B,11111111B,11111111B,11111111B; NOT
      DB 11100000B,11101110B,11101110B,11101110B,11110001B
      DB 11111111B
      DB 11100001B,11111110B,11111110B,11111110B,11100001B
      DB 11111111B
      DB 11110001B,11101110B,11101110B,11101110B,11110101B
      DB 11111111B
      DB 11100110B,11111010B,11111010B,11111010B,11100001B
      DB 11111111B
      DB 11100000B,11101010B,11101010B,11101010B,11101010B
      DB 11111111B
      DB 11100001B,11111110B,11111110B,11111110B,11100001B
      DB 11111111B
      DB 11100000B,11110111B,11111011B,11111101B,11100000B
      DB 11111111B
      DB 11110001B,11101110B,11101110B,11101010B,11101000B
      DB 11111111B
      DB 11111100B,11110011B,11101011B,11110011B,11111100B
      DB 11111111B
      DB 11100000B,11110111B,11111011B,11111101B,11100000B
      DB 11111111B
      END
      |

      Comment


      • anh hoctro89 cho em hỏi tí nha , em có mạch nạp 89xx qua cổng com mà sao phần mềm chỉ nhận có con 89c51 còn con s52, c55 thì nó không nhận ra vậy , có phải ezdl41 không phải bản đầy đủ không ? nếu vậy thì anh nào có choem xin với ! em cảm ơn nhiều !

        Comment


        • Nguyên văn bởi elove Xem bài viết
          anh hoctro89 cho em hỏi tí nha , em có mạch nạp 89xx qua cổng com mà sao phần mềm chỉ nhận có con 89c51 còn con s52, c55 thì nó không nhận ra vậy , có phải ezdl41 không phải bản đầy đủ không ? nếu vậy thì anh nào có choem xin với ! em cảm ơn nhiều !
          Tôi cũng có 2 mạch nạp loại này, 1 cái dùng ez3 và 1 cái dùng ez4. Chúng nạp được điển hình những con như 89c2051,89C51, 89C52... đây là loại nạp //. còn 89S52 nó nạp nối tiếp nên mạch này ko nạp được. Còn 89C55 lúc nạp được lúc không, phần lớn là không nạp được.
          Bạn nên thay mạch nạp khác cho cơ động.

          email:mahaco@fpt.vn

          Comment


          • Nguyên văn bởi duyphi Xem bài viết
            Nếu là lập trình trên máy tính, nghĩa là bảng đó có giao tiếp với PC thì đơn giản là anh chỉ việc dùng hàm Get key, và kiểm tra nếu là mã của Enter là anh cho xuất những gì mà cô thư ký mới gỏ là xong.
            Như vậy viết đến đâu mà hễ nhấn Enter là xem như xong!
            anh gởi cái demo lên cho em coi với được ko,em đang làm đồ án cái này mà chưa hiểu lắm.
            Em vẫn chưa hiểu là khi dữ liệu từ pc đưa xuống sẽ được lưu vào trong bộ đệm,sau đó con vdk sẽ đưa dữ liệu từ đây ra led.Nhưng mà làm sao con vdk nhận ra font đc.
            Xin anh nói rõ dùm em chổ này,em mới vô nghề nên còn gà lém,nếu có chổ nào stupid thì mong anh nhẹ nhàng khuyên bảo

            Comment


            • Help ... Em

              sao ko có cao thủ nao chịu giúp em sao
              |

              Comment


              • Nguyên văn bởi ductdh2 Xem bài viết
                sao ko có cao thủ nao chịu giúp em sao
                Cậu dùng thạch anh 32Mhz là ổn ngay, còn code Asem thì chịu ,mọi người đều ngại đọc!
                Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

                Comment


                • chào cả nhà!
                  mình muốn hỏi cả nhà xem có cách hiển thị cho ma trận led nào hay k?
                  xưa nay mình vẫn dùng cách hiển thị trâu bò là định nghĩa một vùng trong ram để ghi nhớ nội dung ký tự cần hiển thị như thế thi bộ nhớ k đủ.Mình đang nghĩ đến cách dùng ram ngoài.Có ai biết thì chỉ giúp minh với!

                  Comment


                  • Nguyên văn bởi ductdh2 Xem bài viết
                    sao ko có cao thủ nao chịu giúp em sao
                    Bạn hỏi về nguyên tắc thực hiện thì được, chứ gửi code hợp ngữ cho 8051 vào luồng của PIC thì rất ít khả năng nhận được sự hỗ trợ.

                    Thân,
                    Biển học mênh mông, sức người có hạn

                    Comment


                    • Thank !

                      Cám ơn các bác chi giáo,Em đã ghép2 modul 96x16nó chạy tạm ổn rồi,cám ơn 2 bác đã góp ý
                      |

                      Comment


                      • tới hỏi tí.
                        sao cái chữ tớ xuất ra thấy nó bị lem lem
                        xử lý chổ này sao nhỉ.
                        biết la trong hàm này thôi mà thử mấy cách rồi mà chưa được.các cao nhân chỉ với.
                        Code:
                        interrupt [TIM1_OVF] void timer1_ovf_isr(void)
                        {                   
                        unsigned char i;      
                        
                        TCNT1H=0xFE; 
                        TCNT1L=0xC0;   
                        for(i=0;i<16;i++)
                                spi(displayx[i][quet]);     
                        PORTB=quet++;  
                        LATCH=0;
                        LATCH=1; 
                        if(quet==16)
                                quet=0; 
                        }
                        Cty TNHH Cơ Điện tử Hiệp Phát.
                        ------------------------------------------
                        Trần Hoàng Giang
                        11-04-1985

                        Mobil: 0905 438 533

                        Comment


                        • Nguyên văn bởi irf540 Xem bài viết
                          tới hỏi tí.
                          sao cái chữ tớ xuất ra thấy nó bị lem lem
                          xử lý chổ này sao nhỉ.
                          biết la trong hàm này thôi mà thử mấy cách rồi mà chưa được.các cao nhân chỉ với.
                          Code:
                          interrupt [TIM1_OVF] void timer1_ovf_isr(void)
                          {                   
                          unsigned char i;      
                          
                          TCNT1H=0xFE; 
                          TCNT1L=0xC0;   
                          for(i=0;i<16;i++)
                                  spi(displayx[i][quet]);     
                          PORTB=quet++;  
                          LATCH=0;
                          LATCH=1; 
                          if(quet==16)
                                  quet=0; 
                          }
                          cậu đưa ra có nhiêu đây mình chả hiểu gì hết,nhưng mà lem thì đơn giản thôi chỉ cần tắt các cột, các hàng rồi mới cho hiển thị lại là hết thôi.

                          Comment


                          • Nguyên văn bởi irf540 Xem bài viết
                            tới hỏi tí.
                            sao cái chữ tớ xuất ra thấy nó bị lem lem
                            xử lý chổ này sao nhỉ.
                            biết la trong hàm này thôi mà thử mấy cách rồi mà chưa được.các cao nhân chỉ với.
                            Code:
                            interrupt [TIM1_OVF] void timer1_ovf_isr(void)
                            {                   
                            unsigned char i;      
                            
                            TCNT1H=0xFE; 
                            TCNT1L=0xC0;   
                            for(i=0;i<16;i++)
                                    spi(displayx[i][quet]);     
                            PORTB=quet++;  
                            LATCH=0;
                            LATCH=1; 
                            if(quet==16)
                                    quet=0; 
                            }
                            Cái đoạn mã em đã chỉ cụ thể bên phần tìm hiểu quang báo rồi mà bác chẳng chịu xem. Em có thể tăng tốc độ chạy chữ lên cực nhanh mà chẳng lem nhem gì hết.
                            Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
                            Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

                            Comment


                            • lem nhem

                              Nguyên văn bởi irf540 Xem bài viết
                              tới hỏi tí.
                              sao cái chữ tớ xuất ra thấy nó bị lem lem
                              xử lý chổ này sao nhỉ.
                              biết la trong hàm này thôi mà thử mấy cách rồi mà chưa được.các cao nhân chỉ với.
                              Code:
                              interrupt [TIM1_OVF] void timer1_ovf_isr(void)
                              {                   
                              unsigned char i;      
                              
                              TCNT1H=0xFE; 
                              TCNT1L=0xC0;   
                              for(i=0;i<16;i++)
                                      spi(displayx[i][quet]);     
                              PORTB=quet++;  
                              LATCH=0;
                              LATCH=1; 
                              if(quet==16)
                                      quet=0; 
                              }
                              lem có thể do phần mềm hoặc do phần cứng. đa số khi dịch chữ lem chủ yếu là do phần cứng của bạn xử lý chưa tốt. hoặc nhiễu do nguồn cũng dẫn đến lem. bạn kiểm tra lại xem lem là do phần cứng hay phần mềm
                              LMD 238 Tăng Bạc Hổ - TP. Quy Nhơn.

                              Comment


                              • chào các bác!
                                em có một chương trình nhỏ này mong được các bác giúp đỡ. đó là chương trình cho hiển thị chữ "A" trên led matrrix 8*8 và cho nó chạy từ phải sang trái.phần cứng em làm như thế này:
                                - VDK atmega16
                                - PORTC để xuất dữ liệu ra cột thông qua 74hc595
                                - PORTB nối với 74hc154 để quét hàng
                                sơ đồ:

                                Click image for larger version

Name:	chu_A.JPG
Views:	4
Size:	125.8 KB
ID:	1330279
                                còn đây là chương trình em viết ma van chưa được mong các bác giúp:
                                code_chu_A:

                                Code:
                                #include <mega16.h>
                                #include <delay.h>
                                // dinh nghia cac chan cuar 595
                                #define Data PORTC.0
                                #define Clk PORTC.1
                                #define Latch PORTC.2
                                // Dinh nghia chan don kenh quet Matran
                                #define Rowth PORTB 
                                unsigned int Buff[8][1];
                                char const Font[5]=
                                /*0 A */ {248,36,34,36,248};
                                
                                void Delay(unsigned int i)
                                {
                                while(--i){};
                                }
                                
                                //Check bit5 cua mot bien
                                unsigned int CheckBit5(unsigned int x)
                                {
                                return (x>>5);
                                }
                                
                                
                                // Gui du lieu ra 595. 
                                void Send_1_595(unsigned int a1)
                                {
                                unsigned char i;
                                unsigned int Temp;
                                
                                Clk=0;
                                
                                Temp=a1;
                                for (i=0;i<=5;i++)
                                {
                                if (CheckBit5(Temp)==1) Data=1;
                                else Data=0;
                                Temp<<=1;
                                Clk=1;
                                Clk=0; 
                                //delay_ms(10);
                                }
                                Latch=1;//day du lieu ra
                                Latch=0;//suon len chot du lieu ra 
                                }
                                
                                // chuong trinh con hien thi du lieu trong bo nho dem
                                
                                void Display(void)
                                {
                                unsigned char i,j;
                                
                                for (i=1;i<=60;i++)
                                {
                                for (j=0;j<=7;j++)
                                {
                                Send_1_595(Buff[j][0]);// Day du lieu ra
                                Rowth=0; // Tat toan bo hien thi 
                                Delay(150);
                                Latch=1;// day du lieu ra
                                Latch=0; //suon len chot du lieu ra
                                Rowth=0;
                                Delay(100);
                                Rowth=0b1<<j; 
                                
                                Delay(1); 
                                } 
                                }
                                }
                                
                                //////////////////////////////////////////////////////////////////////////////
                                //main program
                                //////////////////////////////////////////////////////////////////////////////
                                void main(void)
                                { 
                                
                                DDRC=0xFF;
                                PORTC=0xFF;
                                DDRB=0xff;
                                PORTB=0xff;
                                //Clk=0;
                                //Data=0;
                                //Latch=0;
                                while(1)
                                {
                                unsigned char Rowth,col;
                                for(Rowth=0;Rowth<8;Rowth<<=1)
                                for(col=0;col<8;col++)
                                
                                { PORTC=Font[col];
                                PORTC=1<<col;
                                PORTB=Rowth++;
                                delay_ms(1);
                                } 
                                
                                };
                                
                                }
                                /////////////////////////////////////////////////////
                                // end of main program
                                /////////////////////////////////////////////////////
                                Last edited by namqn; 28-03-2008, 20:17.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X