yewuyi 发表于 2013-2-25 10:19 
首先检查程序
void LCD_init(void)
{
TRISD0=0;
TRISD1=0;
TRISC0=0;
TRISC1=0;
TRISC2=0;
__delay_us(10);
res=0;
__delay_us(1);
res=1;
sce=0;
__delay_us(1);
sce=1;
__delay_us(1);
LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
LCD_write_byte(0xC6,0);//设定液晶偏置电压C6
LCD_write_byte(0x06,0);//温度校正
LCD_write_byte(0x13,0);;//1:48
LCD_write_byte(0x20,0);//使用基本指令
LCD_clear();
LCD_write_byte(0x0C,0);//设定显示模式,正常显示
sce=0;
}
void main(void)
{
__delay_ms(100);//保证液晶屏的复位质量
LCD_init();
RCONbits.IPEN=1;
INTCONbits.GIE=1;
INTCONbits.PEIE=1;
Timer0_Initial();
flag=0;
Display_char(1,0,"you fuck win!");
//int temp = 1999;
//Display(temp);
while(1)
{
if(flag)
{Display_char(26,2,"0");}
else
{Display_char(26,2,"1");}
}
}
void Display(int m_int)
{
char fuck[5];
itoa(&fuck,m_int,10);
Display_char(1,4,&fuck);
}
void Timer0InterruptRoutin()//中断服务程序
{
INTCONbits.TMR0IF=0;
TMR0H = (65536-39063)/256;
TMR0L = (65536-39063)%256;
PORTAbits.RA4=~PORTAbits.RA4;
flag=~flag;
}
以上是主程序和部分子程序。执行结果可以显示you fuck win!语句,但不稳定,有时候复位后就不行了。今天还遇到一个奇怪的现象,执行Display(temp);后液晶就什么都不显示了。请高手们赐教
|