PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Giúp em dịch đoạn code này thành file hex với (http://www.picvietnam.com/forum/showthread.php?t=33736)

tuandat1985 26-08-2014 02:02 AM

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 26-08-2014 08:35 PM

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


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam