C & 8051 - Giao tiếp LCD HD44780 (P1)

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 พ.ย. 2024

ความคิดเห็น • 97

  • @huybinhnguyen5349
    @huybinhnguyen5349 10 ปีที่แล้ว +1

    Cảm ơn anh đã hướng dẫn, chúc anh và gia đình tết dương lịch vui khỏe!

    • @thanhdangnguyen
      @thanhdangnguyen  10 ปีที่แล้ว +1

      Huy Bình Nguyễn Cám ơn em!! hi hi!!

  • @icaykhongtrau2451
    @icaykhongtrau2451 8 ปีที่แล้ว

    cảm ơn bạn rất nhiều mình đã học và làm thành công phục vụ công việc của mình từ clip của bạn, chân thành cảm ơn :)

  • @baotran6857
    @baotran6857 9 ปีที่แล้ว +1

    Chào Anh ! em là dân IT mới bước chân vào điện tử, vài lab của Anh rất là hữu ích. Sau khi em thử nghiệm thì rút ra được 1 lỗi nho nhỏ khi xài proteus để mô phỏng. Đó là nếu sử dụng P0 làm điều khiển chân RS và E thì các bạn nhớ mắc điện trở (100ohm). Nếu không mắc thì sẽ không chạy được, vì P0 của AT89c52 khác với các P1,P2,P3 là không có điện trở sẵn trong chip. Không biết em có giải thích đúng ko, nếu sai các đừng ném đá em nha.

    • @hainghia194
      @hainghia194 8 ปีที่แล้ว

      +Bao Tran cái này đề cập ở mấy bài trước rồi. dùng port 0 phải thêm điện trở thanh kéo lên nguồn

    • @lecuong8307
      @lecuong8307 7 ปีที่แล้ว

      do đặc điểm của port 0 k có điện trở trong nên khi muốn thực hiện
      I/O phải có trở thanh kéo lên nguồn..

  • @thanhhaido9977
    @thanhhaido9977 9 ปีที่แล้ว +1

    Cảm ơn vì những video rất bổ ích của anh ! :) Khi mà sau này kiến thức đã vững vàng..Em mong muốn sẽ được tham gia kênh của anh để giúp 1 phần nào đó công sức cho những người đang mới bắt đầu học như em :)

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      +Thanh Hai Do
      Verry good!! Cùng lý tưởng đây! Cố lên em nhé!

    • @thanhhaido9977
      @thanhhaido9977 9 ปีที่แล้ว +1

      Dạ vâng cám ơn anh!! em sẽ lấy những hành động của anh để làm động lực :)

    • @johnynguyen840
      @johnynguyen840 2 ปีที่แล้ว +1

      @@thanhhaido9977 giờ bạn đâu rồi

    • @thanhhaido9977
      @thanhhaido9977 2 ปีที่แล้ว +2

      @@johnynguyen840 dạ chào anh dòng đời xô đẩy em chuyển sang mảng software thuần rồi anh. Giờ check lại thấy tin nhắn của các anh , chúc các anh sức khoẻ và ngày càng ra đc nhiều video nữa nhé

  • @congduy4707
    @congduy4707 6 ปีที่แล้ว

    em đánh dấu ạ , bài giảng quá hay và chi tiết

  • @tnutk42tdh5
    @tnutk42tdh5 8 ปีที่แล้ว

    Chân LCD_EN phải từ 1 xuống 0 thì LCD mới hoạt động. Chương trình anh viết là từ 0 lên 1, chạy mô phỏng thì được. Em làm mạch thật không hiện thị được. Phải từ 1 xuống 0

  • @tuanptit2509
    @tuanptit2509 3 ปีที่แล้ว +1

    anh cho em hỏi, giao thức 4 bit tiết kiệm chân nhưng chức năng thì k nhiều bằng 8 bit đúng ko ạ,

  • @angKhoa-pu5dd
    @angKhoa-pu5dd 7 ปีที่แล้ว

    cảm ơn thầy rất nhiều

  • @AnhNguyen-gu8vm
    @AnhNguyen-gu8vm 6 ปีที่แล้ว

    Anh Dang anh làm giao tiếp ở chế độ 4 bit đi anh...cảm ơn anh...tôi thích học nhưng tự học hơi khó....mong anh giúp đỡ....tôi lớn tuổi rồi khó học lắm

  • @nope8605
    @nope8605 7 ปีที่แล้ว +1

    27:41 mình thấy giới thiệu là RS=1 là đọc ghi lệnh. RS =0 là đọc ghi dữ liệu. sao nó lại ngược lại nhỉ

  • @vunguyen-lg5co
    @vunguyen-lg5co 4 ปีที่แล้ว

    cho em hỏi lập trình xong thì muốn đẹp mình phải gia công PCB hả anh? PCB có nhiệm vụ dẫn điện?

  • @bigkat9320
    @bigkat9320 5 ปีที่แล้ว +1

    14:38, hình như sai đúng không ạ, đoạn trước đó rs=0 thì đọc ghi dữ liệu sao qua đây ghi lệnh rồi

  • @linhcaovan504
    @linhcaovan504 8 ปีที่แล้ว

    anh cho em hỏi có thể kết nối 2 vdk at89c51 lại với nhau de điều khiển 60 bóng led được không ạ?

  • @LinhNguyen-nu8uj
    @LinhNguyen-nu8uj 5 ปีที่แล้ว

    a còn onlien kênh này ko ạ,cho e hỏi là khi thêm nút bấm thì lệnh của lcd vẫn như thế này đúng ko ah

  • @ucnhuanhuynh5190
    @ucnhuanhuynh5190 8 ปีที่แล้ว +1

    Trong bài a ghi Vss nối đất, s a lại vẽ mạch nguyên lý là nối Vcc nó vẫn chạy z a?

    • @minholluvmonkey
      @minholluvmonkey 7 ปีที่แล้ว +2

      Tại mô phỏng nên nó chạy bậy thôi.
      Ra ngoài cắm vậy là cháy LCD đó.

    • @vnnews3632
      @vnnews3632 3 ปีที่แล้ว

      @@minholluvmonkey Không phải mô phỏng nó chạy mà là Proteus cái phần mạch kết nối bắt buộc nó tự kết nối rồi

  • @pcninstrument3424
    @pcninstrument3424 7 ปีที่แล้ว +1

    Anh Dâng ơi a có thể giải thích hộ em là chân VSS là nguồn 0v còn VDD là nguồn 5v mà sao a đấu lại ngược lại mà lCD mà chạy ạ e cám ơn

    • @lA-tc6gg
      @lA-tc6gg ปีที่แล้ว

      mô phỏng thì hai chân đó không cần nối vẫn ok bạn ạ, nó là mô phỏng nên thế đó.

  • @onehanaY
    @onehanaY 10 ปีที่แล้ว

    Anh Dâng cho em hỏi : trong video anh làm thì kết nối phần cứng đơn giản tức là nối trực tiếp tới 8051,nhưng thực tế 1 số phần cứng phức tạp thì nối thông qua 74138,lúc đó LCD là ngoại vi,theo em học asm thì làm việc với ngoại vi phải sử dụng DPTR,mà C thì em không thấy có DPTR. em không biết viết bằng C kiểu có ngoại vi thế nào,anh làm 1 video về phần này được không ạ

    • @thanhdangnguyen
      @thanhdangnguyen  10 ปีที่แล้ว

      Đức Sỹ Nguyễn Hình như e bị nhầm lẫn rồi, không phải kết nối với ngoại vi phải sử dụng tới thanh ghi DPTR! e nhầm qua truy xuất bộ nhớ ngoại rồi, hoặc là một số ngoại vi có thể giao tiếp theo mô hình bộ nhớ mở rộng, như DS12C887, 8255!!

    • @onehanaY
      @onehanaY 9 ปีที่แล้ว

      đây là kit thí nghiệm của bọn em,nhờ anh tìm hiểu và viết giúp em phần LCD với
      www.fshare.vn/file/5UHLACJIK3FM

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      Đức Sỹ Nguyễn A xem qua rồi! Đúng là người ta mắc LCD theo mô hình bộ nhớ mở rộng thật. Giờ e làm như sau nhé:
      E thay thế câu lệnh khai báo kết nối với LCD trong hướng dẫn của anh là
      sbit LCD_RS = P2^0;
      sbit LCD_EN = P2^1;
      #define LCD_DATA P3
      Giờ đổi nó thành
      sbit LCD_RS = P3^5;
      sbit LCD_EN = P3^4;
      unsigned char xdata LCD_DATA _at_ 0x8000;
      Biên dịch lại rùi nạp cho vđk thử xem. Nhớ gạt các sw trên kit đúng vị trí nhé!!
      Đc hay ko báo lại cho a biết!!

    • @onehanaY
      @onehanaY 9 ปีที่แล้ว

      Thanh Dâng Nguyễn Cảm ơn anh nhiều,em làm được rồi anh,Mong anh có thêm nhiều bài bổ ích nữa

  • @onghuynhhoang2646
    @onghuynhhoang2646 8 ปีที่แล้ว

    cho em hỏi.khi viết code dài quá ,trong kelc baó lổi quá mưć giơí haṇ thì phải làm sao vậy anh

  • @namduong9945
    @namduong9945 8 ปีที่แล้ว

    anh nói là chân Vss là chân 0V sao trong mô phỏng proteus anh lại nối ngược lại vậy
    rõ ràng anh nối chân Vss lên 5V và chân VDD anh nối xuống mass mà ban đầu anh ghi là chân Vss là mass và chân Vdd là 5V sao anh mô phỏng ngược lại mà nó vẫn chạy vậy. có gì sai vậy anh. rât mong dc anh giải đáp

    • @hungnguyenphu4036
      @hungnguyenphu4036 8 ปีที่แล้ว +1

      ở đây mô phỏng thì nó không báo lỗi, do anh dâng nhầm thôi, bỏ cái đấy đi thì mô phỏng vẫn chạy nha

  • @hoangchuvan9175
    @hoangchuvan9175 5 ปีที่แล้ว

    anh oi sao em de dong lcd_ms(0x01) len truoc thi ko hien thi duoc ma bo dong nay ddi lai chay vay a

  • @specialtv2662
    @specialtv2662 9 ปีที่แล้ว

    e sinh viên năm nhất ....cho em hỏi là giao tiep của LCD vơi 8051 VÀ pic18f4520 cũng tương tự ak a ..hay là khác nhau...nếu có thể a cho em xin it tài liệu

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      van vien vu hic, sinh viên năm nhất mà quan tâm đến mấy cái này rồi à!! Đúng là mỗi thời một khác, hi hi.
      Thực ra nếu em hiểu về LCD rồi, thì làm việc với vi điều khiển nào cũng đều điều khiển được LCD hết!
      Anh chẳng có tài liệu gì để em xin đâu!

  • @trongvuphan6293
    @trongvuphan6293 9 ปีที่แล้ว

    Anh cho em hỏi: khi lập em chạy mô phỏng bằng protues thì xuất hiện lỗi logic contention detected on net D4, D5, D6, D7, tại sao xuất hiện lỗi này và cách sửa lỗi này như thế nào ạ?

  • @zangbivo4293
    @zangbivo4293 9 ปีที่แล้ว +1

    a ơi a cho e xin cái link datasheet của lcd 16x2 mà a đang dùng với ạ!!!

  • @HoangNguyen-fd7te
    @HoangNguyen-fd7te ปีที่แล้ว

    SAo em cắm chân DATA VÀO PORT 0 MÀ nó k hiện LCD A nhỉ ( e chỉnh code r )

  • @tuanbui8958
    @tuanbui8958 9 ปีที่แล้ว

    mã lệnh LCD 4 bit 4 dòng là gì đó anh ỏi. em dung lcd 20x4

  • @thanhnhannguyen7436
    @thanhnhannguyen7436 8 ปีที่แล้ว +4

    anh ơi, sao không coi quảng cáo đc a , em học ở anh nhiều thấy hay mak tiếc không có quảng cáo coi giúp anh

  • @DuongNguyen-we1ke
    @DuongNguyen-we1ke 9 ปีที่แล้ว

    A cho e hoi e viết đến hiển thị chuỗi kia mà khi chạy thử nó k hiện dk mà hiện toàn chữ lllllllllllllllllll là bị sao ạ

  • @dmxnguyen6960
    @dmxnguyen6960 9 ปีที่แล้ว

    anh ơi cái chỗ 5:41 kéo rs lên một là sao anh và cách kéo như thế nào, kéo lên một có phải là có điện , còn kéo xuống 0 có phải là tắt điện không anh
    em còn gà mờ nên xin anh chỉ cho

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      đảm nguyễn Kéo lên mức logic 1 (5V)và kéo xuống mức logic 0 (0V). Vậy thôi.

    • @dmxnguyen6960
      @dmxnguyen6960 9 ปีที่แล้ว

      HỌC IT - ĐIỆN TỬ à anh ơi cho em hỏi một cái nữa là nếu lắp mạch như thế thì có cần cấp nguồn cho 8051 hay chỉ cần cho lcd là đủ không anh và có thể sử dụng pic 16f887 để thay thế ko

    • @shopanphuoc1769
      @shopanphuoc1769 9 ปีที่แล้ว

      HỌC IT - ĐIỆN TỬ sao a làm chữ nó k chạy mà e làm chữ nó chạy là sao z

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      Em down code mẫu của anh về xem!!

    • @shopanphuoc1769
      @shopanphuoc1769 9 ปีที่แล้ว

      HỌC IT - ĐIỆN TỬ e biết rồi thank a.thì ra vòng while có thì để chữ đứng yên còn e k viết vào chương trình nên nó chạy qua lại

  • @manhhungnguyen2940
    @manhhungnguyen2940 9 ปีที่แล้ว

    cái hàm void thứ 3 em xem mãi ko hiểu ! anh có thể giúp em giải thích đc ko?!

  • @thefarrier706
    @thefarrier706 7 ปีที่แล้ว

    A có thể cho em in datasheet tiêng việt như trên đc ko a.....

  • @LamNguyen-um4tq
    @LamNguyen-um4tq 9 ปีที่แล้ว

    a cho e hỏi chỗ khai báo thư viện ham main a làm tn mà lúc ấn main_h phát ra luôn được tất cả thư viện đó mà e ấn ko ra..

  • @andyquang0311
    @andyquang0311 10 ปีที่แล้ว

    Anh Dâng ơi, vậy cách xuất LCD 4bit hay 8bit chỉ khác nhau ở cách nối dây thôi hả anh, số lượng ký tự tối đa xuất ra được vẫn y nhau hả anh? Vì khi em dùng mikroC viết cho PIC16f877a xuất ra LCD 4bit thì nó chỉ hiển thị tối đa được khoảng 70 ký tự (tính tổng các ký tự có trong các chuỗi), xuất nhiều hơn thì nó vẫn dịch được nhưng nó hiện thêm mấy câu caution, khi đổ vào protues hay đổ vào mạch thật đều bị trắng LCD và chương trình không chạy.

    • @thanhdangnguyen
      @thanhdangnguyen  10 ปีที่แล้ว

      Nguyen minh quang 4 bit và 8 bit khác nhau ở cách gửi dữ liệu sang LCD nữa bạn àh!! 4 bit mỗi lần gửi, chỉ gửi được 4 bit, muốn gửi 1 lệnh phải gửi 2 lần.
      Còn mikroC nó hỗ trợ sẵn thư viện, làm việc tốt với LCD mà!!

  • @thinhle883
    @thinhle883 9 ปีที่แล้ว

    ủa, đọc dữ liệu từ LCD về IC là sao em ko hiểu anh? tức là dữ liệu từ LCD chuyễn về IC hả

  • @minhphuc1283
    @minhphuc1283 6 ปีที่แล้ว

    Chế độ 4 bit viết làm sao a?

  • @haiduy7057
    @haiduy7057 8 ปีที่แล้ว

    anh cho em hỏi chức năng của các dòng trong thư viện main.h vs :
    #ifndef _MAIN_H_ // ???
    #define _MAIN_H_ //?
    #include //thuvien8051
    #define FREQ_OSC 12000000ul //?
    #endif //?
    và hàm delay em viết kiểu này được không a:
    void delay(unsigned int time)
    {
    While(time--)
    }

    •  8 ปีที่แล้ว

      cái hàm delay bạn viết theo video ad hướng dẫn cho chuẩn bạn ơi.cái daley dùng while đó không hay cho lắm.

    • @haiduy7057
      @haiduy7057 8 ปีที่แล้ว

      bạn cho xin code đầy đủ dc ko vay

    •  8 ปีที่แล้ว

      cái nào bạn??

    • @hoangbao2273
      @hoangbao2273 7 ปีที่แล้ว

      viết kiểu gì chả đc, có điều bạn phải phân tích, căn chính thời gian sao cho chính xác nhất.
      Còn dòng lệnh ifndef .... nó là chỉ dẫn cho compiler làm việc thôi, xem lại về c là hiểu

  • @bongma2677
    @bongma2677 8 ปีที่แล้ว

    anh ơi cho em hỏi sao em dùng chân P0_6, và P0_7 thay cho chân P2_0 và P2_1 thì LCD lại không chạy vậy ạ

    • @hungnguyenphu4036
      @hungnguyenphu4036 8 ปีที่แล้ว

      không chạy là đúng nha bạn. nếu muốn dùng port0 thì bạn phải nối thêm điện trở vào. các port còn lại thì nối trực tiếp. do nhà sản suất chip họ có mục đích

    • @leviethung501
      @leviethung501 8 ปีที่แล้ว

      mục đích là gì thế a

    • @hungnguyenphu4036
      @hungnguyenphu4036 8 ปีที่แล้ว

      mình thấy datasheet nói vậy

  • @loihoang9115
    @loihoang9115 9 ปีที่แล้ว

    a Dâng.. ở phút thứ 6. tài liệu chỉ rẳng Vss là nguồn 0 v.. Vdd là nguồn 5 v.. nhưng mà ở phút 23.. a vẽ mạch Vss 5 v... VDD 0 v. . vậy thé nào mới đúng a

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      Ở phút 23 anh kết nối bị nhầm rồi!! Cảm ơn em nhé!!

    • @loihoang9115
      @loihoang9115 9 ปีที่แล้ว

  • @huytruongdinh6456
    @huytruongdinh6456 8 ปีที่แล้ว

    tại sao của e khi chạy chữ hello world nó bị nháy nhỉ

  • @nhattran-oh4qn
    @nhattran-oh4qn 9 ปีที่แล้ว

    a ơi tại sao e tạo thư viện như a rồi nhưng mà khi e tạo file mới muốn viết chương trình e gọi main.h vào main.c đều ko đc ạ

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      +nhat tran Em phải add file *.c vào Project!

  • @caoquang1241
    @caoquang1241 9 ปีที่แล้ว

    a cho e hỏi e dùng pcwhd để viết code(e đang học pic16f877a) thì có khác so với đoạn code a đã hướng dẫn ko ạ?

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      +Cao Quang Cũng ko khác nhiều, nhưng ko thể copy & paste được, em phải hiểu và viết lại. Với lại PCWH nó hỗ trợ hàm hết rồi, em nghiên cứu hàm và sử dụng thôi.

    • @caoquang1241
      @caoquang1241 9 ปีที่แล้ว

      dạ e mới học nên còn nhiều cái chưa rõ,e sẽ tìm hiểu thêm,cảm ơn a ạ

  • @buivancuong1237
    @buivancuong1237 7 ปีที่แล้ว

    Cho e hỏi 1 thắc mắc được không anh? Tại sao khi em viết code mà không thêm vòng lập while vào thì trên LCD xuất ra liên tục kí tự. VD e xuất kí tự A thì kí tự A xuất hiện liên tục không dừng lại. Còn khi thêm vòng lập while thì nó xuất ra đúng, em thấy trong vòng lập không làm gì hết nên em bỏ. :(

    • @hoangbao2273
      @hoangbao2273 7 ปีที่แล้ว

      Không có code để xem thì sao trả lời đc

  • @nguyentranduc8529
    @nguyentranduc8529 9 ปีที่แล้ว

    anh ơi, em làm giống anh, chỉ khác phần đâu mà sửa mãi nó k ra à, giup em vs
    #include
    void Delay_ms (int time)
    {
    while(time--);
    }
    // Khai bao ket noi voi LCD
    sbit LCD_RS = P2^0;
    sbit LCD_EN = P2^1;
    #define LCD_DATA P3
    void Lcd_Cmd(unsigned char cmd)
    {
    LCD_RS = 0;
    LCD_DATA = cmd;
    LCD_EN = 0;
    LCD_EN = 1;
    if(cmd

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว +1

      đức nguyễn trần Chào em! Hàm delay của em bị sai rồi! Em sửa lại dùng hàm Delay bằng 2 vòng lặp for, giống như những bài đầu anh đã hướng dẫn thì nó sẽ chạy được!!

  • @thekhang5098
    @thekhang5098 8 ปีที่แล้ว

    Sbit xài sao vậy anh

  • @hungoba9704
    @hungoba9704 8 ปีที่แล้ว

    a cho em xin code cua ham delay được không ạ?

  • @vuvandan91
    @vuvandan91 8 ปีที่แล้ว

    bác cho em hỏi là sao code của em sai ở đâu mà nó chẳng hiển thị gì cả
    #include
    #define RS P0_0
    #define RW P0_1
    #define E P0_2
    #define CAO 1
    #define THAP 0
    #define DATA P3
    void delay(unsigned char t)
    {
    int i,j;
    for(i=0;i

    •  8 ปีที่แล้ว

      cái hàm delay của bạn bị sai chổ vòng for phía trong kìa..nếu trong cái for đó không muốn ghi cái dấu {} thì cuối for thêm dấu ; là được với cái chân RW bạn kéo nó xuống GND bằng phần cứng cho đỡ tốn câu lệnh

    • @vuvandan91
      @vuvandan91 8 ปีที่แล้ว

      Sao mình buil nó có báo.sai gì đâu

    •  8 ปีที่แล้ว

      thì không sai à..nhưng mà đã có dấu ; rồi bạn thêm {} nữa mà.bn thử xoá 1 trong 2 cái rồi mô phỏng lại xem

    • @vuvandan91
      @vuvandan91 8 ปีที่แล้ว

      xóa làm sao được
      xóa báo lỗi

    •  8 ปีที่แล้ว

      thi xoa cai dau {} giu cai dau ; lai ah

  • @TuanAnh-tn7mw
    @TuanAnh-tn7mw 9 ปีที่แล้ว

    ad cos facebook không vậy

  • @thanhtuanle2257
    @thanhtuanle2257 8 ปีที่แล้ว

    a cho e xin gmail đi ạ

  • @vietle3602
    @vietle3602 9 ปีที่แล้ว

    anh có thể cho em slide nói về lcd đó được ko anh. em cảm ơn . mail của em levietbk93@gmail.com

    • @thanhdangnguyen
      @thanhdangnguyen  9 ปีที่แล้ว

      +ke le viet ko được em!! Em xin slide để làm gì??

  • @lamnguyenthanh2
    @lamnguyenthanh2 8 ปีที่แล้ว

    anh cho em xin tài liệu đc ko anh . mail em : lamkenvil94@gmail.com tks a

    • @thanhdangnguyen
      @thanhdangnguyen  8 ปีที่แล้ว +3

      +Lâm Nguyễn
      Tài liệu gì em?

    • @lamnguyenthanh2
      @lamnguyenthanh2 8 ปีที่แล้ว

      +HỌC IT - ĐIỆN TỬ dạ tài liệu hướng dẫn lập trình LCD anh