لقد قمت بتعديل الكود ............ جرب واخبرني بالنتيجة
كود:
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
void main() {
char j;
char tab_out[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
unsigned int b=0;
unsigned int bb=0;
char tb[6]={0,0,0,0};
char i=0; char ii=0;
char r=0;
bit rr;
char tab[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
ANSELA = 0; // Set all ports as digital
ANSELB = 0;
ANSELC = 0;
ANSELD = 0;
ANSELE = 0;
trisd=127;portd=0;
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1){
i=0;
tab[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]=0;
while(1){
if(portd.f0==1){b++;delay_ms(150);}
if(portd.f1==1){b--;delay_ms(150);}
if(portd.f3==1){b=b+10;delay_ms(150);}
if(portd.f4==1){b=b-10;delay_ms(150);}
if(portd.f5==1){b=b+100;delay_ms(150);}
if(portd.f6==1){b=b-100;delay_ms(150); }
wordtostr(b,tb); lcd_out(1,1,tb);
if(portd.f2==1)break ;
}
/*bb=b;
b=(b/2);
rr=(b*2)-bb;
tab[19-i]=rr;
tab[19-i]=tab[19-i]+48;
i++;*/
while(b!=0){
tab[i]=(b%2)+48;
b=b/2;
i++;
}
Lcd_Cmd(_LCD_CLEAR);
for(j=0;j<=i;j++)
{
tab_out[j]=tab[i];
i--;
}
lcd_out(2,1,tab_out);
}
}