⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1602.lst

📁 基于AT89S52的RLC测试仪
💻 LST
字号:
C51 COMPILER V6.12  1602                                                                   06/28/2007 13:08:18 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 1602
OBJECT MODULE PLACED IN .\1602.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE .\1602.C DEBUG OBJECTEXTEND

stmt level    source

   1          /***************************************
   2          LCD OCMC2X16A驱动模块
   3          ****************************************/
   4          #include<reg52.h>
   5          #define uchar unsigned char
   6          
   7          #define LCD
   8          #define LCD_DB P1 	//LCD数据线pin7~14
   9          sbit LCD_WR=P3^1;	//读写控制线pin5
  10          sbit LCD_RS=P3^2;	//数据指令控制线pin4
  11          sbit LCD_E=P3^0;	//使能端pin6
  12          //查忙函数
  13          void busy(void)
  14          {	
  15   1      	LCD_RS=0;
  16   1      	LCD_WR=1;
  17   1      	LCD_E=1;
  18   1      	LCD_E=1;
  19   1      	LCD_E=1;
  20   1      #ifdef LCD
  21   1      	while(LCD_DB&0x80);
  22   1      #endif
  23   1      	LCD_E=0;
  24   1      }
  25          //读AC函数
  26          /*uchar rd_ac(void)
  27          {	
  28          	uchar ac;
  29          	LCD_RS=0;
  30          	LCD_WR=1;
  31          	LCD_E=1;
  32          	LCD_E=1;
  33          	LCD_E=1;
  34          	ac=LCD_DB&0x7f;
  35          	LCD_E=0;
  36          	return ac;
  37          }*/
  38          //写指令函数
  39          void w_com(char com)
  40          {   
  41   1      	busy();
  42   1      	LCD_RS=0;
  43   1      	LCD_WR=0;
  44   1      	LCD_DB=com;
  45   1      	LCD_E=1;
  46   1      	LCD_E=0;
  47   1      	LCD_DB=0XFF;
  48   1      }
  49          //写数据函数
  50          void w_dat(uchar dat)
  51          { 	busy();
  52   1      	LCD_RS=1;
  53   1      	LCD_WR=0;
  54   1      	LCD_DB=dat;
  55   1      	LCD_E=1;
C51 COMPILER V6.12  1602                                                                   06/28/2007 13:08:18 PAGE 2   

  56   1      	LCD_E=0;
  57   1      	LCD_DB=0XFF;
  58   1      }
  59          //定位函数
  60          void LCD_gotoxy(char x,char y)
  61          {	uchar code line[]={0x80,0xc0};	//行首地址
  62   1      	w_com(line[x]+y);
  63   1      }
  64          //显示一个字符串
  65          void LCD_puts(char *s)
  66          {
  67   1      	while(*s!='\0')
  68   1      		{
  69   2      		w_dat(*s++);
  70   2      		}
  71   1      }
  72          //自定义字符
  73          void def_char(void)
  74          {	uchar code ch[]=
  75   1      	{
  76   1      	0x00,0x0E,0x11,0x11,0x11,0x0A,0x1B,0x00,		//1.欧姆符号
  77   1      	0x00,0x04,0x04,0x1F,0x04,0x04,0x1F,0x00			//2.正负号
  78   1      	};
  79   1      	uchar i;
  80   1      	w_com(0x48);		//设置CGRAM地址
  81   1      	for(i=0;i<sizeof(ch);i++)
  82   1      		{
  83   2      		w_dat(ch[i]);
  84   2      		}
  85   1      	w_com(0x80);
  86   1      }
  87          //初始化函数
  88          void LCD_init(void)
  89          {
  90   1       	unsigned i;
  91   1      	for(i=0;i<2000;i++);
  92   1      	w_com(0x38);	//8位数据总线,2行显示模式,5*7点阵
  93   1      	def_char();		//自定义字符
  94   1      	w_com(0x06);	//AC自动加1,显示不移位
  95   1      	w_com(0x0c);	//开显示,不显示光标
  96   1      	w_com(0x01);
  97   1      	LCD_gotoxy(0,2);
  98   1      	LCD_puts("OCM2X16A LCD.");	 
  99   1      	for(i=0;i<50000;i++);
 100   1      	w_com(0x01);	//清屏
 101   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    235    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -