Trích:
Nguyên văn bởi bean984
cho mình hỏi
port c của con 16f877a này có gì đặc biệt không vậy?
mình dùng 3 chân RC0,RC1,RC2 để nối đến 3 chân điều khiển LCD.nhưng tại sao khi mình không set_tris cổng này mà vẫn điều khiển được LCD.
mình hỏi một câu nữa nhé.
khi dùng các chân RC6,RC7 để truyền nhận thì không được set_tris cổng C? nếu vậy muốn dùng các chân khác với mục đích I/O thì làm ntn?
mình cảm ơn nhiều!!!
|
Port C của 16f877a tích hợp các modul truyền nhận dữ liệu theo các chuẩn khác nhau như I2C, SPI, .... chứ cũng chẳng có gì đặc biệt cả

- Bạn không set_tris nhưng vẫn điều khển được LCD là vì trình dịch CCS hỗ trợ, nó sẽ set_tris giùm bạn ở mỗi câu lệnh liên quan đến I/O => tốc độ xử lý và bộ nhớ giảm đi đáng kể do hành động set_tris lập đi lập lại nhiều lần dẫn đến dài dòng thừa thải

code đơn giản thì không sao chứ nếu code đòi hỏi tốc độ và dung lượng bộ nhớ lớn thì mình khuyên nên dùng set_tris.
- Bạn dùng lệnh set_tris thì không giao tiếp đuợc với PC qua chuẩn 232, mình cũng chưa để ý cái này, nhưng mình nghĩ chắc chắn là đuợc chứ

, bạn nên xem lại set i/o của bạn cho hai chân RC6 và RC7 đã đúng chưa

, lưu ý lại với bạn ở đây chân RC6 là chân truyền (tranmister) tức ngõ ra và chân RC7 là chân nhận (Receiver) tức ngõ vào. Với lại trong câu lệnh set tris để set ngõ vào thì dùng bit (1), và ngõ ra tương ứng với bit (0).
Còn bạn gì ở trên kia muốn tìm hiểu giao tiếp với PC thì tìm lại trên diễn đàn nhé, có quá nhiều bài viết hướng dẫn và cả ví dụ mẫu về nó rồi đấy
Chúc các bạn thành công.
Thân.
__________________
_____________________________
Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _
Yêu mến tất cả anh em Picvietnam.com 
_ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . .
Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .