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

📄 z240128.lst

📁 用8051驱动240*128液晶的C51程序
💻 LST
字号:
C51 COMPILER V8.02   Z240128                                                               07/21/2007 17:31:24 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE Z240128
OBJECT MODULE PLACED IN Z240128.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Z240128.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          **长沙太阳人电子有限公司SMG240128总线接口参考程序(T6963C)
   3          **  P0--DB  /WR--P3.6  /RD--P3.7   C/D--P2.0   /CE--P2.1
   4          ** /RET--5V  
   5          **电话:  0731-4167806,4167808
   6          **E-mail: www@sunman.cn
   7          **Create by :谭超  E-mail: tanchao_1@126.com
   8          **最后修改 :  2005年4月22日
   9          **版本说明: 带显示矩形框、线、点子程序。
  10          */
  11          
  12          //[字符图象输出文件=hzk.c]
  13          //[字体名称=宋体]
  14          //[字体大小=16]
  15          //[字节方向=水平]
  16          //[字位顺序=从高到低]
  17          
  18          #include <reg51.h>
  19          #include <math.h>
  20          #include <hzk.c>
  21          
  22          unsigned char xdata Lcd_Cmd_Reg _at_ 0xfdff;    // C/D-P2.0   CE-P2.1  p2.0=1 p2.1=0
  23          unsigned char xdata Lcd_Data_Reg _at_ 0xfcff;   // C/D-P2.0   CE-P2.1  p2.0=0 p2.1=0
  24          unsigned char data Lcd_CurrentX,Lcd_CurrentY,Lcd_Mask;
  25          unsigned char code LeftMask[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01};
  26          unsigned char code RightMask[]={0xff,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
  27          
  28          #define LCD_LEFT 0
  29          #define LCD_TOP  0
  30          #define LCD_RIGHT 239
  31          #define LCD_BOTTOM 127
  32          
  33          //延时子程序
  34          void delay(unsigned int t)
  35          {  unsigned int i,j;
  36   1         for(i=0;i<t;i++)
  37   1            for(j=0;j<10;j++)
  38   1               ;
  39   1      }
  40          
  41          //写无参数指令代码
  42          void lcdwc(unsigned char cmdcode)
  43          {  while((Lcd_Cmd_Reg&0x3)!=0x3);  //当Lcd_Cmd_Reg低两位不同时为1
  44   1            Lcd_Cmd_Reg=cmdcode;
  45   1      }
  46          
  47          //写双参数指令代码
  48          void lcdwc3(unsigned char cmdcode,unsigned char cmddata,unsigned char cmddata2)
  49          {  while((Lcd_Cmd_Reg&0x3)!=0x3);
  50   1            Lcd_Data_Reg=cmddata;
  51   1         while((Lcd_Cmd_Reg&0x3)!=0x3);
  52   1            Lcd_Data_Reg=cmddata2;
  53   1         while((Lcd_Cmd_Reg&0x3)!=0x3);
  54   1            Lcd_Cmd_Reg=cmdcode;
  55   1      }
C51 COMPILER V8.02   Z240128                                                               07/21/2007 17:31:24 PAGE 2   

  56          
  57          //写数据
  58          void lcdwd(unsigned char dispdata)
  59          {  while((Lcd_Cmd_Reg&0x3)!=0x3);
  60   1            Lcd_Data_Reg=dispdata;
  61   1         while((Lcd_Cmd_Reg&0x3)!=0x3);
  62   1            Lcd_Cmd_Reg=0xc0;
  63   1      }
  64          
  65          //读数据
  66          unsigned char lcdrdata(void)
  67          {  while((Lcd_Cmd_Reg&0x3)!=0x3);
  68   1            Lcd_Cmd_Reg=0xc5;
  69   1         while((Lcd_Cmd_Reg&0x3)!=0x3) ;
  70   1            return Lcd_Data_Reg;
  71   1      }
  72          
  73          //内部数据地址指针定位
  74          void lcdpos(void)
  75          {  unsigned int CurrentAddress;
  76   1         CurrentAddress=Lcd_CurrentY*30;
  77   1         CurrentAddress+=Lcd_CurrentX/8;
  78   1         lcdwc3(0x24,CurrentAddress&0xff,CurrentAddress/256);
  79   1      }
  80          
  81          //读数据
  82          unsigned char lcdrd(void)
  83          {  lcdpos();
  84   1         return lcdrdata();
  85   1      }
  86          
  87          //当前坐标移动到下一个点
  88          void lcdcursornextbyte(void)
  89          {  Lcd_CurrentX+=8;
  90   1         if(Lcd_CurrentX>LCD_RIGHT)
  91   1         {  Lcd_CurrentX=LCD_LEFT;
  92   2            Lcd_CurrentY++;
  93   2            if(Lcd_CurrentY>LCD_BOTTOM)
  94   2               Lcd_CurrentY=LCD_TOP;
  95   2         }
  96   1      }
  97          
  98          void displaybyte(unsigned char dispdata)
  99          {  lcdpos();
 100   1         if(Lcd_Mask==0xff)
 101   1            lcdwd(dispdata);
 102   1         else
 103   1         {  unsigned char d=lcdrd();
 104   2            d&=(~Lcd_Mask);
 105   2            d|=(dispdata&Lcd_Mask);
 106   2            lcdwd(d);
 107   2         }
 108   1         lcdcursornextbyte();
 109   1      }
 110          
 111          //整屏显示
 112          void lcdfill(unsigned char FillData)
 113          {  Lcd_Mask=0xff;
 114   1         for(Lcd_CurrentX=LCD_LEFT,Lcd_CurrentY=LCD_TOP;1;)
 115   1         {  displaybyte(FillData);
 116   2            if((Lcd_CurrentX==LCD_LEFT)&&(Lcd_CurrentY==LCD_TOP))
 117   2               break;
C51 COMPILER V8.02   Z240128                                                               07/21/2007 17:31:24 PAGE 3   

 118   2         }
 119   1      }
 120          
 121          //初始化
 122          void lcdreset()
 123          {  lcdwc(0x80);          //设置显示模式为逻辑“或”模式
 124   1         lcdwc(0x98);          //开显示
 125   1         lcdwc3(0x42,0,0);     //设置图形显示区首地址
 126   1         lcdwc3(0x43,30,0);    //设置图形显示区宽度
 127   1      }
 128          
 129          #include <display8.c>
 130          #include <point8.c>
 131          
 132          
 133          main()
 134          {  while(1)
 135   1         {  lcdreset();      //初始化
 136   2            lcdfill(0xff);   //整屏显示
 137   2            delay(5000);
 138   2            lcdfill(0);    //清屏
 139   2            delay(5000);
 140   2            put_str_xy(0,0,"专业人才。。。HELLO");
 141   2            delay(5000);
 142   2         }
 143   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1623    ----
   CONSTANT SIZE    =   2984    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      29
   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 + -