Thông báo

Collapse
No announcement yet.

LCD lập trình C. không chạy được trên mô phỏng?

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

  • LCD lập trình C. không chạy được trên mô phỏng?

    mấy anh xem dùm e chương trình này sao lại không hiển thị được trên mô phỏng Proteus
    nạp trên bo mạch thực tế thì lại chạy??

    file mô phỏng: http://www.mediafire.com/?buefa5a9vkahghh

    code:

    #include <AT89X51.H>
    #include <stdio.h>
    unsigned int n,i,a;
    //UNSIGNED INT8 i;

    void delay_ms (n)
    {
    for (i=0;i<=n;i++)
    {for (a=0;a<=100;a++);}
    }
    void OE(void)
    {
    P2_3=1; //E
    P2_3=0;
    }

    void main (void)
    {
    P2 = 0x00; // Tat het cac chan
    P1 = 0x00;
    P2_3=0;
    delay_ms(1000);

    // Khoi tao LCD
    P2_2=0; //RS
    P1=0x38; // Port 1 noi voi DATA
    OE(); //Che do data 8 bit; 2 line; 5x7dots
    delay_ms(100);

    P1=0x0C;
    OE(); // DISPLAY ON/OFF 0000DCB--- Cai dat con tro va hien thi D=1;C=0;B=0
    delay_ms(100);

    P1=0x01;
    OE(); //Clear display
    delay_ms(100);

    P1=0x02;
    OE(); //Cursor home
    delay_ms(100);
    ///////// Doan hien thi chu

    P2_2=1; // Xuat data

    P1=0x57; // Xuat chu W
    OE();
    delay_ms(100);

    P1=0x45; // Xuat chu E
    OE();
    delay_ms(100);

    P1=0x4C; // Xuat chu L
    OE();
    delay_ms(100);

    P1=0x43; // Xuat chu C
    OE();
    delay_ms(100);

    P1=0x4F; // Xuat chu O
    OE();
    delay_ms(100);

    P1=0x4D; // Xuat chu M
    OE();
    delay_ms(100);

    P1=0x45; // Xuat chu E
    OE();
    delay_ms(100);

    P1=0xA0; // Xuat chu RONG ??????????????
    OE();
    delay_ms(100);

    P1=0x54; // Xuat chu T
    OE();
    delay_ms(100);

    P1=0x4F; // Xuat chu 0
    OE();
    delay_ms(100);

    P1=0xA0; // Xuat chu RONG
    OE();
    delay_ms(100);

    P1=0x56; // Xuat chu V
    OE();
    delay_ms(100);

    P1=0x49; // Xuat chu I
    OE();
    delay_ms(100);

    P1=0x54; // Xuat chu T
    OE();
    delay_ms(100);

    P1=0x43; // Xuat chu C
    OE();
    delay_ms(100);

    P1=0x4F; // Xuat chu 0
    OE();
    delay_ms(100);

    P2_2=0; //Xuat lenh
    P1=0xC5; // Xuong hang - vi tri 5
    OE();
    delay_ms(100);

    P2_2=1; //Xuat data
    P1=0x48; // Xuat chu H
    OE();
    delay_ms(100);

    P1=0x49; // Xuat chu I
    OE();
    delay_ms(100);

    P1=0xA0; // Xuat chu RONG
    OE();
    delay_ms(100);

    P1=0x21; // Xuat chu !
    OE();
    delay_ms(100);

    P1=0x21; // Xuat chu !
    OE();
    delay_ms(100);

    P1=0x21; // Xuat chu !
    OE();
    delay_ms(100);
    delay_ms(2000);

    for ( ; ; )
    {
    P2_2=0; //Xuat lenh
    P1=0x18; // XOAY CHU
    OE();
    delay_ms(500);

    }
    }

  • #2
    nhìn bài của bạn dài dòng quá.tặng bạn 1 chương trình tham khảo nha mình mô phỏng và làm mạch thực tế ok
    #include <stdio.h>
    #include <reg51.h>
    #include <string.h> //khai bao thu vien
    //////////////////// dinh nghia cac chan cua VDK
    sbit RS = P2^0;
    sbit RW = P2^1;
    sbit EN = P2^2;

    //////////////////////////////////////////////

    void delay(unsigned int ms) //goi ham tre thoi gian
    {
    unsigned char y;
    unsigned int x;
    for(x=0;x<ms;x++)
    {
    for(y=0;y<=10;y++);
    }
    }
    ///////////////////////

    void ghilenh(unsigned char mdata) ////chon thanh ghi lenh
    {
    RS = 0; //chon thanh ghi lenh
    RW = 0; //ghi vao LCD
    P1 = mdata; ///////doc thanh ghi lenh
    EN = 1; //////// suon sau cho phep LCD nhan du lieu data
    EN = 0;
    delay(2000);
    }
    void ghidulieu(unsigned char x)
    {
    RS = 1;///// chon du lieu hoac lenh
    RW = 0; //// ghi vao LCD
    P1 = x; // doc du lieu data
    EN = 1; ////suon sau cho phep LCD nhan du lieu data
    EN = 0;
    delay(2000);
    }
    void ghichuoi(unsigned char *y) ////////xuat chuoi ky tu ra ngoai man hinh
    {
    while(*y) //dùng y lam con ttro
    {
    ghidulieu(*y);
    y++;
    delay(500);
    }
    }
    void main (void)
    {{

    ghilenh(0x30);
    ghilenh(0x0E);
    ghilenh(0x80);
    ghilenh(0x38);
    ghilenh(0x0c);

    }
    while(1)
    {
    ghilenh(0x01);
    ghichuoi(" VAN & TUYEN " );
    ghilenh(0xC0);
    ghichuoi(" LOP 32CDDT2");
    ghilenh(0x1C); //dich hien thi sang phai
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    ghilenh(0x1C);
    delay(10000);
    ghilenh(0x01);
    ghichuoi(" DHCN VIET HUNG");
    ghilenh(0xC0);
    ghichuoi(" KHOA DIEN TU ");
    ghilenh(0x02);
    ghichuoi("PROJECT:HIEN THI");
    ghilenh(0xc0);
    ghichuoi(" CHU TREN LCD ");
    ghilenh(0x18);
    delay(200000);
    }}

    Comment


    • #3
      làm như bạn chủ topic thế kia ko chạy là đúng rồi còn j, lcd còn phải cho phép ghi hay đọc mới hiển thị được chứ có phải cứ cho bus DB của lcd= bao nhieu thì nó hiển thị đâu, tham khảo bài dưới ý
      Website chính thức đổi địa chỉ website thành
      Mời các bạn ghé thăm !!!

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      • mansion123
        Bật mí những điều ít ai biết về thi công gỗ óc chó
        bởi mansion123
        Thi công gỗ óc chó giúp không gian trở nên sang trọng, ấm cúng, gần gũi hơn. Sự kết hợp giữa thẩm mỹ và chất lượng cao của gỗ óc chó chắc chắn sẽ mang lại giá trị lâu dài và làm hài lòng ngay cả những khách hàng khó tính nhất. Vậy đằng
        ...
        hôm nay, 16:08
      • tuyennhan
        Trả lời cho Tiếng Anh cho người Việt
        bởi tuyennhan
        Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
        Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
        hôm nay, 07:44
      • vi van pham
        Trả lời cho Tiếng Anh cho người Việt
        bởi vi van pham
        Cám ơn những lời chúc tốt đẹp của em.

        Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

        Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
        hôm nay, 02:00
      • nhathung1101
        Trả lời cho Tiếng Anh cho người Việt
        bởi nhathung1101
        Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

        Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

        Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
        Hôm qua, 22:18
      • dinhthuong80
        Trả lời cho Tiếng Anh cho người Việt
        bởi dinhthuong80
        Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

        Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
        Hôm qua, 14:51
      • dinhthuong80
        Trả lời cho Tiếng Anh cho người Việt
        bởi dinhthuong80
        Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

        Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
        Hôm qua, 14:39
      • dinhthuong80
        Trả lời cho Tiếng Anh cho người Việt
        bởi dinhthuong80
        Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

        Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
        Hôm qua, 14:28
      • bqviet
        Trả lời cho Tiếng Anh cho người Việt
        bởi bqviet
        Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
        21-02-2025, 20:26
      • mèomướp
        Trả lời cho Tiếng Anh cho người Việt
        bởi mèomướp
        Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
        21-02-2025, 12:32
      • vi van pham
        Trả lời cho Tiếng Anh cho người Việt
        bởi vi van pham
        Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

        Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
        20-02-2025, 21:31
      Đang tải...
      X