[Bài 1] Lập trình I/O PORTA với PIC 16F887 và MikroC

  1. Giới thiệu
  • Port A có 8 bit. Các bit của thanh ghi TRISA và ANSEL sẽ điều khiển các chân của PortA.
  • Tất cả các chân của PORTA điều có chức năng digital I/O.
  • 5 chân trong PortA có chức năng analog Input (ký hiệu bằng An).
  • PORTA 16F887
  • 5 chân có chức năng analog PortA là:
    • RA0=AN0 ( Bit quyết định là ANS0 của thanh ghi ANSEL)
    • RA1=AN1 ( Bit quyết định là ANS1 của thanh ghi ANSEL)
    • RA2=AN2 ( Bit quyết định là ANS2 của thanh ghi ANSEL)
    • RA3=AN3 ( Bit quyết định là ANS3 của thanh ghi ANSEL)
    • RA5=AN4 ( Bit quyết định là ANS4 của thanh ghi ANSEL)
  • Shopcongnghe.net ANSEL
Thanh ghi ANSEL và ANSELH
ANSEL 16F8887
Sơ đồ cấu hình chân VĐK
2. Cấu hình:
  • Nhìn sơ đồ để muốn VĐK thực hiện chức năng Digital PORTA thì các bit tương ứng thanh ghi ANSEL phải ở mức 0.
  • Làm cách nào để khai báo chức năng Digital outputs của PORTA.
// The PORTA.2 pin is configured as a digital input.

// All other PORTA pins are digital outputs
ANSEL = ANSELH = 0; // All I/O pins are configured as digital
PORTA = 0;          // All PORTA pins are cleared
TRISA = 0b00000100; // All PORTA pins except PORTA.2 are configured as outputs
Trong lệnh trên ta gán TRISA = 0b00000100; là đang thực hiện gán mã nhị phân, chúng ta có thể gán câu lệnh tương đương: TRISA = 4;  hay TRISA = 0X04; (để hiểu thêm các bạn xem tài liệu về lập trình C hay Kỹ thuật số hay lên mạng tìm tài liệu chuyển đổi các cơ số).

3. Ví dụ:
  • Thực hiện chương trình chớp tắt PORTA với thời gian 500ms.
    • Phần cứng:
aa
  •  Code chương trình:
/*
*Program name: Blink Led at Port.
*Copyright: Nguyen Huu Luan (nvnnhl.wordpress.com)
*Description:
*Configuration:
Microcontroller: PIC16F887
Oscillator: HS, 20.000MHz
SW: miKro C V7.20
*Note:
*/
void main() {
ANSEL =0; // All I/O pins are configured as digital
TRISA = 0; //All PORTA pins are configured as outputs
PORTA= 0; //All PORTA pins are cleared
while(1){
PORTA = 0; //ALL Led PORTA ON
delay_ms(500); //Waiting 500ms
PORTA=0XFF; //ALL Led PORTA ON
delay_ms(500); //Waiting 500ms
}
}
Phản ứng:

Đăng nhận xét

[facebook]

MKRdezign

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget