|
发表于 2013-5-25 17:59:33
|
显示全部楼层
#include"lcd.h"
//#include"key.h"
#include"control.h"
#include"instr_code.h"
/***************************************
函数功能:595 SPI写数据
传入参数:udata
芯片型号:为595,ATMEGE8
时钟 :8M
****************************************/
void write_595(U8 udata)
{U8 i;
CS595_L;
OE595_H;
for(i=0;i<8;i++)
{SCK595_L;
if(udata&0x80)MOSI595_H
else MOSI595_L;
SCK595_H;
udata<<=1;
}
OE595_L;
CS595_H;
}
/***************************************
函数功能:LCD_1602 写命令
传入参数:udata
芯片型号:为595,ATMEGE8
时钟 :8M
****************************************/
void writecom_lcd(U8 udata)
{ delay_ms(1);
LCDRS_L;
LCDEN_H;
write_595(udata);
LCDEN_L;
write_595(0);
}
/***************************************
函数功能:LCD_1602 写数据
传入参数:udata
芯片型号:为595,ATMEGE8
时钟 :8M
****************************************/
void writedata_lcd(U8 udata)
{ delay_ms(1);
LCDRS_H;
LCDEN_H;
write_595(udata);
LCDEN_L;
write_595(0);
}
/***************************************
函数功能:LCD_1602 写字符串
传入参数:udata
芯片型号:为595,ATMEGE8
时钟 :8M
****************************************/
void lcd_wrstring(U8 adder,U8 *s)
{ U8 n;
writecom_lcd(adder);
for(n=0;*s!='\0';n++)
{writedata_lcd(*s);
delay_ms(5);
s++;}
}
/***************************************
函数功能:LCDInt
传入参数:
芯片型号:ATMEGE8
时钟 :8M
****************************************/
void lcd_1602Int(void)
{ U8 i=15;
CS_in;
OE_in;
SCK_in;
MOSI_in;
LCDRS_in;
LCDEN_in;
LCD_ledH;
// lcdled_biao=1;
delay_ms(10);
writecom_lcd(0x38);//16*2显示,5*7点阵,8位数据
delay_ms(10);
writecom_lcd(0x80); //显示开,关光标
delay_ms(10);
writecom_lcd(0x06);//移动光标
delay_ms(10);
writecom_lcd(0x01);//清除LCD的显示内容
delay_ms(10);
lcd_wrstring(0x90,"Control System");
lcd_wrstring(0xd3,"Welcome!");
writecom_lcd(0x0c);//显示开,关光标
while(i)
{writecom_lcd(0x18);
delay_ms(200);
delay_ms(200);
i--;
}
delay_ms(200);
writecom_lcd(0x01);//清除LCD的显示内容
}
自己对一下
|
|