e đang lập trình con 12f675, các bác trong diễn đàn ai biết xem hộ và chỉ giáo cho e với. e muốn rút gọn tối thiểu cho nó, nhưng thử đi thử lại vẫn chưa ok.:-d mong mọi ngưởi giúp đỡ, code đây mọi người:
mà có ai biết sửa code này làm code cho pic2f59 thì sửa giùm e với nhé. thank mọi người trước.
#include <12F675.h>
#device ADC=10
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
#use delay(clock=4000000)
#define GP0 PIN_A0
#define GP1 PIN_A1
#define GP2 PIN_A2
#define GP3 PIN_A3_OFF
#define GP4 PIN_A4
#define GP5 PIN_A5
void main()
{
int16 k,b,x,t;
while(1){
for(x=250;x>=20;x-=40){
output_a(0x00);delay_ms(x);//tat het led
output_a(0xff);delay_ms(x);//bat het led
}
for(x=150;x>=135;x-=1){
for(k=1;k<0x40;k=k<<1){//dich trai1
if(k==0x08){}
else{
output_a(k);delay_ms(x);
}}}
for(x=150;x>=140;x-=1){
for(k=0x40; k>=0x01;k=k>>1){//dich phai1
if(k==0x08)
{}
else{
output_a(k);delay_ms(x);}
}}
for(x=150;x>=115;x-=5){
for(k=1;k<0x40;k=k<<1){
if(k==0x08){}
else{
output_a(k);delay_ms(x);
}}
for(k=0x40; k>=0x01;k=k>>1){//len xuong
if(k==0x08)
{}
else{
output_a(k);delay_ms(x);}
}}
for(x=300;x>=50;x-=30){
b=0x00; //khai bao bien phai dat duoi for tren
for(k=1;k<=0x20;k=k<<1){//don trai
if(k==0x08){}
else{
b=b+k;output_a(b);delay_ms(x);
}}
t=0x00;//khai bao bien phai dat duoi for tren
for(k=0x40; k>0x00; k=k>>1){//don phai(luon phien)
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}}
for(x=10;x<=200;x+=30){
for(k=0x40; k>=0x01;k=k>>1){//dich phai
if(k==0x08)
{}
else{
output_a(k);delay_ms(x);}
}}
for(x=300;x>=100;x-=30){
for(k=0x40,t=1; k>=0x01,t<0x40;k=k>>1,t=t<<1){// ngoai vao giua, giua ra
if(k==0x08)
{}
else{
output_a(k|t);delay_ms(x);
}}}
for(x=300;x>=30;x-=20){
t=0xff;//khai bao bien phai dat duoi for tren
for(k=0x40; k>0x00; k=k>>1){
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}
}
for(x=50;x>=35;x-=1){
t=0x01;//khai bao bien phai dat duoi for tren
for(k=0x40; k>0x00; k=k>>1){
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}
}
for(x=60;x>=40;x-=1){
t=0x04;
for(k=0x40; k>0x00; k=k>>1){//sang lan
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}
}
for(x=200;x>=190;x-=1){//van co the long vong for thoi gian cho nhieu vong for con khac
for(k=0x40,t=0x01,k>=0x04;t<=0x04;t<<=1){//ngoai vao va nguoc lai
if(k==0x08)
{}
else{
k>>=1;output_a(t|k);delay_ms(x);}}//tu ngoai vao giua//chu y gan k truoc output tranh truong hop tre o chan GP3
for(k=0x04,t=0x04;k>=0x01,t<=0x40;k>>=1){
if(k==0x08)
{}
else{
t<<=1;output_a(k|t);delay_ms(x);}//tu giua ra_chu y phai gan t truoc output
}}
for(x=300;x>=280;x-=2){
output_a(0x3c);delay_ms(x);
output_a(0x00);delay_ms(x);
output_a(0x07);delay_ms(x);
output_a(0x00);delay_ms(x);
}
}
}
#device ADC=10
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
#use delay(clock=4000000)
#define GP0 PIN_A0
#define GP1 PIN_A1
#define GP2 PIN_A2
#define GP3 PIN_A3_OFF
#define GP4 PIN_A4
#define GP5 PIN_A5
void main()
{
int16 k,b,x,t;
while(1){
for(x=250;x>=20;x-=40){
output_a(0x00);delay_ms(x);//tat het led
output_a(0xff);delay_ms(x);//bat het led
}
for(x=150;x>=135;x-=1){
for(k=1;k<0x40;k=k<<1){//dich trai1
if(k==0x08){}
else{
output_a(k);delay_ms(x);
}}}
for(x=150;x>=140;x-=1){
for(k=0x40; k>=0x01;k=k>>1){//dich phai1
if(k==0x08)
{}
else{
output_a(k);delay_ms(x);}
}}
for(x=150;x>=115;x-=5){
for(k=1;k<0x40;k=k<<1){
if(k==0x08){}
else{
output_a(k);delay_ms(x);
}}
for(k=0x40; k>=0x01;k=k>>1){//len xuong
if(k==0x08)
{}
else{
output_a(k);delay_ms(x);}
}}
for(x=300;x>=50;x-=30){
b=0x00; //khai bao bien phai dat duoi for tren
for(k=1;k<=0x20;k=k<<1){//don trai
if(k==0x08){}
else{
b=b+k;output_a(b);delay_ms(x);
}}
t=0x00;//khai bao bien phai dat duoi for tren
for(k=0x40; k>0x00; k=k>>1){//don phai(luon phien)
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}}
for(x=10;x<=200;x+=30){
for(k=0x40; k>=0x01;k=k>>1){//dich phai
if(k==0x08)
{}
else{
output_a(k);delay_ms(x);}
}}
for(x=300;x>=100;x-=30){
for(k=0x40,t=1; k>=0x01,t<0x40;k=k>>1,t=t<<1){// ngoai vao giua, giua ra
if(k==0x08)
{}
else{
output_a(k|t);delay_ms(x);
}}}
for(x=300;x>=30;x-=20){
t=0xff;//khai bao bien phai dat duoi for tren
for(k=0x40; k>0x00; k=k>>1){
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}
}
for(x=50;x>=35;x-=1){
t=0x01;//khai bao bien phai dat duoi for tren
for(k=0x40; k>0x00; k=k>>1){
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}
}
for(x=60;x>=40;x-=1){
t=0x04;
for(k=0x40; k>0x00; k=k>>1){//sang lan
if(k==0x08)
{
}
else
{
output_a(k|t);delay_ms(x);t=t+k;}
}
}
for(x=200;x>=190;x-=1){//van co the long vong for thoi gian cho nhieu vong for con khac
for(k=0x40,t=0x01,k>=0x04;t<=0x04;t<<=1){//ngoai vao va nguoc lai
if(k==0x08)
{}
else{
k>>=1;output_a(t|k);delay_ms(x);}}//tu ngoai vao giua//chu y gan k truoc output tranh truong hop tre o chan GP3
for(k=0x04,t=0x04;k>=0x01,t<=0x40;k>>=1){
if(k==0x08)
{}
else{
t<<=1;output_a(k|t);delay_ms(x);}//tu giua ra_chu y phai gan t truoc output
}}
for(x=300;x>=280;x-=2){
output_a(0x3c);delay_ms(x);
output_a(0x00);delay_ms(x);
output_a(0x07);delay_ms(x);
output_a(0x00);delay_ms(x);
}
}
}
mà có ai biết sửa code này làm code cho pic2f59 thì sửa giùm e với nhé. thank mọi người trước.