#include"lcd.h" /******************************************************************************* * �� �� �� : Lcd1602_Delay1ms * �������� : ��ʱ��������ʱ1ms * �� �� : c * �� �� : �� * ˵ �� : �ú�������12MHZ�����£�12��Ƶ��Ƭ������ʱ�� *******************************************************************************/ void Lcd1602_Delay1ms(uint c) //��� 0us { uchar a,b; for (; c>0; c--) { for (b=199;b>0;b--) { for(a=1;a>0;a--); } } } /******************************************************************************* * �� �� �� : LcdWriteCom * �������� : ��LCDд��һ���ֽڵ����� * �� �� : com * �� �� : �� *******************************************************************************/ #ifndef LCD1602_4PINS //��û�ж������LCD1602_4PINSʱ void LcdWriteCom(uchar com) //д������ { LCD1602_E = 0; //ʹ�� LCD1602_RS = 0; //ѡ�������� LCD1602_RW = 0; //ѡ��д�� LCD1602_DATAPINS = com; //�������� Lcd1602_Delay1ms(1); //�ȴ������ȶ� LCD1602_E = 1; //д��ʱ�� Lcd1602_Delay1ms(5); //����ʱ�� LCD1602_E = 0; } #else void LcdWriteCom(uchar com) { LCD1602_E = 0; LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_DATAPINS = com; Lcd1602_Delay1ms(1); LCD1602_E = 1; Lcd1602_Delay1ms(1); LCD1602_E = 0; Lcd1602_Delay1ms(1); LCD1602_DATAPINS = com << 4; Lcd1602_Delay1ms(1); LCD1602_E = 1; Lcd1602_Delay1ms(1); LCD1602_E = 0; } #endif /******************************************************************************* * �� �� �� : LcdWriteData * �������� : ��LCDд��һ���ֽڵ����� * �� �� : dat * �� �� : �� *******************************************************************************/ #ifndef LCD1602_4PINS void LcdWriteData(uchar dat) //д������ { LCD1602_E = 0; //ʹ������ LCD1602_RS = 1; //ѡ���������� LCD1602_RW = 0; //ѡ��д�� LCD1602_DATAPINS = dat; //д������ Lcd1602_Delay1ms(1); LCD1602_E = 1; //д��ʱ�� Lcd1602_Delay1ms(5); //����ʱ�� LCD1602_E = 0; } #else void LcdWriteData(uchar dat) { LCD1602_E = 0; LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_DATAPINS = dat; Lcd1602_Delay1ms(1); LCD1602_E = 1; Lcd1602_Delay1ms(1); LCD1602_E = 0; Lcd1602_Delay1ms(1); LCD1602_DATAPINS = dat << 4; Lcd1602_Delay1ms(1); LCD1602_E = 1; Lcd1602_Delay1ms(1); LCD1602_E = 0; } #endif /******************************************************************************* * �� �� �� : LcdInit() * �������� : ��ʼ��LCD�� * �� �� : �� * �� �� : �� *******************************************************************************/ #ifndef LCD1602_4PINS void LcdInit() //LCD��ʼ���ӳ��� { LcdWriteCom(0x38); //����ʾ LcdWriteCom(0x0c); //����ʾ����ʾ��� LcdWriteCom(0x06); //дһ��ָ���1 LcdWriteCom(0x01); //���� LcdWriteCom(0x80); //��������ָ����� } #else void LcdInit() //LCD��ʼ���ӳ��� { LcdWriteCom(0x32); //��8λ����תΪ4λ���� LcdWriteCom(0x28); //����λ���µij�ʼ�� LcdWriteCom(0x0c); //����ʾ����ʾ��� LcdWriteCom(0x06); //дһ��ָ���1 LcdWriteCom(0x01); //���� LcdWriteCom(0x80); //��������ָ����� } #endif