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

            Đang tải...
            X