#include "drive_1602.h" #include <stdarg.h> // ��ͷ�ļ� #include "stdio.h" #include "string.h" #define lcddata P1 sbit rs=P2^7; sbit en=P2^6; //sbit rw=P2^6; extern void delay_xms(int xms); void delay_1ms(unsigned int xms)//��ʱ�������вκ��� { delay_xms(xms); } //****Һ��д��ָ���****// void Write_1602_com(unsigned char com) { // rw=0; rs=0;//����/ָ��ѡ����Ϊָ�� lcddata=com;//�������� delay_1ms(1); en=1;//����ʹ�ܶˣ�Ϊ������Ч���½������� delay_1ms(1); en=0;//en�ɸ߱�ͣ������½��أ�Һ��ִ������ } //***Һ��д�����ݺ���****// void Write_1602_date(unsigned char date) { // rw=0; rs=1;//����/ָ��ѡ����Ϊ���� lcddata=date;//�������� delay_1ms(1); en=1; //en�øߵ�ƽ��Ϊ�����½������� delay_1ms(1); en=0; //en�ɸ߱�ͣ������½��أ�Һ��ִ������ } /************ д�ַ����ݺ��� ***************** //���ܣ���lcd1602ָ��λ������ʾ�ַ��� //���� //p: ָ�����ʾ����ָ�� //x: X���� //y: Y���� //************ *********** *****************/ void WriteLcd1602_String(char x,char y,char *p) { char i=0; if(y == 0) { Write_1602_com(0x80 + x); } else { Write_1602_com(0xC0 + x); } while(*p != 0) { Write_1602_date(*p); p++; } } char data String_Buff[16]={0}; void L1602_printf(char x,char y,char *format, ...) { va_list ap; va_start(ap,format); vsprintf(String_Buff,format,ap); va_end(ap); WriteLcd1602_String(x,y,String_Buff); // OLED_ShowString(x,y,(u8*)LcdBuff,16); //WriteLcd128_String(x,y,LcdBuff); } //***Һ����ʼ������****// void lcd1602_init() { Write_1602_com(0x38);//����Һ������ģʽ����˼��16*2����ʾ��5*7����8λ���� delay_1ms(1); Write_1602_com(0x0c);//����ʾ����ʾ��� delay_1ms(1); Write_1602_com(0x06);//�������ƶ�������Զ����� delay_1ms(1); Write_1602_com(0x01);//����ʾ delay_1ms(1); Write_1602_com(0x80); delay_1ms(1); } void LCD1602_Write_address(unsigned char x,unsigned char y) { x&=0x0f; //�е�ַ������0-15�� y&=0x01; //�е�ַ������0-1�� if(y==0) //����ǵ�һ�� Write_1602_com(x|0x80); //���е�ַд�� else //����ǵڶ��� Write_1602_com((x+0x40)|0x80); //���е�ַд�� } void LCD1602_Disp(unsigned char x,unsigned char y,unsigned char buf) { LCD1602_Write_address(x,y); //�Ƚ���ַ��Ϣд�� Write_1602_date(buf); //��д��Ҫ��ʾ������ }