PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-12-2012, 03:17 PM   #1
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
Unhappy lcd với thạch anh

Xin chào mọi người. Mình đặng gặp rắc rối với mấy chú thạch anh cần mọi người chỉ giúp. Số là thế này. Lúc đầu mình viết chương trình cho pic hiện thị lcd (trên cả 2 dòng luôn) với thạch anh 4Mhz thì nó chạy tốt. Vì mình muốn tăng tốc cho Pic nên đã đổi thành thạch anh 20Mhz (tụ vẫn để là 22p vì mình thấy trong datasheet vẫn cho phép giá trị này) nhưng khi lắp vào chạy thì nó lại không hiện thị được dòng thứ 2. Hic. Thà rằng nó không hiện gì cả thì mình còn biết lối, đàng này nó vẫn hiện thị dược dòng trên còn dòng dưới thì không. Xin mọi người chỉ giáo!
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-12-2012, 06:35 PM   #2
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Bạn có config lại chương trình phần OSC là HS chưa ?
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2012, 04:55 PM   #3
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
Talking

Trích:
Nguyên văn bởi hatuan296 View Post
Bạn có config lại chương trình phần OSC là HS chưa ?
mình làm rồi. Chắc tại con tụ của mình quá. Tụ mình đang dùng là 22p. Nhưng rất hay là lúc đầu nó làm việc không được thì chờ một lát mình nhấn reset thì nó lại hiện được. Thế mới hay.
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2012, 10:52 PM   #4
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Trích:
Nguyên văn bởi thuynavy View Post
mình làm rồi. Chắc tại con tụ của mình quá. Tụ mình đang dùng là 22p. Nhưng rất hay là lúc đầu nó làm việc không được thì chờ một lát mình nhấn reset thì nó lại hiện được. Thế mới hay.
Vấn đề có thể do lỗi của LCD đó bạn , mình từng bị một cái 20X4 , lúc mới bật nguồn thì hiển thị lung tung , nhưng bấm reset thì hiển thị lại bình thường .
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2012, 11:30 AM   #5
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
Trích:
Nguyên văn bởi hatuan296 View Post
Vấn đề có thể do lỗi của LCD đó bạn , mình từng bị một cái 20X4 , lúc mới bật nguồn thì hiển thị lung tung , nhưng bấm reset thì hiển thị lại bình thường .
Hi.Chắc là vậy cũng nên. LCD của bác tàu mà. Để mình làm lại cái mạch dùng tụ 33 đã rồi kết luận sau.
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2012, 01:53 PM   #6
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Trích:
Nguyên văn bởi thuynavy View Post
Hi.Chắc là vậy cũng nên. LCD của bác tàu mà. Để mình làm lại cái mạch dùng tụ 33 đã rồi kết luận sau.
Vấn đề không phải do tụ đâu bạn , mạch không có tụ nhưng code và linh kiện ok thì vẫn hoạt động bình thường . Sao bạn không dùng test board tháo lắp cho dễ kiểm tra ?
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2012, 06:00 PM   #7
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Trong file lcd có sử dụng #use delay(clock=4000000)
Bạn thay đổi tần số "chậm hơn" thì thạch anh 16M, 20M cũng không ảnh hưởng đến tốc độ giao tiếp với lcd.
Khi mạch cắm với lcd qua bus thì lâu lâu hay bị nhiễu, kiểm tra cắm lại là được.
pstin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-12-2012, 09:48 PM   #8
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
Trích:
Nguyên văn bởi pstin View Post
Trong file lcd có sử dụng #use delay(clock=4000000)
Bạn thay đổi tần số "chậm hơn" thì thạch anh 16M, 20M cũng không ảnh hưởng đến tốc độ giao tiếp với lcd.
Khi mạch cắm với lcd qua bus thì lâu lâu hay bị nhiễu, kiểm tra cắm lại là được.
Mình không dùng thư viện lcd nên không anh hưởng bởi dòng đó. Chắc là bị nhiễu ở đâu đó thôi. Nhổ ra cắm lại vẫn thế à. Chỉ nhấn reset thôi là được.
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2012, 11:45 AM   #9
pstin
Đệ tử 7 túi
 
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: TP HCM
Bài gửi: 190
:
Không phải vậy đâu, chẳng qua là do lập trình thôi, khi mà con pic chạy ''chập chờn'' tức là lập trình bị sai!.
Lúc trước cái lcd tui có bị rồi, lấy tay rờ vào chân con pic thì nó mới hiển thị,...
Bạn ko tin thì bạn post sơ đồ lên,...bạn nạp file lập trình khác vô là chạy ngon lành.
pstin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2012, 12:15 PM   #10
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
Trích:
Nguyên văn bởi pstin View Post
Không phải vậy đâu, chẳng qua là do lập trình thôi, khi mà con pic chạy ''chập chờn'' tức là lập trình bị sai!.
Lúc trước cái lcd tui có bị rồi, lấy tay rờ vào chân con pic thì nó mới hiển thị,...
Bạn ko tin thì bạn post sơ đồ lên,...bạn nạp file lập trình khác vô là chạy ngon lành.
Chắc không phải lập trình đâu anh à. Tại nó chỉ hiện sai khi mà dùng thạch anh 8m trở lên thôi. Dùng thạch anh 4M thì lại bình thường. Dùng thạch anh trên 4M thì phải nhấn nút reset nó mới hiện hết cả 2 dòng chứ không nó chỉ hiện có 1 dòng phía trên thôi.
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2012, 03:39 PM   #11
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
ah. Cái đó là do mình đang dùng bộ kittest pic nên không tháo được. Hi. Làm mạch thật thì dùng chân rào cắm ic tha hồ thử.
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2013, 10:52 AM   #12
thuynavy
Đệ tử 1 túi
 
