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
-
Trả lời cho Xin tài liệu điều khiển động cơ DCbởi truy cậpCan you share one for the bldc motor?...
-
Channel: Điện tử công nghiệp
Hôm qua, 16:27 -
-
bởi EbeleChào mọi người. Hệ thống CNC của tôi điều khiển tốc độ của biến tần thông qua tín hiệu đầu vào analog 0-10V. Khi chương trình dừng lại, điện áp được cấp là 0V, nhưng trục chính vẫn quay chậm ở tốc độ khoảng 30 vòng/phút.
Khi sử dụng đồng...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:17 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giờ AI phát triển, thậm chí bảng cửu chương chúng còn học thuộc sơ sơ nửa là học mấy cái đó, khi mà yêu cầu cái là nó xuất ra đẹp, hay hơn mình làm nhiều!!!
Cháu tiếc thời cháu không được học nhạc, tới cấp 2 học về điện...-
Channel: Tâm tình dân kỹ thuật
19-05-2026, 13:21 -
-
bởi DomitilaXin lỗi vì đã làm phiền, tôi có một câu hỏi dành cho mọi người.
Tôi đang sử dụng công tắc tiệm cận để chuyển mạch giới hạn trên thiết bị của mình. Mỗi khi động cơ bước được kích hoạt, tín hiệu của công tắc nhảy lung tung, ngay cả khi động cơ không quay.
...-
Channel: Điện tử công suất
18-05-2026, 13:02 -
-
Trả lời cho Thắc mắc pin 21v ?bởi mèomướpDạ áp sạc như vậy là đúng rồi ạ. Pin li ion mật độ điện cao và dễ cháy nổ khi mạch bảo vệ lỗi. Chú muốn an toàn thì dùng pin sắt li fe ạ, hoặc mới hơn là pin natri. Tuy nhiên loại này to nặng, dòng xả thấp hơn nên ko phù hợp cho dụng cụ cầm tay ạ...
-
Channel: Điện tử dành cho người mới bắt đầu
17-05-2026, 19:29 -
-
bởi trung30000Các bác cho em hỏi pin 21 volt, 5s , khi sạc đầy cục sạc chuyển màu xanh, em đo điện áp khi đầy là 21.05 v, như vậy có nguy hiểm đến pin không các bác, vì mỗi Cell pin chỉ chịu tối đa được 4.2v,
-tại sao nhà sản xuất không thiết kế cục sạc khi đầy chỉ 20v để bảo vệ pin .-
Channel: Điện tử dành cho người mới bắt đầu
17-05-2026, 10:51 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamCảm ơn cháu đã bỏ chút thời gian vàng ngọc xem ông già gần 80 tuổi kể hối ký chuyện tình cùa mình. Những chương trình học hồi lớp 6 ( đệ thất) và lớp 7 ( đệ luc) học họa và nhạc sau này đã giúp đỡ tôi rất nhiều trong việc tìm...
-
Channel: Tâm tình dân kỹ thuật
16-05-2026, 22:15 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chúc mừng bác có cuộc tình rất lãng mạn, cuộc hôn nhân gắn bó dài lâu nhé!...
-
Channel: Tâm tình dân kỹ thuật
16-05-2026, 13:49 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamHôn nhân của tôi dường như có bàn tay sắp đặt của ông tơ, bà nguyệt. Bà xả nói tôi viết hồi ký duyên số này. Tôi đã viết vào tập 100 trang học sinh. Sau 50 năm lật tới, lật lui xem quyển hối ký có nơi rách nát. Tôi viết lại bằng AI, giọng đọc VBBe, ca sĩ hát là là Synthesizer V.
...-
Channel: Tâm tình dân kỹ thuật
15-05-2026, 14:18 -

Comment