C51 COMPILER V9.54 DRIVE_1602 02/17/2022 16:20:57 PAGE 1 C51 COMPILER V9.54, COMPILATION OF MODULE DRIVE_1602 OBJECT MODULE PLACED IN .\Objects\drive_1602.obj COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE drive_1602.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listing -s\drive_1602.lst) TABS(2) OBJECT(.\Objects\drive_1602.obj) line level source 1 #include "drive_1602.h" 2 3 #include <stdarg.h> // ��ͷ�ļ� 4 #include "stdio.h" 5 #include "string.h" 6 7 #define lcddata P1 8 9 sbit rs=P2^7; 10 sbit en=P2^6; 11 12 void delay_1ms(unsigned int xms)//��ʱ�������вκ��� 13 { 14 1 unsigned char i, j; 15 1 while(xms--) 16 1 { 17 2 _nop_(); 18 2 _nop_(); 19 2 _nop_(); 20 2 i = 11; 21 2 j = 190; 22 2 do 23 2 { 24 3 while (--j); 25 3 } while (--i); 26 2 } 27 1 } 28 //****Һ��д��ָ���****// 29 void Write_1602_com(unsigned char com) 30 { 31 1 // rw=0; 32 1 rs=0;//����/ָ��ѡ����Ϊָ�� 33 1 lcddata=com;//�������� 34 1 delay_1ms(1); 35 1 en=1;//����ʹ�ܶˣ�Ϊ������Ч���½������� 36 1 delay_1ms(1); 37 1 en=0;//en�ɸ߱�ͣ������½��أ�Һ��ִ������ 38 1 } 39 40 //***Һ��д�����ݺ���****// 41 void Write_1602_date(unsigned char date) 42 { 43 1 // rw=0; 44 1 rs=1;//����/ָ��ѡ����Ϊ���� 45 1 lcddata=date;//�������� 46 1 delay_1ms(1); 47 1 en=1; //en�øߵ�ƽ��Ϊ�����½������� 48 1 delay_1ms(1); 49 1 en=0; //en�ɸ߱�ͣ������½��أ�Һ��ִ������ 50 1 } 51 52 /************ д�ַ����ݺ��� ***************** 53 //���ܣ���lcd1602ָ��λ������ʾ�ַ��� 54 //���� C51 COMPILER V9.54 DRIVE_1602 02/17/2022 16:20:57 PAGE 2 55 //p: ָ�����ʾ����ָ�� 56 //x: X���� 57 //y: Y���� 58 //************ *********** *****************/ 59 void WriteLcd1602_String(char x,char y,char *p) 60 { 61 1 char i=0; 62 1 if(y == 0) 63 1 { 64 2 Write_1602_com(0x80 + x); 65 2 } 66 1 else 67 1 { 68 2 Write_1602_com(0xC0 + x); 69 2 } 70 1 while(*p != 0) 71 1 { 72 2 Write_1602_date(*p); 73 2 p++; 74 2 } 75 1 } 76 77 78 //***Һ����ʼ������****// 79 void lcd1602_init() 80 { 81 1 Write_1602_com(0x38);//����Һ������ģʽ����˼��16*2����ʾ��5*7����8λ���� 82 1 delay_1ms(1); 83 1 Write_1602_com(0x0c);//����ʾ����ʾ��� 84 1 delay_1ms(1); 85 1 Write_1602_com(0x06);//�������ƶ�������Զ����� 86 1 delay_1ms(1); 87 1 Write_1602_com(0x01);//����ʾ 88 1 delay_1ms(1); 89 1 Write_1602_com(0x80); 90 1 delay_1ms(1); 91 1 92 1 } 93 void LCD1602_Write_address(unsigned char x,unsigned char y) 94 { 95 1 x&=0x0f; //�е�ַ������0-15�� 96 1 y&=0x01; //�е�ַ������0-1�� 97 1 if(y==0) //����ǵ�һ�� 98 1 Write_1602_com(x|0x80); //���е�ַд�� 99 1 else //����ǵڶ��� 100 1 Write_1602_com((x+0x40)|0x80); //���е�ַд�� 101 1 } 102 void LCD1602_Disp(unsigned char x,unsigned char y,unsigned char buf) 103 { 104 1 LCD1602_Write_address(x,y); //�Ƚ���ַ��Ϣд�� 105 1 Write_1602_date(buf); //��д��Ҫ��ʾ������ 106 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 172 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 2 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- C51 COMPILER V9.54 DRIVE_1602 02/17/2022 16:20:57 PAGE 3 END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)