Tham gia ngày: Mar 2012
Bài gửi: 22
:
Tình hình là không biết do đâu rồi. Mình đã làm mạch thật dùng thạch anh 20M, tụ 33p nhưng nó vẫn không hiện thị hết hai dòng mà phải nhấn nút reset thì nó mới hiện thị hết. hưchức. Gửi đoạn code trên ccsc cho các bác xem giúp nhé.

#include <16F877A.h>
#include <def_877a.h>
#device *=16 ADC=10
#use delay(clock=20000000)
#FUSES HS
#USE FAST_IO(D)
#USE FAST_IO(b)
#USE FAST_IO(c)
#bit rs = portb.5
#bit rw = portb.4
#bit en = portb.3
int8 i,j;
int16 x,y,f1,f2,df;


//--------------------------------------------------------
void lenh_lcd(int8 malenh)
{
portd=malenh;
rs=0;
rw=0;
en=1;
delay_us(5);
en=0;
delay_ms(3);
}
//--------------------------------------------------------
void data_lcd(unsigned char dulieu)
{
portd=dulieu;
rs=1;
rw=0;
en=1;
delay_us(5);
en=0;
delay_ms(3);
}


//---------------------------------------------------
void main()
{
set_tris_a(0xff);
set_tris_b(0x00);
set_tris_d(0);
set_tris_c(0xff);
df=0;
f1=0;
f2=0;

//-------------------thiet lap adc
setup_ADC(ADC_clock_internal);
setup_ADC_ports(RA0_RA1_RA3_ANALOG);
//------------------- lenh khoi tao lcd
lenh_lcd(0x38);
lenh_lcd(0x0e);
lenh_lcd(0x01);
lenh_lcd(0x06);
//--------------- lenh hien thi lcd

lenh_lcd(0x80);
data_lcd("U1:");
lenh_lcd(0x88);
data_lcd("U2:");
delay_ms(1);
lenh_lcd(0xC0);
data_lcd("F1:");
delay_ms(1);
lenh_lcd(0xC8);
data_lcd("F2:");
delay_ms(1);
thuynavy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:24 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam