Thông báo

Collapse
No announcement yet.

Help hiển thị LCD bằng 89c51

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

  • Help hiển thị LCD bằng 89c51

    em chào các bác.
    Em đang làm AVR quen giờ thầy bắt làm 89c51 thấy nó rắc rối quá.
    Các bác cho em hỏi là CODE của em thế này thì sai ở chỗ nào?

    //-------------------------nhom 2-----------------------------------
    //-----------chuong trinh hien thi lcd-------------
    #include <AT89x51.h>
    #include <math.h>// thu vien lenh toan hoc
    #include <stdio.h>// cai nay khong biet cai gi
    #include <string.h>
    ////////////////khai bao chan lcd gan voi cac cong////////////
    sfr lcddata=0xA0;// p2=0xA0
    sbit rs=P1^0;
    sbit rw=P1^1;
    sbit e=P1^2;
    sbit bf=0xA7;
    //------------------------cac chuong trinh con phuc vu------------
    void baoban(void)
    {
    long n;
    n=0;
    e=1;// dua chan cho phep nen muc cao
    rs=0;// chon thanh ghi lenh
    rw=1; // doc LCD
    lcddata=0xFF;
    while(bf){n++;if(n<100)break;}// kien tra neu ban tang n den 100 rui thoat
    e=0;//chot voi suon xuong
    rw=0; //doc lcd
    }
    //-----------------------------------------------
    void dklcd(unsigned char n)
    {
    e=1;//chan cho pheps muc cao
    rs=1; //chon thanh ghi lenh . neu rs=1 chon chon thanh ghi du lieu
    rw=0;// ghi nen lcd
    lcddata=n; // chon gia tri x
    e=0; // xuong thap de chot
    baoban();
    }
    //--------------------------------------------
    void khoitaolcd(void)
    {
    dklcd(0x30);
    dklcd(0x30);
    dklcd(0x30);//che do 8 bit
    dklcd(0x38); // 2 dong ma tra 5x7
    dklcd(0x0A);
    dklcd(0x06); //tang con tro sang phai
    dklcd(0x01); //xoa toan man hinh

    }
    //-----------------hienthi 1 ky tu-----------------
    void lcdwrite(unsigned char c)
    { e=1;//muc cao
    rs=1; //ghi du lieu
    rw=1;// ghi len lcd
    lcddata=c; //ghi nen ky tu c
    e=0;// xuong muc thap
    baoban();
    }
    //-------------------ghi chuoi ky tu-----------
    void lcdputs(unsigned char *s,unsigned char row)
    {
    unsigned char len;
    if(row==1){dklcd(0x80);}// dua con tro ve dau dong dau tien
    else dklcd(0xC0);// ep con tro ve dau dong thu hai
    len=strlen(s);// lay do dai hien thi
    while(len!=0)// do dai van con
    {
    lcdwrite(*s);// ghi ra gia tri lcd duoc doc boi con tro
    s++; //tawng con tro
    len--; //tru dan do dai
    }
    }
    //////////////////
    void delay(long time)
    {
    long k;
    for(k=0;k<time;k++)
    {}
    }

    //////////////////////chuong trinh chinh--------------------
    void main(void)
    {
    char x;
    khoitaolcd();
    lcdputs("dien tu viet nam",1);
    delay(30000);
    while(1)
    {
    for(x=0;x<20;x++)//dich 20 lan
    {
    lcdputs("dien tu viet nam",1);
    dklcd(0x18);// dich hien thi sang trai
    delay(5000);
    }
    }


    }

    Em xin cảm ơn các bác
    Attached Files

  • #2
    cái hàm
    void lcdwrite(unsigned char c)
    { e=1;//muc cao
    rs=1; //ghi du lieu
    rw=1;// ghi len lcd
    lcddata=c; //ghi nen ky tu c
    e=0;// xuong muc thap
    baoban();
    bạn thử sửa rw=0 xem

    Comment


    • #3
      em cũng đang rất nan giải vấn đề này
      có bác nào biết hiển thị chữ lên lcd như thế nào không?
      sử dung assembly!
      xin các tiền bối chỉ dùm!

      Comment


      • #4
        Nguyên văn bởi FrozenHeart Xem bài viết
        em cũng đang rất nan giải vấn đề này
        có bác nào biết hiển thị chữ lên lcd như thế nào không?
        sử dung assembly!
        xin các tiền bối chỉ dùm!
        Cái này hả bác:
        Click image for larger version

Name:	lcd.JPG
Views:	1
Size:	68.2 KB
ID:	1375819
        Email:
        Phone: 0969 226 539

        Comment


        • #5
          Code *ASM cho LCD 16x02;
          ;; Chuong trinh dieu khien "LCD"
          ;; Author NGUYEN VAN TRINH
          ;; Dong A Univesity
          ;; Electrical Technology

          ;; Chuong trinh
          ;; Thiet lap cac Port ban dau
          ORG 00H
          MOV P0,#0FFH ;;
          MOV P1,#0FFH
          MOV P2,#0FFH
          MOV P3,#0FFH
          ;; Khai bao dia chi
          RS BIT P3.5;
          RW BIT P3.6
          E BIT P3.7
          LCD EQU P1

          ;; Chuong trinh LCD
          CT_LCD:
          LCALL KHOI_TAO_LCD
          MOV A,#80H ;
          LCALL GUI_LENH
          MOV DPTR,#HANG_1;
          MOV R7,#0;
          HT_HANG_1:
          CLR A
          MOVC A,@A+DPTR
          LCALL GUI_KY_TU
          INC R7
          INC DPTR
          CJNE R7,#16,HT_HANG_1
          MOV A,#0C0H;;
          LCALL GUI_LENH
          MOV DPTR,#HANG_2;
          MOV R7,#0; Bat dau tu 0
          HT_HANG_2:
          CLR A
          MOVC A,@A+DPTR
          LCALL GUI_KY_TU
          INC R7
          INC DPTR
          CJNE R7,#16,HT_HANG_2
          LJMP $
          KHOI_TAO_LCD:
          MOV A,#38H;
          LCALL GUI_LENH
          MOV A,#0CH;
          MOV A,#0FH;
          LCALL GUI_LENH
          MOV A,#01H;
          LCALL GUI_LENH
          GUI_CHUOI:
          MOV R6,#0
          LAP:
          CLR A
          MOVC A,@A+DPTR
          LCALL GUI_KY_TU
          INC DPTR
          INC R6
          CJNE R6,#16,LAP
          GUI_LENH:
          CLR RS;;
          CLR RW;;
          SETB E;;
          MOV LCD,A;
          CLR E
          LCALL TRE
          RET
          GUI_KY_TU:
          SETB RS;;
          CLR RW;;
          SETB E;;
          MOV LCD,A;
          CLR E
          LCALL TRE
          RET
          TRE:
          MOV R0,#250
          DJNZ R0,$;; 250*2=500
          MOV R0,#250
          DJNZ R0,$
          RET
          HANG_1:
          DB ' DAI HOC DONG A '
          HANG_2:
          DB 'MICROCONTROLER'
          END
          Email:
          Phone: 0969 226 539

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          • mèomướp
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi mèomướp
            Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
            Hôm qua, 13:11
          • tuyennhan
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi tuyennhan
            Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
            Hôm qua, 09:25
          • tuyennhan
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi tuyennhan
            Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
            Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
            Hôm qua, 09:10
          • Ng.Phuong.5
            Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
            bởi Ng.Phuong.5
            Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
            Mấy con...
            09-01-2025, 19:44
          • viettinh
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi viettinh
            Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
            Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
            09-01-2025, 18:12
          • nguyendinhvan
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi nguyendinhvan
            Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
            Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
            Cách đơn giản...
            09-01-2025, 00:04
          • mèomướp
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi mèomướp
            Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
            08-01-2025, 19:02
          • tuyennhan
            Trả lời cho Sửa bộ nguồn DC 60V 45A
            bởi tuyennhan
            Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
            08-01-2025, 15:43
          • tuyennhan
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi tuyennhan
            Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
            08-01-2025, 15:28
          • mèomướp
            Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
            bởi mèomướp
            Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
            08-01-2025, 11:44
          Đang tải...
          X