以下是程序中有?号的行不懂?请高手帮忙解答,灰常感谢~
/******************************************* 函数名称:LocateXY 功 能:向液晶输入显示字符位置的坐标信息 参 数:x--位置的列坐标 y--位置的行坐标 返回值 :无 ********************************************/ void LocateXY(uchar x,uchar y) { uchar temp;
temp = x&0x0f; y &= 0x01; if(y) temp |= 0x40; //如果在第2行 temp |= 0x80; //数据显示地址指令最高位为1 LcdWriteCommand(temp,1); }
/******************************************* 函数名称:LcdWriteData 功 能:向液晶显示的当前地址写入显示数据 参 数:data--显示字符数据 返回值 :无 ********************************************/ void LcdWriteData( uchar data ) { WaitForEnable(); //等待液晶不忙
SET_RS; CLR_RW; _NOP();
DataPort = data; //将显示数据写入数据端口 _NOP();
SET_EN; //产生使能脉冲信号 _NOP(); _NOP(); CLR_EN; }
{[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ 以下是主函数 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
/*************************************************** 程序功能:动态显示文字“welcome!” ---------------------------------------------------- 测试说明:观察液晶显示 ****************************************************/ #include <msp430x14x.h> #include "cry1602.c"
unsigned char *s1 = "welcome!";
void main( void ) { unsigned char i; WDTCTL = WDT_ADLY_250; //间隔定时器,定时16ms LcdReset(); DispStr(4,0,s1); LocateXY(0,9); //确定写入字符的显示位置,???????????????????????????????? 是怎么确定的?9是如何来的? LcdWriteCommand(0x07, 1); //整体显示左移 for(i = 12; i > 0; i--) ?????????????????????????????? 这里i=12和下面i=24是怎么算的?
{ LcdWriteData(0x20); ???????????????????写入0x20是表示什么?
//延时250ms IFG1 &= ~WDTIFG; while(!(IFG1 & WDTIFG)); ?????????????????????这里延时有什么作用?? IFG1 &= ~WDTIFG; } while(1) { LcdWriteCommand(0x05, 1); //整体显示右移 for(i = 24; i > 0; i--) { LcdWriteData(0x20); //延时250ms IFG1 &= ~WDTIFG; while(!(IFG1 & WDTIFG)); IFG1 &= ~WDTIFG; } LcdWriteCommand(0x07, 1); //整体显示左移 for(i = 24; i > 0; i--) { LcdWriteData(0x20); //延时250ms IFG1 &= ~WDTIFG; while(!(IFG1 & WDTIFG)); IFG1 &= ~WDTIFG; } } }
|