![]() |
|
![]() |
#1 | |
Trưởng lão PIC bang
|
Trích:
Một link để tham khảo: http://deanandara.com/robots/ApuLcd.html Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 thay đổi nội dung bởi: namqn, 16-07-2007 lúc 11:17 PM. |
|
![]() |
![]() |
#2 |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Mình ko theo dõi luồng này, nên ko chắc vấn đề này đã được đề cập hay chưa, bạn nên tìm lại trong diễn đàn, ở đây mình chỉ nói sơ qua.
Mỗi ký tự hiển thị trên lcd thường có kích thước 7 hàng x 5 cột do đó được xác định bởi 7byte, 3 bit cao nhất mỗi byte ko sử dụng. VD: 0x0E 0x0E 0x04 0x04 0x04 0x04 0x0C Tạo thành chữ J hoa Để có bộ font của riêng mình công việc của bạn là tìm ra các byte này ứng với mỗi ký tự. Công đoạn này tốn rất nhiều công sức nếu làm bằng tay, thường người ta dùng phần mềm, nhưng các phần mềm này lại thường ko free. |
![]() |
![]() |
#3 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
vậy nếu hiển thị trên LCD muốn dễ dàng thì em phải sử dụng lợi LCD khác a(ko phải loại 16x2)như loại mà bien_van_khat đã nói ạ.ngoài ra anh có thể nêu cho em những loại LCD lào nữa ko ạ(tất nhiên kinh phi mua LCD cũng phải rẻ ạ)
|
![]() |
![]() |
#4 |
Trưởng lão PIC bang
|
LCD thông thường có 2 loại khác nhau về cách thức hiện thực: LCD ký tự và LCD đồ họa. LCD ký tự có các ô định nghĩa sẵn sẽ hiển thị các ký tự nằm trong bộ ROM ký tự hay vài ký tự do người dùng định nghĩa. LCD đồ họa cho phép bạn vẽ (hiển thị) bất kỳ điểm ảnh nào, nó cũng có chế độ hiển thị ký tự. Tất nhiên LCD đồ họa thì giao tiếp phức tạp hơn và cũng đắt tiền hơn. Bạn nên dùng LCD ký tự khi mới làm quen với LCD, sau đó có nhu cầu thì chuyển sang LCD đồ họa. LCD đồ họa gần gũi nhất là các màn hình tại các quầy counter tính tiền của siêu thị, các màn hình trong các máy trò chơi bỏ túi, ...
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
#5 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
chào các bạn mình mới học pic nên chưa biết nhiều mong được sự giúp đỡ,
tui có vài câu hỏi mong được chỉ giáo tui sử dụng ngắt timer nhưng thấy lệnh set_timer0(); ko có tác dụng nghĩa là đặt số mấy cũng ko thấy thay đổi thậm chí ko có lệnh đó vẫn chạy như thường bạn nào làm ngắt timer rùi chỉ mình với Code:
#include <18F4331.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) int i=0; void main() { setup_timer_0(rtcc_div_32); set_timer0(10); ????nếu đặt 1 thì bao lâu mới ngắt enable_interrupts(int_rtcc); enable_interrupts(global); while(true) { } } #int_rtcc void ngat_timer() { i++; output_D(i); } dùng lệnh getc(); thì chỉ thu được 1 kí tự ví dụ truyền số 12 thì thu được 2 số 1 và 2 có bạn nào biết lệnh nào để lấy 1 chuỗi ko? thay đổi nội dung bởi: namqn, 18-07-2007 lúc 06:48 PM. |
![]() |
![]() |
#6 |
Trưởng lão PIC bang
|
Về timer 0 và hàm set_timer0(), bạn đọc thêm tài liệu hướng dẫn của CCS C (trang 206, ver. 4, 01/2007) và datasheet của chip.
Về getc(), nếu bạn dùng nó thì tất nhiên chỉ lấy được 1 ký tự là nó đã trở về. Bạn đọc thêm về hàm gets() trong tài liệu hướng dẫn của CCS C (đã nêu trên, trang 148) để đọc 1 chuỗi ký tự. Nếu bạn chưa biết tài liệu đó lấy ở đâu: http://www.ccsinfo.com/downloads/ccs_c_manual.pdf Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
#7 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
cho em hỏi cái bài LCD ở trên mà em đã hỏi ý ạ.em đã cho hiển thị được rùi, nhưng :
khi chạy lượt đầu tiên thì nó bị mất 1 kí tự đầu tiên,ở cả 2 hàng luôn.và chạy lượt sau nó ko bị mất,đúng như lập trình. em đã khai báo 0x80 và 0xc0 cho 2 hàng ạ |
![]() |
![]() |
#8 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
#9 |
Đệ tử 6 túi
Tham gia ngày: Oct 2006
Bài gửi: 147
: |
dạ .LCD quét lần đầu tiên nó bị dịch sang trai 1 ki tu.(như : ANH_GIOI thì nó còn NH_GIOI).quét lần thứ hai thì nó ko bị mất như trên nữa.
e bị mất cả 2 hàng luôn mới đau chứ |
![]() |
![]() |
#10 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
#11 |
Đệ tử 2 túi
Tham gia ngày: Jan 2007
Bài gửi: 27
: |
Ban ơi theo mình thì bạn hãy đặt giá trị trễ thêm 1 tí nữa là được thôi mình cũng đã gặp trường hợp nảy rồi lỗi này thường xuất hiện với các câu lệnh như là xóa màn hình, về đầu dòng, dịch con trỏ. Thưởng thì mình đặt trễ sau xóa màn hình 2ms, sau lệnh chức năng khác cho LCD ( Trường hợp RS = 0) là 10 us thì nó làm việc bình thường.các lệnh hiển thị dữ liệu thì không cần. Bạn thử theo cách của mình nhé. chúc bạn thành công !
|
![]() |
![]() |
#12 |
Đệ tử 2 túi
Tham gia ngày: Jan 2006
Bài gửi: 36
: |
Bạn chú ý chân RB3 là chân cực thu hở, muốn sử dụng, bạn mắc thêm 1 điện trở kéo lên.
__________________
************************************************** ** The only wrong thing would be to deny what your heart truly feels! ************************************************** ** |
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Jan 2006
Bài gửi: 1
: |
chào các Bác mình mới học ccs c được vài ngày nhưng khi viết ct hiển thị trên 2 led 7 doan và mô phỏng trên proteus thì không được, mong các bác cho em đoạn code. cám ơn
|
![]() |
![]() |
#14 |
Nhập môn đệ tử
Tham gia ngày: Jun 2007
Bài gửi: 1
: |
mấy anh cho em hỏi xíu ạ tại seo khi em xài các lệnh
trisb=0; rb0=1; rb1=1; rb2=1; rb3=1; hoặc các lệnh: output_high(pin_b0); output_high(pin_b1); output_high(pin_b2); output_hgh(pin_b3); mà nếu em gắn ở các chân đó là led thì nó sáng lần lược ở rb0 rb1 rb2 rb3 chứ nó ko sáng ở cả 4 chân bật debug của protus lên thì trisb=0b11110000 : cái này thì đúng rùi portb=0b00001000 : còn cái này seo kì wá nhưng nếu em lắp vào đó dộng cơ thì lại khác em lắp vào rb0 động cơ ocn2 mấy cái kia là led thì động cơ way led ở rb3 sáng còn ở rb1 rb2 tắt nhưng nếu em xài lệnh portb=0b00001111; thì nó lại sáng bình thường mấy anh giải thích giùm em với cám ơn |
![]() |
![]() |
#15 |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 65
: |
Chào mọi người! Em có 1 thắc mắc muốn hỏi : Với ngắt RB4-7 thì dòng lệnh ext_int_edge( H_to_L ) hình như không có tác dụng. Em thử bỏ hoặc thay thế bằng ( L_to_H ) thì thấy không có thay đổi gì. Hình như mặc định là H_to_L . Em có đọc trong datasheet PIC18f4550 thì chỉ thấy nói đến chọn cạnh lên xuống ở ngắt ngoài RB0, còn ở RB4-7 thì không thấy nói rõ. Em không hiểu rõ chỗ này. Mong mọi người chỉ bảo.
|
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |