delay(100); //大于100uS的延时程序
TransferData(0x10,0); //Cursor Display Control光标设置
delay(100); //大于100uS的延时程序
TransferData(0x0C,0); //Display Control,D=1,显示开
delay(100); //大于100uS的延时程序
TransferData(0x01,0); //Display Clear 清屏
delay(10); //大于10mS的延时程序
TransferData(0x06,0); //Enry Mode Set,光标从右向左加1位移动
delay(100); //大于100uS的延时程序
}
//*************显示函数******************************
void lcd_mesg(unsigned char code *adder1)
{
unsigned char i;
TransferData(0x80,0); //Set Graphic Display RAM Address 传地址指令
delay(100);
for(i=0;i<16;i++)
{
TransferData(*adder1,1);
adder1++;
}
TransferData(0x90,0); //Set Graphic Display RAM Address
delay(100);
for(i=32;i<64;i++)
{
TransferData(*adder1,1);
adder1++;
}
}
//*************位置显示函数******************************
void lcd_wxs1(unsigned int adder2)
{
TransferData(0x8A,0); //Set Graphic Display RAM Address 传地址指令
delay(100);
TransferData(adder2,1);
}
void lcd_wxs2(unsigned int adder3)
{
TransferData(adder3,1);
}
void lcd_wxs5(unsigned int adder6)
{
TransferData(adder6,1);
}
void lcd_wxs3(unsigned int adder4)
{
TransferData(adder4,1);
}
void lcd_wxs4(unsigned int adder5)
{
TransferData(adder5,1);
}
void lcd_wxs6(unsigned int adder7)
{
TransferData(adder7,1);
}
//********写命令/数据*******************************
void TransferData(char data1,bit DI) //传送数据或者命令,当DI=0是,传送命令,
{ //当DI=1,传送数据.
WRD=0; //R/W="H",E="H",数据被读到DB7--DB0,R/W="L",E="H→L", DB7--DB0的数据被写到IR或DR
RS=DI; //RS="H",表示DB7--DB0为显示数据, RS="L",表示DB7--DB0为显示指令数据
delay(1);
P0=data1;
E=1;
delay(1);
E=0;
}
//************延 时*******************************************
/* 主程序入口 */
int main(void)
{ initinal();
delay(10); //大于100uS的延时程序
lcd_mesg(IC_DAT); //显示中文汉字1
delayms(100);
while(1)
{
TLC1549();
lcd_wxs1(data1[j]);
lcd_wxs5(data1[10]);
lcd_wxs2(data1[q]);
lcd_wxs3(data1[p]);
lcd_wxs4(data1[k]);
lcd_wxs6(data1[11]);
delayms(20);
}
}
上一页 [1] [2]
本文关键字:程序 51单片机,单片机-工控设备 - 51单片机