LCD中的左移命令无法正常工作

时间:2019-01-24 14:04:15

标签: mikroc

所以我正在用MikroC编写一个程序,该程序在LCD上打印文本,并每隔13毫秒右移一次。当文本完全向右移动时,它将向左移动,每次处理第一个中断时,它就会来回移动。在第二个中断处,没有移位,文本仅停留在那里。

sbit LCD_RS at RA4_bit;
sbit LCD_EN at RA5_bit;
sbit LCD_D4 at RA0_bit;
sbit LCD_D5 at RA1_bit;
sbit LCD_D6 at RA2_bit;
sbit LCD_D7 at RA3_bit;
sbit LCD_RS_Direction at TRISA4_bit;
sbit LCD_EN_Direction at TRISA5_bit;
sbit LCD_D4_Direction at TRISA0_bit;
sbit LCD_D5_Direction at TRISA1_bit;
sbit LCD_D6_Direction at TRISA2_bit;
sbit LCD_D7_Direction at TRISA3_bit;

char text[25], broj[50];
int i, turn, flag;

void interrupt(){
if(intf_bit==1){
if(flag==0) flag=1;
else flag=0;
intf_bit=0;
}
}

void main(){

i=0;
turn=1;
ANSEL=0;
ANSELH=0;
TRISB.B0=1;
strcpy(text, "Random Text That Has Some");
flag=0;
intcon=0x90;
LCD_init();
LCD_CMD(_LCD_Cursor_Off);
lcd_cmd(_lcd_clear);
lcd_out(1, 1, text);

while(1){
if(flag==1){
   if(turn==1) {
   LCD_cmd(_lcd_shift_right);
   i++;
   }
   if(turn==0){
   lcd_cmd(_lcd_shift_left);
   i--;
   }
   if(i==11){
   turn=0;
   }
   if(i==0){
   turn=1;
   }
   delay_ms(13);
}
}
}

但是,当我在模拟器上运行该程序时,它向右移动并不会向左移动。它只是右移,直到第一个字母再次出现,然后变成一个完整的圆圈。

有什么想法吗?

0 个答案:

没有答案