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)
-   -   Port A làm port I/0, ai biết chỉ mình với??? (http://www.picvietnam.com/forum/showthread.php?t=901)

tuankobe 29-01-2007 04:57 PM

Port A làm port I/0, ai biết chỉ mình với???
 
Mình dùng port A làm port I/0, nhưng chân A4 không dùng được, dù mình có dùng lệnh output_low(PIN_A4) hay out_put_high(PIN_A4) đều không được.
Mình dùng điện trở kéo lên VCC thì chạy lung tung, không chính xác.
Rất mong nhận được sự chỉ bảo của các bạn.
Mình xin chân thành cảm ơn

TTL 29-01-2007 06:29 PM

Khi dùng portA làm I/O port thì bạn phải cấu hình lại port A là port I/O chứ ko để là ngõ vào Analog nữa. Bạn thử tìm trong datasheet nó có hướng dẫn đấy á.

namqn 29-01-2007 07:25 PM

Port A được cấu hình là analog sau khi reset chip, muốn dùng như digital I/O thì phải cấu hình cho nó thành digital pin, tức là thiết lập giá trị thích hợp cho thanh ghi ADCON1 (tôi lấy ví dụ chip PIC16F877A, vì bạn không nói rõ đó là chip nào), sau đó chọn chiều dữ liệu bằng thanh ghi TRISA.

Ngoài ra, RA4 của PIC16F877A còn ở dạng cực máng hở, do đó có thể cần phải có 1 điện trở kéo lên.

Thân,

TTL 29-01-2007 08:40 PM

Anh Nam cho em hỏi tí. Em vẫn chưa hiểu cực máng hở và cực máng đóng để làm gì ? Tại sao người ta phải tao ra 2 loại trên -----> cực máng hở còn tốn thêm 1 con điện trở. Hic hic.

Em cám ơn anh.

falleaf 30-01-2007 12:29 AM

http://www.mcc-us.com/Open-collectorFAQ.htm
http://www.piclist.com/techref/logic/opencollector.htm

Bạn đọc tài liệu này, rất đơn giản và dễ hiểu.

Chúc vui

tuankobe 30-01-2007 08:45 AM

Cảm ơn bạn namqn và các bạn trên diễn đàn. Mình cũng ko có kinh nghiệm lắm nên chủ yếu lập trình bằng CSS cho PIC 16F877A. Bạn có đoạn code nào bằng CSS để thiết lập port A thành port I/O thuần túy chỉ cho mình với.
Xin chân thành cảm ơn

ntc 30-01-2007 05:23 PM

Bạn đọc thêm trong datasheet, trong đó có hướng dẫn đầy đủ cả, có cả code ví dụ viết bằng asm, nhưng chuyển qua C thì mấy hồi.

namqn 30-01-2007 06:36 PM

Dùng RA4 của PIC16F877A như một ngõ ra, cần một điện trở kéo lên khoảng vài kiloohm (4.7k chẳng hạn), và đoạn code sau trong CCS C:

Code:

        ADCON1 = 0x06;
        TRISA = 0x00;

Toàn bộ port A sẽ là ngõ ra.

Thân,

no_problems 12-04-2011 10:29 AM

EM dùng porta để điều khiển mấy chân rw,e,cs1.cs2.. của glcd.khi mô pỏng thì chạy tít, nhưng cứ đưa vào mạch thật thì không được.
phần cứng đã nối full 10k lên vcc rùi.
code đã setup_adc_port(no_analog) rui
vậy mà vẫn không được.Ai bít lỗi này chỉ em với.

no_problems 12-04-2011 10:37 AM

em khai bao vay sao bao loi
Undefined identifier ADCON1

vth_87 26-04-2011 02:09 PM

theo mình thì bạn nên
ANEEL = 0;// TẤT CẢ 8 NGÕ ĐẦU LÀ DIGITAL(=1 THÌ SẼ LÀ ANALOG)
ANSELH = 0;// 6 NGÕ CÒN LẠI LÀ DIGITAL
TRISA = 0x00;// tất cả Port A là ngõ ra
VÌ VỚI 16F887 NÓ CÓ TỔNG LÀ 14 NGÕ ANALOG/DIGITAL


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