toilet

Xin giúp định nghĩa PORT trong CCS

Thảo luận trong 'Họ PIC -> dsPIC'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

Moderators: THUONGDTQB
  1. Đăng 25/12/16 #1

    Authur Học sinh phổ thông

    Số bài viết: 2
    Đã được thích: 0
    Chào các bạn,

    mình sử dụng CCS 5.015, để lập trình đoạn code bật tắt LED, nhưng mô phỏng trên Proteus không chạy được,
    Cách 1 : mình muốn mở công RB0,1,2 nhưng không được
    Cách 2 : mình mở được cổng RB3, nhưng không mở đồng thời cổng RB4 được,

    mình cảm ơn,

    #include <main.h>

    int8 status_b=0;

    #byte PORTB=0x06
    #byte TRISB=0x86

    void main()
    {
    TRISB=0b01000000;
    PORTB=0;

    //cach 1
    PORTB=0x01;
    delay_ms(500);
    PORTB=0x02;
    delay_ms(500);
    PORTB=0x04;
    delay_ms(500);

    //cach 2
    status_b=PORTB;
    output_b(status_b|0x08);
    delay_ms(500);
    status_b=PORTB;
    output_b(status_b|0x10);
    while(TRUE)
    {

    //TODO: User Code
    }

    }
    #1
  2. Đăng 25/12/16 #2

    huuquy95 Học sinh phổ thông

    Số bài viết: 16
    Đã được thích: 7
    Chương trình ko có vấn đề gì nhé,bạn kiểm tra lại mô phỏng xem.tần số thạch anh đặt là 20Mhz chưa. mặc định trong protues là 1 Mhz nên có thể chương trình chạy ko đúng yêu cầu.
    #2
  3. Đăng 25/12/16 #3

    dientuthuc Kỹ sư

    Số bài viết: 368
    Đã được thích: 142
    mở rb012 thì portb=0b00000111; còn 34 thì cũng tương tự portb=0b00011000; bác đã khai báo mỗi port có 8 bít thì thao tác trên từng bít cho dễ hiểu nó cũng mất 1 lệnh không làm chậm chương trình đâu mà
    #3
  4. Đăng 26/12/16 #4

    Authur Học sinh phổ thông

    Số bài viết: 2
    Đã được thích: 0
    Mình đã kiểm tra lại proteus, tần số mình cài đặt đúng 20Mhz nhưng vẫn ko chạy được @@,

    To dientuthuc : Ah, tại mình có một số đoạn code lập trình bên MPLABX sử dụng cách trên, nên đổi lại có một số bất tiện,
    #4
Moderators: THUONGDTQB

Chia sẻ trang này