PIC Vietnam

Go Back   PIC Vietnam > Thành Viên

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

honhutkhanh honhutkhanh is offline

Nhập môn đệ tử

Visitor Messages

Showing Visitor Messages 1 to 1 of 1
  1. honhutkhanh
    22-10-2013 09:24 PM
    honhutkhanh
    mình đang làm đề tài đèn tự đông bật sáng khi có người đến gần công đếm số người dùng trong phòng.mình có thắc măc về phân code cho Pic 16F877A bạn nào biết sửa dùm mình với

    #include<16f877.h> //thu vien cho pic
    #use delay(clock=20M) //su dung tre
    int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
    //mang hien thi cac so tu 0 den 9
    long i,L1,L2,ng,x,y,vao,ra; //khai bao cac bien

    //============================================//

    void den(ng){
    if (ng==0) output_a(0); //xuat ra cong a gia tri 0:tat den
    else output_a(1); //xuat ra cong a gia tri 1:bat den
    }

    //============================================//

    void led(ng){
    L1=(ng/ 1) % 10; // Lay so hang don vi
    L2=(ng/ 10) % 10; // Lay so hang chuc
    for(i=0;i<100;i++){
    output_c(LED7[L2]); output_d(1); delay_ms(1); output_d(0);
    // dua ma so hang chuc ra cong C, bat LED 1, tre 1ms roi tat
    output_c(LED7[L1]); output_d(2); delay_ms(1); output_d(0);
    // dua ma so hang don vi ra cong C, bat LED 2, tre 1ms roi tat
    }
    }

    //============================================//

    int dauvao(){ //ctr con dau vao
    if ((x==0)&&(y==0)){ //neu bat dau di vao thi thuc hien
    x=1; //ghi nhan da qua senso 1
    if (ng!=99) ng++; //neu so nguoi con nho hon 99 thi dem tang
    }
    else if ((x==0)&&(y==1)){ //neu la cuoi cua qua trinh di ra
    x=1; //ghi nhan da qua senso 1
    }
    }

    //============================================//

    int daura(){ //ctr con dau ra
    if ((x==0)&&(y==0)){ //neu bat dau di ra va con nguoi trong phong
    y=1; //ghi nhan da qua senso 2
    if (ng!=0) ng--; //neu so nguoi con lon hon 0 thi dem giam
    }
    else if((x==1)&&(y==0)){ //neu la cuoi cua qua trinh vao
    y=1; //ghi nhan da qua senso 2
    }
    }

    //============================================//

    #INT_rb //khai bao ngat thay doi trang thai cong B

    long vaora(){ //ctr ngat cong B
    vao=input(pin_b4); //gan bien vao doc du lieu vao chan B4 tu senso 1
    ra=input(pin_b5); //gan bien vao doc du lieu vao chan B5 tu senso 2
    if (vao==0) dauvao(); //neu co tin hieu vao thi cho chay ctr con dau vao
    else if (ra==0) daura(); //neu co tin hieu ra thi cho chay ctr con dau ra
    if ((x==1)&&(y==1)&&(vao==1)&&(ra==1)){
    //khi ca 2 sense deu da co tin hieu thi cai dat lai
    x=0;
    y=0;
    }
    return ng;
    }

    //============================================//

    void main(){
    x=y=0; ng=0; //Gan cac gia tri ban dau
    set_tris_a(0); //Cong A la cong ra
    set_tris_b(0xff); //Cong B la cong vao
    set_tris_c(0); //Cong C la cong ra
    set_tris_d(0); //Cong D la cong ra

    enable_interrupts(INT_rb); //cho phep ngat ngoai dem vach
    enable_interrupts(GLOBAL); //cho phep ngat toan cuc

    while (1){ //lien tuc kiem tra senso va dieu khien den
    led(ng); //goi ham hien thi den led
    den(ng); //goi ham bat tat den
    }
    }

Statistics

Tổng số bai
Visitor Messages
General Information
  • Lần cuối: 25-10-2013 03:52 PM
  • Tham gia ngày: 22-10-2013
  • Ðã giới thiệu: 0

Múi giờ GMT. Hiện tại là 11:10 PM.


Đượ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