第二次优化代码,增加闹钟、蜂鸣器功能。
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user