PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-12-2008, 09:57 AM   #1
nvtiep3ik50hut
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 7
:
Nhờ giúp đỡ hướng giải quyết !

Em đang có một vấn đề với PIC16F877A làm đau đầu mấy hnay.
Em có làm 4 phím Chọn kênh, tăng, giảm, xác nhận nhằm mục đích chọn kênh vào ADC của PIC(PIC này có 8 đầu vào tương tự PortA và E), chọn được cả tần số lấy mẫu của ADC.
Mấy hnay loay hoay mãi,tìm kiếm nhưng chưa có câu trả lời.
Anh em nào trong bang có thể gợi ý hướng giải quyết cho em được không ạ?Có code mẫu thì càng tốt.
Thanks!

thay đổi nội dung bởi: nvtiep3ik50hut, 20-12-2008 lúc 08:41 AM.
nvtiep3ik50hut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-12-2008, 10:31 AM   #2
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi nvtiep3ik50hut View Post
Em đang có một vấn đề với PIC6F877A làm đau đầu mấy hnay.
Em có làm 4 phím Chọn kênh, tăng, giảm, xác nhận nhằm mục đích chọn kênh vào ADC của PIC(PIC này có 8 đầu vào tương tự PortA và E), chọn được cả tần số lấy mẫu của ADC.
Mấy hnay loay hoay mãi,tìm kiếm nhưng chưa có câu trả lời.
Anh em nào trong bang có thể gợi ý hướng giải quyết cho em được không ạ?Có code mẫu thì càng tốt.
Thanks!
Đây là ý tưởng của mình, giả sử như bạn đang dùng CCS.

a - Mỗi lần bấm phím Chọn kênh (CK), ADC sẽ được gán lần lượt từ kênh 0-7 rồi quay lại 0. Như vậy mỗi lần chọn bấm CK bạn gọi set_adc_channel((channel++)&7);

b - Sau khi chọn kênh, bấm các phím Tăng (T) Giảm (G) sẽ thay đổi tần số lấy mẫu. Tần số lấy mẫu thực chất ko phải là thông số của module ADC, đây là số lần bạn thực hiện chuyển đổi ADC. Do đó bạn có thể đặt đoạn mã thực hiện chuyển đổi ADC trong ngắt timer1, sau đó thay đổi giá trị preset và prescaler để đạt được tần số lấy mẫu mong muốn. Cách đơn giản để thực hiện điều này là lập mảng chứa sẵn tất cả giá trị preset của timer1 mà bạn cần và mỗi lần bấm phím bạn gán giá trị tương ứng trong mảng.

c - Phím xác nhận sẽ bật module ADC.

Timer1 được chọn vì nó là timer 16 bit do đó mềm dẻo hơn khi tạo thời gian trễ.
Ngoài ra bạn còn phải xử lý chống rung phím, thiết lập IO, ADC...
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat 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à 05:12 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