Ðăng Nhập

View Full Version : tắt chức năng analog của các port??


hongquyen
23-08-2009, 01:34 PM
đối với PIC16f887 sau khi reset thì mặc định các port A,B,E sẽ mặc định là đọc điện áp là analog vậy trong CCS thì mình khai báo 2 lệnh sau trong main:setup_adc_(adc_off)và setup_adc_ports(no_analog) để đọc điện áp digital cho chính xác làm như vậy có phải kg ạ??

em cảm ơn!

Mr.Bi
23-08-2009, 09:31 PM
hình như k phải, mặc định khi RST , các chân đều là IO digit.

hongquyen
23-08-2009, 09:41 PM
nhưg mà anh ơi sau khi reset thì thanh ghi ANSEL bằng 1 mà anh, mà bằng 1 có nghĩa là chứ năng analog hoạt đúng mà ạ??

anh coi lại giúp em với

phamminhtuan
24-08-2009, 11:10 PM
đối với PIC16f887 sau khi reset thì mặc định các port A,B,E sẽ mặc định là đọc điện áp là analog vậy trong CCS thì mình khai báo 2 lệnh sau trong main:setup_adc_(adc_off)và setup_adc_ports(no_analog) để đọc điện áp digital cho chính xác làm như vậy có phải kg ạ??

em cảm ơn!
để đọc điện áp digital cho chính xác có nghĩa là sao hả bạn?
setup_adc_ports(no_analog) cấu hình các ngõ vào ADC (ANx) sử dụng như digital I/O, chỉ xuất/nhập mức logic

hongquyen
24-08-2009, 11:22 PM
để đọc điện áp digital cho chính xác <<<< ý của em là sau khi reset thì thanh ghiANSEL sẽ là 1, vậy nếu mình kg tác động vào thanh ghi(dùng setup_adc_ports(no_analog) ) này thì khi đọc mức logic thì nó sẽ luôn là "0"

ý em là như vậy ạ

phamminhtuan
24-08-2009, 11:33 PM
để đọc điện áp digital cho chính xác <<<< ý của em là sau khi reset thì thanh ghiANSEL sẽ là 1, vậy nếu mình kg tác động vào thanh ghi(dùng setup_adc_ports(no_analog) ) này thì khi đọc mức logic thì nó sẽ luôn là "0"

ý em là như vậy ạ

Hoàn toàn chính xác, khi ANSx = 1 và TRISx = 1 thì đọc giá trị của Port = 0
Khi Reset thì ANSx = 1 và TRISx = 1.

Mr.Bi
25-08-2009, 11:53 PM
u khai báo thế này , dù RST bao nhiu , các chân của u cũng là IO Digit , ok ?

main()
{ set_tris_x(0x00); // neu mun tất cả các chân của port này là chân xuất
(set_tris_x(0xFF); // hoặc nhập)
PORTx = 0 ; xuất mức 0
while(1);
}