Thông báo

Collapse
No announcement yet.

Mạch chạy chữ hiễn thị trên led matrix

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

  • #16
    Nguyên văn bởi hoclamgi Xem bài viết
    chào mọi người
    mình muốn làm một mạch đơn giản cho hiển thị lcd
    nhưmg lập trình xong nó chẳng chạy gì cả
    mình up lên đây mong mọi người chỉ giúp em nó bị nỗi chỗ nào nhé
    mình dùng codevision AVR.
    #include <mega16.h>
    #include <delay.h>

    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x12 ;PORTD
    #endasm
    #include <lcd.h>

    // Declare your global variables here


    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTA=0x00;
    DDRA=0x00;

    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTB=0x00;
    DDRB=0x00;

    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTC=0x00;
    DDRC=0x00;

    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
    PORTD=0x00;
    DDRD=0xff;

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer 1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer 1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer 2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;

    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;

    // LCD module initialization
    lcd_init(16);
    lcd_clear();
    _lcd_ready();
    _lcd_write_data(0x0e);
    _lcd_ready();
    _lcd_write_data(0x2c);
    _lcd_ready();
    lcd_gotoxy(5,0);
    lcd_putchar('V');
    lcd_putchar('I');
    lcd_putchar('E');
    lcd_putchar('T');
    lcd_putchar(' ');
    lcd_putchar('N');
    lcd_putchar('A');
    lcd_putchar('M');
    lcd_gotoxy(3,1);
    lcd_putchar('V');
    lcd_putchar('I');
    lcd_putchar(' ');
    lcd_putchar('D');
    lcd_putchar('I');
    lcd_putchar('E');
    lcd_putchar('U');
    lcd_putchar(' ');
    lcd_putchar('K');
    lcd_putchar('H');
    lcd_putchar('I');
    lcd_putchar('E');
    lcd_putchar('N');
    delay_ms(100);
    while (1)
    {
    // Place your code here

    };
    }
    MỌI người xem giúp em nhé
    mình không hiểu nỗi ở đâu
    mình cảm ơn
    làm như thế sẽ không chạy được.có phải ở tọa độ(5,0) hiển thị M còn ở tọa độ(3,1)thì hiển thị chữ N.
    để chạy được có 2 cách:
    cách 1:không cho chạy chữ mà hiển thị luôn chữ như trên
    lcd_clear();
    lcd_goto(0,0);//hàng 0,cột 0
    lcd_printf("VIET NAM");
    lcd_goto(1,0);//hàng 1 cột 0
    lcd_printf("DIEU KHIEN");
    delay_ms(200);
    cách 2:chạy chữ
    unsigned char mang1={'V','I','E','T',' ','N','A','M'};
    unsigned char mang2={'D','I','E','U',' ','K','H','I','E','N'};
    lcd_gotoxy(0,0);
    for(i=0;i<8;i++)
    lcd_printf(mang1[i]);
    lcd_gotoxy(1,0);
    for(j=0;j<10;j++)
    lcd_printf(mang2[j]);
    OK

    Comment


    • #17
      theo mình nghĩ, nếu các bạn làm mạch led matrix và để mở rộng thì nên quét theo hàng : hàng dùng 74138 và phần tử thêm để công suất phù hợp vơi modul của bạn, cột dùng thanh ghi dịch 74595 để dịch và chốt dữ liệu,mình mới làm được mạch mô phỏng còn thực thế thì chưa? đang nhờ bác dangdung giúp đỡ về công suât để làm mạch thực tế ^^
      link mô phỏng của mình nè, ai có cần thì download về xem nhé.chúc thành công
      http://www.mediafire.com/?gd2tqizmml4

      Comment


      • #18
        mình cũng mới vào VDK phần này nên chưa hiểu rõ mong các pro chỉ giáo thêm

        Comment


        • #19
          các anh có thể giúp em dược không: ở môn chuyên đề công nghệ mới có bài hiển thị dòng chữ trên led ma trận 88. phải chia xung từ 500mhz về 10hz nữa mà em chẳng biết phải làm từ đâu.hình như là dùng PLD VÀ ASIC để làm ý..ai giúp em với..em cảm ơn!!

          Comment


          • #20
            Nguyên văn bởi mr.ngoc Xem bài viết
            cái này mình đã từng làm nhiểu rồi mạc ma trận dùng 74138 để quét cột. chạy rất oke luôn!
            nhưng vấn để mở rộng hơi khó theo lý thuyết 3 chân G,E1,E2 đó mình sẽ đk đươc tối đa la` 64 cột nhưng mình thử 40 côt thì ok còn trên 40 cột thì chạy loạn luôn mình kt đi kt lại nhiều rồi ko biết sao nữa?
            Nguyên văn bởi matrix Xem bài viết
            theo mình nghĩ, nếu các bạn làm mạch led matrix và để mở rộng thì nên quét theo hàng : hàng dùng 74138 và phần tử thêm để công suất phù hợp vơi modul của bạn, cột dùng thanh ghi dịch 74595 để dịch và chốt dữ liệu,mình mới làm được mạch mô phỏng còn thực thế thì chưa? đang nhờ bác dangdung giúp đỡ về công suât để làm mạch thực tế ^^
            link mô phỏng của mình nè, ai có cần thì download về xem nhé.chúc thành công
            demo
            Nếu muốn quét LED ma trân tốt thì nên quét dòng. vì khi xuất dlieu ra hết các côt. Và cho dòng đóng mở sẽ tốt hơn. đô sáng đảm bảo hơn. Điều nay thấy rõ hơn kh bảng led matrix có số côt lớn.

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            • bqviet
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi bqviet
              Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
              06-12-2025, 17:17
            • nguyendinhvan
              Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
              bởi nguyendinhvan
              Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
              05-12-2025, 19:59
            • afrendly
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi afrendly
              Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
              04-12-2025, 01:27
            • nick22
              Trả lời cho Máy điện châm ?
              bởi nick22
              Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
              01-12-2025, 13:23
            Đang tải...
            X