RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Giúp em dịch đoạn code này thành file hex với

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • tuandat1985
    Nhập môn đệ tử
    • Feb 2009
    • 3

    #1

    Giúp em dịch đoạn code này thành file hex với

    Em tìm được code này trên mạng nhưng không dịch đuọc thành file hex
    em có dùng ccs + mplab dịch nhưng nó báo lỗi def_877a.h gì đó mà em không hiểu

    #include ".C:\ .....\test lcd\DH\main.h" // sữa lại đường dẫn
    #include <ds1307.c>
    #include <def_877a.h>
    int8 giay;
    #bit SW1=0x06.5 //Che do
    #bit SW2=0x06.4 // Tang
    #bit SW3=0x06.3 //Giam
    #bit SW4=0x06.2 // Led vien
    #bit CLK=portC.2 //Chan 11
    #bit SDI=portC.0 // Chan 14
    #bit STR=portC.1 //Chan 12
    unsigned CHAR m1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
    unsigned CHAR m2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
    unsigned CHAR m3[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
    int8 n=0,t=0;

    byte u;int8 mode=0;
    byte const so[] = {0b011111110,0b00110000,0b01101101,0b01111001,0b00 110011,0b01011011,0b01011111,0b01110000,0b01111111 ,0b01111011};

    byte TG1,TG2,TG3,TG4,TG5,TG6,sec,min,hour;
    void ghi_dich(UNSIGNED char Q8,unsigned char Q7,unsigned char Q6,unsigned char Q5,unsigned char Q4,unsigned char Q3,unsigned char Q2,unsigned char Q1);
    void sosanh(UNSIGNED char gia_tri);
    void read_time();
    void quetphim();
    void hienthi();
    void led_vien();


    void main()
    {
    sec=0;
    TRISA=0x00;
    set_tris_C(0x00);
    TRISB=0XFF;//PORTB La dau vao
    TRISD=0X00;//PORTD La dau ra

    init_ds1307();
    u=read_ds1307(0);
    sec=u & 0x7F;
    write_ds1307(0,sec);// ket noi dong ho(bit7=0)
    while (1) {
    read_time();
    hienthi();
    quetphim();
    led_vien();


    }}



    void hienthi()
    {
    output_D(so[TG2]);
    porta=0;
    output_high(pin_A0);
    delay_ms(1);
    output_D(so[TG1]);
    porta=0;
    output_high(pin_A1);

    delay_ms(1);
    output_D(so[TG6]);
    porta=0;
    output_high(pin_A2);

    delay_ms(1);
    output_D(so[TG5]);
    porta=0;
    output_high(pin_A3);

    delay_ms(1);
    output_D(so[TG4]);
    porta=0;
    output_high(pin_A4);

    delay_ms(1);
    output_D(so[TG3]);
    porta=0;
    output_high(pin_A5);
    delay_ms(1);


    }
    void read_time()
    {

    sec = read_DS1307(0);
    min = read_DS1307(1);
    hour = read_DS1307(2);
    TG6=(hour&0xF0)>>4;
    TG5=hour&0x0F;
    TG4=(min&0xF0)>>4;
    TG3=(min&0x0F);
    TG2=(sec%0xF0)>>4;
    TG1=sec&0x0F;
    giay=TG2*10+TG1;


    }

    void quetphim(){

    if (SW1==0) {while (SW1==0) {hienthi();} {mode=mode+1;if (mode==3) {mode=0;}}}
    if (SW4==0) {while (SW4==0) {hienthi();} {t=t+1;if (t==3) {t=0;}}}
    while (mode==1) {
    output_D(so[TG6]);
    porta=0;
    output_high(pin_A2);

    delay_ms(2);
    output_D(so[TG5]);
    porta=0;
    output_high(pin_A3);

    delay_ms(2);


    If (SW2==0) {{while (SW2==0) {;} TG5=TG5+1;}
    If ((TG6==2)&&(TG5==4)) {TG5=0;TG6=0;}
    If (TG5==10) {TG6=TG6+1;TG5=0;}}
    If (SW3==0) {while (SW3==0) {;}TG5=TG5-1;
    if (TG5==-1) {TG5=9;TG6=TG6-1;
    if (TG6==-1) {TG6=0;}}}

    If (SW4==0) {while (SW4==0) {;}

    hour=(((TG6&0x3F)<<4)|TG5);
    write_ds1307(2,hour);
    mode=4;}
    If (SW1==0) {while (SW1==0) {;}
    hour=(((TG6&0x3F)<<4)|TG5);

    write_ds1307(2,hour);
    bit_clear(hour,6);
    mode=2;}}

    while (mode==2) {
    output_D(so[TG4]);
    porta=0;
    output_high(pin_A4);

    delay_ms(2);
    output_D(so[TG3]);
    porta=0;
    output_high(pin_A5);
    delay_ms(2);

    If (SW2==0) {while (SW2==0) {;} TG3=TG3+1;
    IF (TG3==10) {TG3=0;TG4=TG4+1;if (TG4==6) {TG4=0;}}}
    If (SW3==0) {while (SW3==0) {;}TG3=TG3-1;
    if (TG3==-1) {TG3=9;TG4=TG4-1;
    if (TG4==-1) {TG4=0;TG3=0;}}}

    If (SW4==0) {while (SW4==0) {;}

    min=(((TG4&0x0F)<<4)|TG3);
    write_ds1307(1,min);
    mode=4;}
    If (SW1==0) {while (SW1==0) {;}
    min=(((TG4&0x0F)<<4)|TG3);
    write_ds1307(1,min);
    mode=0;}}
    }





    VOID ghi_dich(unsigned char Q8,unsigned char Q7,unsigned char Q6,unsigned char Q5,unsigned char Q4,unsigned char Q3,unsigned char Q2,unsigned char Q1)
    {



    INT8 j=0,i=0;
    FOR(j=0;j<8;j++) { SDI=Q8&0x01;CLK=0; CLK=1;Q8=Q8>>1;}
    FOR(j=0;j<8;j++) { SDI=Q7&0x01;CLK=0; CLK=1;Q7=Q7>>1;}
    FOR(j=0;j<8;j++) { SDI=Q6&0x01;CLK=0; CLK=1;Q6=Q6>>1;}
    FOR(j=0;j<8;j++) { SDI=Q5&0x01;CLK=0; CLK=1;Q5=Q5>>1;}
    FOR(j=0;j<8;j++) { SDI=Q4&0x01;CLK=0; CLK=1;Q4=Q4>>1;}
    FOR(j=0;j<8;j++) { SDI=Q3&0x01;CLK=0; CLK=1;Q3=Q3>>1;}
    FOR(j=0;j<8;j++) { SDI=Q2&0x01;CLK=0; CLK=1;Q2=Q2>>1;}
    FOR(j=0;j<8;j++) { SDI=Q1&0x01;CLK=0; CLK=1;Q1=Q1>>1;}
    STR = 0; STR = 1;

    }

    void led_vien() {
    int8 T1,T2,T3,T4,T5,T6,T7,T8;
    byte const q[] = {0b00000001,0b00000011,0b00000111,0b00001111,0b000 11111,0b00111111,0b01111111,0b11111111};
    byte const r[] = {0b11111110,0b11111100,0b11111000,0b11110000,0b111 00000,0b11000000,0b10000000,0b00000000};
    int8 k=0b00000001;

    t=3;
    if (t==1) {
    if (sec%2==0) {
    ghi_dich(0b10101010,0b10101010,0b10101010,0b101010 10,0b10101010,0b10101010,0b10101010,0b10101010);}
    if (sec%2==1) {
    ghi_dich(0b01010101,0b01010101,0b01010101,0b010101 01,0b01010101,0b01010101,0b01010101,0b01010101);}
    }

    if (t==2) {
    if ((giay>0)&&(giay<8)) {ghi_dich(0x00,0x00,0x00,0x00,0x00,0x00,0x00,q[giay]);}
    if ((giay>=8)&&(giay<16)) {ghi_dich(0x00,0x00,0x00,0x00,0x00,0x00,q[giay-8],0xFF);}
    if ((giay>=16)&&(giay<24)) {ghi_dich(0x00,0x00,0x00,0x00,0x00,q[giay-16],0xFF,0xFF);}
    if ((giay>=24)&&(giay<32)) {ghi_dich(0x00,0x00,0x00,0x00,q[giay-24],0xFF,0xFF,0xFF);}
    if ((giay>=32)&&(giay<40)) {ghi_dich(0x00,0x00,0x00,q[giay-32],0xFF,0xFF,0xFF,0xFF);}
    if ((giay>=40)&&(giay<48)) {ghi_dich(0x00,0x00,q[giay-40],0xFF,0xFF,0xFF,0xFF,0xFF);}
    if ((giay>=48)&&(giay<56)) {ghi_dich(0x00,q[giay-48],0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);}
    if (giay>=56) {ghi_dich(q[giay-56],0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);}

    }
    if (t==3) {
    if ((giay>0)&&(giay<8)) {ghi_dich(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,r[giay]);}
    if ((giay>=8)&&(giay<16)) {ghi_dich(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,r[giay-8],0x00);}
    if ((giay>=16)&&(giay<24)) {ghi_dich(0xFF,0xFF,0xFF,0xFF,0xFF,r[giay-16],0x00,0x00);}
    if ((giay>=24)&&(giay<32)) {ghi_dich(0xFF,0xFF,0xFF,0xFF,r[giay-24],0x00,0x00,0x00);}
    if ((giay>=32)&&(giay<40)) {ghi_dich(0xFF,0xFF,0xFF,r[giay-32],0x00,0x00,0x00,0x00);}
    if ((giay>=40)&&(giay<48)) {ghi_dich(0xFF,0xFF,r[giay-40],0x00,0x00,0x00,0x00,0x00);}
    if ((giay>=48)&&(giay<56)) {ghi_dich(0xFF,r[giay-48],0x00,0x00,0x00,0x00,0x00,0x00);}
    if (giay=56) {ghi_dich(0b00000111,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00);}
    if (giay=57) {ghi_dich(0b00000011,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00);}
    if (giay=58) {ghi_dich(0b00000001,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00);} }
    if (giay=59) {ghi_dich(0b00000001,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00);}
    if (giay=0) {ghi_dich(0b00000000,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00);}






    }
  • tuandat1985
    Nhập môn đệ tử
    • Feb 2009
    • 3

    #2
    em dùng ccs dịch thì nó báo lõi dòng này
    init_ds1307();
    error 12 " main.c"line 38 (2,13): undefined identifier init_ds1307

    ai giúp dùm e với hic

    Comment

    Working...