PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Các bác giúp em với ạ! về PIC 16F877A (http://www.picvietnam.com/forum/showthread.php?t=30911)

comando_5a_c4 26-10-2012 12:50 AM

Các bác giúp em với ạ! về PIC 16F877A
 
1 Attachment(s)
Em muốn viết chương trình đọc điện áp từ 3 kênh ADC, rồi xuất ra led 7 đoạn, em dùng IC 74HC573 để: hàng led thứ 1 đọc kênh 1, hàng 2 đọc kênh 2, hàng 3 đọc kênh 3.
Số là em gặp vấn đề ngay phần hiển thị ạ :( ! khi mô phỏng bằng proteus: lúc xuất dữ liệu ra thì Led bị mờ ở con cuối cùng, rồi nó hiển thị cũng không đúng nữa, lúc em vặn biến trở cho kênh 1 thì mấy hàng led cho các kênh khác lại sáng.
Thực sự là em rất rối, sửa code, rồi phần cứng lại lung tung mà nó vẫn chạy sai. Hi vọng các bác trong đây giúp dùm em ạ!! :(
Code với file mô phỏng em để trong file đính kèm, em viết bằng CCS :)
mong các bác giúp cho ạ!

comando_5a_c4 26-10-2012 01:49 PM

up! ko bác nào giúp em hết ạ! :(

sontvak42 27-10-2012 10:24 AM

Trích:

Nguyên văn bởi comando_5a_c4 (Post 78838)
Em muốn viết chương trình đọc điện áp từ 3 kênh ADC, rồi xuất ra led 7 đoạn, em dùng IC 74HC573 để: hàng led thứ 1 đọc kênh 1, hàng 2 đọc kênh 2, hàng 3 đọc kênh 3.
Số là em gặp vấn đề ngay phần hiển thị ạ :( ! khi mô phỏng bằng proteus: lúc xuất dữ liệu ra thì Led bị mờ ở con cuối cùng, rồi nó hiển thị cũng không đúng nữa, lúc em vặn biến trở cho kênh 1 thì mấy hàng led cho các kênh khác lại sáng.
Thực sự là em rất rối, sửa code, rồi phần cứng lại lung tung mà nó vẫn chạy sai. Hi vọng các bác trong đây giúp dùm em ạ!! :(
Code với file mô phỏng em để trong file đính kèm, em viết bằng CCS :)
mong các bác giúp cho ạ!

Mình đã xem qua bài làm của bạn, mình kiểm tra thấy là tín hiệu output ở ngõ ra portB của bạn không hề thay đổi theo giá trị của ADC.
Bạn thử test theo thứ tự thế này nhé
Đầu tiên bạn test riêng 1 kênh ADC (AN0) chẳng hạn -> kiểm tra tín hiệu output ở ngõ ra portB. Nếu ok thì bạn tiếp theo quá trình hiển trị ra 7seg theo phương pháp quét led( bạn cho delay một tý nhé).
Khi đã ok ở bước trên bạn tiếp tục test kênh tiếp theo lần lượt theo bước trên.
Khi đã ok 3 kênh thì khi đó bạn mới tổng hợp và sắp xếp lại.
P/s: bạn đừng làm một lúc 3 kênh sẽ chỉ làm bạn rối thêm, bạn cũng có thể thử giá trị adc vứt lên LCD mà quan sát.
Chúc vui!

comando_5a_c4 30-10-2012 10:50 AM

1 Attachment(s)
Mình đã sửa lại code và file mô phỏng(trong file đính kèm), mình cũng làm theo lời bạn là test thử từng kênh rồi mới xuất 3 kênh cùng 1 lúc, lúc mình test từng kênh thì ko vấn đề gì xảy ra, nhưng khi cho xuất luôn ra 3 kênh thì lại bị lỗi như cũ :(

comando_5a_c4 01-11-2012 10:39 AM

up! có bác nào trả lời em ??:(

handsometran 02-11-2012 12:42 PM

Trích:

Nguyên văn bởi comando_5a_c4 (Post 78898)
Mình đã sửa lại code và file mô phỏng(trong file đính kèm), mình cũng làm theo lời bạn là test thử từng kênh rồi mới xuất 3 kênh cùng 1 lúc, lúc mình test từng kênh thì ko vấn đề gì xảy ra, nhưng khi cho xuất luôn ra 3 kênh thì lại bị lỗi như cũ :(

Bạn chỉ gửi có chương trình chính thôi, còn cái chương trình con để config ADC đâu.
Ban lưu ý một điểm là ADC có 3 kênh, nhưng khi thực hiện chuyển đổi thì chỉ dùng được 1 kênh chứ không thể 3 kênh cùng 1 lúc. Nếu muốn 3 kênh cùng hiển thị ra thì bạn phải dùng 1 biến tạm kiểu int để lưu trữ và xuất ra.
Chúc bạn thành công!

comando_5a_c4 02-11-2012 09:45 PM

cám ơn các bạn đã trả lời! Mình đã mô phỏng được rồi :D


Múi giờ GMT. Hiện tại là 12:18 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