Thông báo

Collapse
No announcement yet.

Chạy chữ trên LCD sử dụng atmega 8 và codevision

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

  • Chạy chữ trên LCD sử dụng atmega 8 và codevision

    hic, tình hình là căng thẳng quá.. viết và kiểm tra quá trời, nó bảo không lỗi gì cả mà nhúng vào proteus không chạy, mấy pro ơi, nó bị sao đây:

    #include <mega8.h>
    #include <alcd.h>
    #include <string.h>
    #include <delay.h>
    unsigned int i,j;
    char lenh[]="Xin chao cac ban";
    void main(void)
    {
    // RS - PORTB Bit 0
    // RD - PORTB Bit 1
    // EN - PORTB Bit 2
    // D4 - PORTB Bit 4
    // D5 - PORTB Bit 5
    // D6 - PORTB Bit 6
    // D7 - PORTB Bit 7
    lcd_init(16);

    while (1)

    {

    i=16;
    j=0;
    for(i=16;i>0;i--)

    if(j=0,j<17-i,j++)
    {
    lcd_gotoxy(i+j,0);
    lcd_putchar(lenh[j]);
    delay_ms(500);

    }
    }
    lcd_gotoxy(0,1);
    lcd_puts("why!");
    delay_ms(1000);

    }
    tình hình là mình sử dụng codevision cho atmega 8, và để nó auto bước đầu, nên chỉ còn khai báo một số thứ và viết chương trình thôi.... Mục đích của code là chạy chữ trên LCD với chuỗi ký tự nhỏ hơn 16 ký tự. Kể cả chữ Why! cũng không đưa ra LCD được nữa, lạ thật, vậy mà khi bỏ cái trên thì chữ Why! xuất hiện, hic.

  • #2
    Nguyên văn bởi cntlmh Xem bài viết
    hic, tình hình là căng thẳng quá.. viết và kiểm tra quá trời, nó bảo không lỗi gì cả mà nhúng vào proteus không chạy, mấy pro ơi, nó bị sao đây:

    #include <mega8.h>
    #include <alcd.h>
    #include <string.h>
    #include <delay.h>
    unsigned int i,j;
    char lenh[]="Xin chao cac ban";
    void main(void)
    {
    // RS - PORTB Bit 0
    // RD - PORTB Bit 1
    // EN - PORTB Bit 2
    // D4 - PORTB Bit 4
    // D5 - PORTB Bit 5
    // D6 - PORTB Bit 6
    // D7 - PORTB Bit 7
    lcd_init(16);

    while (1)

    {

    i=16;
    j=0;
    for(i=16;i>0;i--)

    if(j=0,j<17-i,j++)
    {
    lcd_gotoxy(i+j,0);
    lcd_putchar(lenh[j]);
    delay_ms(500);

    }
    }
    lcd_gotoxy(0,1);
    lcd_puts("why!");
    delay_ms(1000);

    }
    tình hình là mình sử dụng codevision cho atmega 8, và để nó auto bước đầu, nên chỉ còn khai báo một số thứ và viết chương trình thôi.... Mục đích của code là chạy chữ trên LCD với chuỗi ký tự nhỏ hơn 16 ký tự. Kể cả chữ Why! cũng không đưa ra LCD được nữa, lạ thật, vậy mà khi bỏ cái trên thì chữ Why! xuất hiện, hic.
    Kiểm tra lại chương trình đi!!!
    if(j=0,j<17-i,j++) là lệnh gì vậy.
    Còn đoạn:
    lcd_gotoxy(0,1);
    lcd_puts("why!");
    delay_ms(1000);

    đặt ngoài vòng while(1){} như vậy thì bao giờ mới đến phiên nó chạy.
    Hôm nay trời nắng chang chang.
    Mèo con đi học chẳng mang thứ gì.
    Chỉ mang một cái bút chì.
    Và mang một mẩu bánh mì con con.

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X