Mbed + 7 segment (use LPC 1114)

0 nhận xét

Summary:


Use triple digits segment and mbed LPC1114 micro controller.


Code

#include "mbed.h"
DigitalOut a(dp9);
DigitalOut b(dp17);
DigitalOut c(dp11);
DigitalOut d(dp13);
DigitalOut e(dp14);
DigitalOut f(dp10);
DigitalOut g(dp18);
DigitalOut s0(dp25);
DigitalOut s1(dp24);
DigitalOut s2(dp26);

void zero(){
    a=0;
    b=0;
    c=0;
    d=0;
    e=0;
    f=0;
    g=1;
}
void once(){
    a=1;
    b=0;
    c=0;
    d=1;
    e=1;
    f=1;
    g=1;
}
void two(){
    a=0;
    b=0;
    c=1;
    d=0;
    e=0;
    f=1;
    g=0;
}
void three(){
    a=0;
    b=0;
    c=0;
    d=0;
    e=1;
    f=1;
    g=0;
}
void four(){
    a=1;
    b=0;
    c=0;
    d=1;
    e=1;
    f=0;
    g=0;
}
void five(){
    a=0;
    b=1;
    c=0;
    d=0;
    e=1;
    f=0;
    g=0;
}
void six(){
    a=0;
    b=1;
    c=0;
    d=0;
    e=0;
    f=0;
    g=0;
}
void seven(){
    a=0;
    b=0;
    c=0;
    d=1;
    e=1;
    f=1;
    g=1;
}
void eight(){
    a=0;
    b=0;
    c=0;
    d=0;
    e=0;
    f=0;
    g=0;
}
void nine(){
    a=0;
    b=0;
    c=0;
    d=0;
    e=1;
    f=0;
    g=0;
   
}
void write_1_number(uint8_t stt, uint8_t number){
    if(stt ==0){
        s0=1;
        s1=0;
        s2=0;
        wait_ms(2);
    }
    if(stt==1){
        s0=0;
        s1=1;
        s2=0;
        wait_ms(2);
    }
      if(stt==2){
        s0=0;
        s1=0;
        s2=1;
        wait_ms(2);
    }
    if(number==0){
        zero();
    }
    if(number==1){
        once();
    }
    if(number==2){
        two();
    }
    if(number==3){
        three();
    }
    if(number==4){
        four();
    }
    if(number==5){
        five();
    }
    if(number==6){
        six();
    }
    if(number==7){
        seven();
    }
    if(number==8){
        eight();
    }
    if(number==9){
        nine();
    }
}
void write_3_number(uint16_t number){
    float tem = (float)(number)/100.0;
    uint8_t san_ = (int)floor(tem);
    float tem_1=((float)(number-san_*100))/10.0;
    uint8_t ni_ = (int)floor(tem_1);
    float tem_2=((float)(number-san_*100-ni_*10));
    uint8_t ichi_ = (int)floor(tem_2);
    write_1_number(0,ichi_);
    write_1_number(1,ni_);
    write_1_number(2,san_);
}
int i=0;
int main() {
    int count=0;   
    while(1) {
        count++;
        if(count>20){
            i++;
            count=0;
        }
        write_3_number(i);
        if(i>999){
            i=0;
        }
    }
}
 

Facebook Comments
Blogger Comments
Share knowledge

Copyright © 2016 - Share knowledge ®