26-08-2014, 02:02 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Feb 2009
Bài gửi: 3
: |
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);} } |
|
|