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)
LCD 16x2 chỉ hiển thị được 1 dòng???
Collapse
X
-
Tags: None
-
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
-
về phần code này.mình thấy ko có lỗi gì cả.Bạn đưa sơ đồ nguyên lý mạch lên.để mọi người cùng nghiên cứuTRUNG 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
-
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 mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...-
Channel: Điện thanh
05-08-2026, 20:09 -

Comment