Tình hình là em đang lập trình cho LCD 16x2. Mô phỏng trên Proteus thì chạy bình thường. Nhưng khi lắp vào mạch thì chỉ hiển thị được dòng trên. Có bác nào gặp lỗi này rồi vào giúp em vs. (LCD em mới mua ko lẽ hư rồi)
Thông báo
Collapse
No announcement yet.
LCD 16x2 chỉ hiển thị được 1 dòng???
Collapse
X
-
bạn kiểm tra phần cứng.xem có bị lỗi gì ko.Thạch anh.sử dụng trong mạch có đúng tần số ko?Nguyên văn bởi magicboy_267 Xem bài viếtTình hình là em đang lập trình cho LCD 16x2. Mô phỏng trên Proteus thì chạy bình thường. Nhưng khi lắp vào mạch thì chỉ hiển thị được dòng trên. Có bác nào gặp lỗi này rồi vào giúp em vs. (LCD em mới mua ko lẽ hư rồi)TRUNG TÂM ĐIỆN TỬ VIỄN THÔNG - TUẤN MAI
Địa chỉ:Đội 5 kim chung - Đông anh- Hà nội
Mobile : 0978304449
yahoo: trongtuanvctv
Mail:
-
Mình đã kiểm tra rồi. Mọi thứ bình thường. mình nghĩ hiển thị đc dòng 1 thì dòng 2 cũng phải đc chứ. Ko lẽ LCD đã hư rồi.hic hic.Nguyên văn bởi trongtuanvct Xem bài viếtbạn kiểm tra phần cứng.xem có bị lỗi gì ko.Thạch anh.sử dụng trong mạch có đúng tần số ko?
Comment
-
theo mình bạn kiểm tra thạnh anh dao động.khi bạn lập trình thì bạn sử dụng loại bao nhiêu MHZ.thì khi bạn lắp mạch thực tế bạn cũng phải sử dụng thạch anh đúng tần số đó.bạn có thể gửi sơ đồ phần cứng.và phần mềm cho mình mình sẽ kiểm tra cho.TRUNG TÂM ĐIỆN TỬ VIỄN THÔNG - TUẤN MAI
Địa chỉ:Đội 5 kim chung - Đông anh- Hà nội
Mobile : 0978304449
yahoo: trongtuanvctv
Mail:
Comment
-
code của mình đâyNguyên văn bởi chanhvan08 Xem bài viếtBạn đưa code lên xem thử, có khi tại code mà proteus vẫn bình thường ấy!
#include <REGX51.H>
#include <string.h>
#include <math.h>
#include <stdlib.h>
sfr LCDdata = 0xA0; // cong P2, 8 bit du lieu.
sbit BF = 0xA7; // co ban, bit DB7.
sbit RS = P1^2; // chon thanh ghi
sbit RW = P1^1; // doc/ghi
sbit EN = P1^0; //cho phep chot du lieu
/*===========cac chuong trinh con cua LCD==========*/
/*--------------kiem tra su san sang cua LCD------------------------*/
void delay(long time);
void wait(void)
{
RS=0; //chon thanh ghi lenh
RW=1; //?oc tu LCD
LCDdata=0xff; //gia tri 0xff
while(BF) //kiem tra co ban
{
EN=0; //dua xung cao xuong thap ?e chot.
EN=1; //dua chan cho phep len cao
}
}
/*------------------------thiet lap lenh cho LCD--------------------------*/
void LCDcontrol(unsigned char x)
{
RS=0;//chon thanh ghi lenh
RW=0;//ghi len LCD.
LCDdata=x ;// gia tri x
EN=1;//cho phep muc cao
EN=0;//xung cao xuong thap
wait();//?oi LCD san sang.
}
/*------------------------------Khoi tao LCD-------------------------*/
void LCDinit(void)
{
LCDcontrol(0x38);//2 dong va ma tran 5x7;
LCDcontrol(0x0c);//bat man hinh, bat con tro
LCDcontrol(0x01);//xoa man hinh
}
/*-------------------------thiet lap du lieu cho LCD-----------------*/
void LCDwrite(unsigned char c)
{
RS=1;//ghi du lieu
RW=0;//ghi du lieu len LCD
LCDdata=c;//gia tri C
EN=1;//cho phep muc cao
EN=0;//xung cao xuong thap
wait();//cho
}
void LCDwrites(unsigned char *s)
{
unsigned char data lens,count;
lens=strlen(s);
for(count=0;count<lens;count++)
{
LCDwrite(*(s+count));
}
}
void LCDwrites2(unsigned char *s)
{
unsigned char data lens,count;
lens=strlen(s);
for(count=0;count<lens;count++)
{
LCDwrite(*(s+count));
delay(1000);
}
}
/*=====================chuong trinh tre================*/
void delay(long time)
{
while(time--);
}
/*========================ham chinh==================*/
sbit RD_adc=P1^3;
sbit WR_adc=P1^4;
sbit INTR=P1^5;
void docadc()
{
WR_adc=1;
delay(200);
WR_adc=0;
while(!INTR);
RD_adc=0;
delay(200);
}
void main(void)
{
unsigned char p=0,s=0;
LCDinit(); // khoi tao LCD
LCDcontrol(0x83);
LCDwrites2("Temperature");
LCDcontrol(0xC5);
LCDwrites2("Sensor");
delay(25000);
LCDcontrol(0x01);
LCDcontrol(0x80);
LCDwrites2("Copyright(C)2012");
delay(25000);
LCDcontrol(0x01);
LCDcontrol(0x80);
LCDwrites("Nhiet do:");
while(1)
{
LCDcontrol(0xc5);
docadc();
s=P0;
if (s<100)
{
LCDwrite(s/10+0x30);
LCDwrite(s%10+0x30);
} else
{
LCDwrite(s/100+0x30);
p=s%100;
LCDwrite(p/10+0x30);
LCDwrite(p%10+0x30);
}
LCDwrites(" oC");
delay(20000);
}
}
Comment
-
mình dùng thạch anh 12MHz.Nguyên văn bởi trongtuanvct Xem bài viếttheo mình bạn kiểm tra thạnh anh dao động.khi bạn lập trình thì bạn sử dụng loại bao nhiêu MHZ.thì khi bạn lắp mạch thực tế bạn cũng phải sử dụng thạch anh đúng tần số đó.bạn có thể gửi sơ đồ phần cứng.và phần mềm cho mình mình sẽ kiểm tra cho.
Sơ đồ của mình đây: (sao ko up dc file dsn nhỉ)
Comment
-
bạn gửi một sơ đồ hoàn chỉnh đi.gửi sơ đồ như vậy thì làm sao biết được điểm bị lỗi.mà mạch quét LCD này phải dùng thạch anh 25MHZ chứ.TA 12MHZ.thì làm sao hoạt động đượcTRUNG TÂM ĐIỆN TỬ VIỄN THÔNG - TUẤN MAI
Địa chỉ:Đội 5 kim chung - Đông anh- Hà nội
Mobile : 0978304449
yahoo: trongtuanvctv
Mail:
Comment
-
#define Disp_func 0x38
#define Disp_entry 0x06
#define Disp_cnlt 0x08
#define Disp_on 0x04
void Init_lcd(void){
Dips_cmd(Disp_func);
Dips_cmd(Disp_entry);
Dips_cmd(Disp_cnlt|Disp_on);
Dips_cmd (0x01);
}
như vậy mới lên được 2 dòng
thêm hàm này
LCDcontrol(0x40);// hiển thị tại dòng thứ 2
lúc đó mới lên được dong 2 của LCD
Comment
-
bạn chia sẻ lên diễn đàn để mọi người cùng rút kinh nghiệm điNguyên văn bởi magicboy_267 Xem bài viếtcám ơn tất cả mọi người. Mình làm đc rồi.hihi.
mình cũng đang quan tâm đề tài này . Cảm ơn bạn (nếu bạn share)
Su dung LCD 16x2
mới tìm đc

Comment
Bài viết mới nhất
Collapse
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -

Comment