PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 26-08-2014, 02:02 AM   #1
tuandat1985
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);}






}
tuandat1985 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


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