![]() |
Trời làm gì mà cần code dài vậy,mình chỉ dùng 1 dòng lệnh là nó chạy dc rồi,bạn xem kĩ trong datasheet đi,có hướng dẫn đó
|
Trích:
|
hi.chac la khong quan tam toi van de nay roi dai ca ah.bun bun
|
Mình có đoạn code dịch LCD này , thấy cũng giống trên bảng điện tử :d
Code:
|
mấy bác cho em hỏi là nếu mình tạo chương trình con là như thế này
void comwrt(void) { RS=1; RW=0; E=1; E=0; delay_ms(1); } thì khi gọi chương trình con thì phải ghi là lcd_data=0x06; comwrt(); nhưng khi em chuyển lại là void comwrt(lcd_data) { RS=1; RW=0; E=1; E=0; delay_ms(1); } và gọi là comwrt(0x0c); thì chương trình lại không chạy, mấy anh chĩ giùm em làm sao để viết gọp lại như hàng dưới được không comwrt(0x0c); cho em hỏi thêm là hàm này dùng làm gì ạ #separate |
Hàm comwrt () mà bạn ghi không sử dụng bất cứ tham số nào truyền từ chương trình chính nên bạn ghi comwrt (0x06) là vô nghĩa . Bạn thử viết lại thế này xem :
void comwrt (int8 data ) { lcd_data = data ; RS=1; RW=0; E=1; E=0; delay_ms(1); } Khi đó trong chương trình chính bạn có thể gọi comwrt (0x06) Còn #separate theo mình biết áp dụng khi function của bạn có quá nhiều hàm , dẫn tới số lượng chỉ lệnh vượt quá mức chịu được của 1 page code PIC ( hình như là 512 instructions) . Khi đó khai báo chỉ thị này sẽ tách các hàm riêng biệt ở các page code riêng biệt , làm tiết kiệm ROM hơn . |
[QUOTE=knd07;40056]Mình có đoạn code dịch LCD này , thấy cũng giống trên bảng điện tử
Bạn có sơ đồ phần cứng không!cho mình xin luôn đi!Không có sơ đồ phần cứng đọc khó hiểu! |
Kết nối chân như mình define trong chương trình đó bạn , đường dữ liệu chỉ dùng 4 bit cao của lcd ( D4-> D7 ). Nếu muốn thay đổi phần cứng cho phù hợp , bạn có thể chỉnh sửa lại #define
|
Trích:
|
Bài này phát triển thêm bàn phím nhập ký tự vào nữa thì hay đó
|
Múi giờ GMT. Hiện tại là 05:28 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam