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

📄 s1d1335.lst

📁 0834实现数据的采集
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.00  S1D1335                                                                05/22/2007 16:53:19 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE S1D1335
OBJECT MODULE PLACED IN S1D1335.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE S1D1335.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /* 320240简单演示程序(8080时序)
   2          硬件连线方式(总线式)
   3          LCM -------------- CPU
   4          CS  -------------- P2.7  A15
   5          A0  -------------- P2.6  A8
   6          WR  -------------- WR
   7          RD  -------------- RD
   8          DB0 ~ 7----------- P0.0 ~ P0.7
   9          RST脚采用外部硬件RC电路复位---RST不可少*/
  10          //编译环境    Keil V7.0
  11          #include <reg52.h>
  12          #include <stdlib.h>
  13          #include <intrins.h>
  14          #include <stdio.h>
  15          #include <zk.h>
  16          sbit  CS_LCD=P2^6;
  17          sbit  A0_LCD=P2^7;
  18          sbit  WR_LCD=P3^6;
  19          sbit  RD_LCD=P3^7;
  20          sbit   WDT  =P1^5;
  21          char xdata LcmCmdPort _at_ 0x8000;              // P2.7 --- CS  P2.0 --- A0
  22          char xdata LcmWdataPort _at_ 0x0000;
  23          #define uchar unsigned char
  24          #define uchar unsigned char
  25          #define Uint unsigned int
  26          #define uint unsigned int
  27          #define ulong unsigned long
  28          #define H_BYTE 40 //横向一行的字节数,如128×128的液晶,横向字节数为16
  29          #define LcmRdataPort LcmCmdPort
  30          #define LcmStatusPort LcmWdataPort
  31          #define SystemSet       0x40
  32          uchar code ParaSysTable8[]= {
  33                                          0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 // P1-P8参数
  34                          };
  35          #define Scroll  0x44
  36          #define BasePart1       0x00
  37          #define BasePart2       0x40
  38          #define BasePart3       0x80
  39          #define BasePart4       0x00
  40                          uchar code ParaScrTableA[]= {
  41                                          0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4
  42                          };
  43          #define SleepIn         0x53
  44          #define DispOn          0x59
  45          #define DispOff         0x58
  46          #define Ovlay           0x5b
  47          #define HdotScr         0x5a
  48          #define CsrForm         0x5d
  49          #define CgramAdr        0x5c
  50          #define CsrDirR         0x4c
  51          #define CsrDirL         0x4d
  52          #define CsrDirU         0x4e
  53          #define CsrDirD         0x4f
  54          #define CsrW            0x46
  55          #define CsrR            0x47
C51 COMPILER V7.00  S1D1335                                                                05/22/2007 16:53:19 PAGE 2   

  56          #define mWrite          0x42
  57          #define mRead           0x43
  58          bit     wAttrib ;
  59          #define Busy            0x40
  60          #define paraP9          0x28
  61          void LcmInition( void );
  62          void WriteData( uchar dataW );
  63          uchar ReadData( void );
  64          void WriteCommand( uchar CommandByte );
  65          void Delay( Uint MS);
  66          void LcmClear( void );
  67          void Locatexy(uchar x,uchar y);
  68          void Displayspeed(uchar col,uchar row,uchar hzcode);//显示流速、预输液量,显示24*16点阵
  69          void Displaytime(uchar col,uchar row,uchar hzcode);//显示24*14点阵
  70          void DisplayTotal(uchar col,uchar row,uchar hzcode);//显示24*18点阵
  71          void DisplayCanShu(uchar col,uchar row,uchar hzcode); //显示参数调节杆
  72          void Displayyedichar(uchar col,uchar row,uchar hzcode);//显示点滴计数值
  73          void Displayonebmp3(uchar col,uchar row,uchar x,uchar y,uchar *adr);
  74          void DisplayClear(uchar col,uchar row,uchar x,uchar y);
  75          
  76          void DisplayOn(uchar x1,uchar y1,uchar x2,uchar y2);
  77          void extbmp(uchar x0,uchar y0,uchar *bmp);
  78          void Displayonebmp(uchar x,uchar y,uchar *adr);
  79          void LcdDrawPoint(int x,int y,bit Point);
  80          //========向液晶写入命令===================
  81          void WriteCommand( uchar CommandByte )
  82          {
  83   1           /*  EA=0;
  84   1            CS_LCD=0;
  85   1             A0_LCD=1;
  86   1             RD_LCD=1;
  87   1             WR_LCD=0;
  88   1             P0=CommandByte;
  89   1             WR_LCD=1;
  90   1             EA=1; */
  91   1           LcmCmdPort = CommandByte;
  92   1      }
  93          //=========向液晶屏写入数据================
  94          void WriteData( uchar dataW )
  95          {
  96   1      
  97   1           LcmWdataPort = dataW;
  98   1           /*
  99   1             EA=0;
 100   1             CS_LCD=0;
 101   1             A0_LCD=0;
 102   1             RD_LCD=1;
 103   1              WR_LCD=0;
 104   1              P0=dataW;
 105   1              WR_LCD=1;
 106   1              CS_LCD=1;
 107   1             EA=1; */
 108   1      }
 109          //=========读取当前济屏数据=================
 110          uchar ReadData( void )
 111          {
 112   1              uchar Rdata;
 113   1              Rdata = LcmCmdPort;
 114   1              return Rdata;
 115   1      }
 116          //========写入当前地址======================*/
 117          void Locatexy(uchar x,uchar y)
C51 COMPILER V7.00  S1D1335                                                                05/22/2007 16:53:19 PAGE 3   

 118          {
 119   1              Uint temp;
 120   1              temp = (Uint)y*paraP9+x;
 121   1              WriteCommand( CsrW );
 122   1              WriteData( (uchar)(temp & 0xff) );
 123   1              WriteData( (uchar)(temp /256 ) );
 124   1      }
 125          
 126          //=====液晶初始化======================
 127          void LcmInition( void )
 128          {
 129   1      
 130   1              uchar i;
 131   1              Delay(30);
 132   1              WriteCommand( SystemSet );
 133   1              for (i=0;i<8;i++) {
 134   2                      WriteData( ParaSysTable8[i] );
 135   2              }
 136   1      
 137   1              WriteCommand( Scroll );
 138   1              for (i=0;i<10;i++) {
 139   2                      WriteData( ParaScrTableA[i] );
 140   2              }
 141   1      
 142   1              WriteCommand( HdotScr );
 143   1              WriteData( 0 );
 144   1              WriteCommand( Ovlay );
 145   1              WriteData( 4 );
 146   1              WriteCommand( DispOn );
 147   1              WriteData( 0x54 );
 148   1          WriteCommand(DispOff);
 149   1          LcmClear();
 150   1              WriteCommand(DispOn);
 151   1              WriteCommand( Ovlay );
 152   1              WriteData( 0x0C );
 153   1      }
 154          /********************************************************************
 155          * 名称: void DisplayClear(uchar col,uchar row,uchar x,uchar y)
 156          * 功能: col为要擦除的行数,row为要擦除的列(最多240列)x,y为要擦除的起始地址
 157          * 调用:
 158          * 输入:
 159          * 说明:
 160          * 返回值:无
 161          ***********************************************************************/
 162          void DisplayClear(uchar col,uchar row,uchar x,uchar y)
 163          {
 164   1              uchar i,j;
 165   1      
 166   1              for(i=0;i<row;i++)
 167   1              {
 168   2                      Locatexy(x,y);
 169   2                      WriteCommand(mWrite);
 170   2                      for(j=0;j<col;j++)
 171   2                      {
 172   3                              WriteData(0);
 173   3                      }
 174   2                      y++;
 175   2              }
 176   1      }
 177          /********************************************************************
 178          * 名称: void DisplayOn(uchar col,uchar row,uchar x,uchar y)
 179          * 功能: 选定区显示黑屏
C51 COMPILER V7.00  S1D1335                                                                05/22/2007 16:53:19 PAGE 4   

 180          * 调用:
 181          * 输入: col,row,x,y.
 182          * 说明: col为要写入的行数(一行8位),row为要擦除的列(最多240列)x,y为要擦除的起始地址
 183          * 返回值:无
 184          ***********************************************************************/
 185          void DisplayOn(uchar x1,uchar y1,uchar x2,uchar y2)
 186          {
 187   1              uchar i,j,row,col;
 188   1          row=y2-y1;
 189   1              col=x2-x1;
 190   1              for(i=0;i<row;i++)
 191   1              {
 192   2                      Locatexy(x1,y1);
 193   2                      WriteCommand(mWrite);
 194   2                      for(j=0;j<col;j++)
 195   2                      {
 196   3                              WriteData(0xff);
 197   3                      }
 198   2                      y1++;
 199   2              }
 200   1      }
 201          /********************************************************************
 202          * 名称: void Displayonebmp(uchar col,uchar row,uchar x,uchar y,uchar *adr)
 203          * 功能: 显示任意点阵图标
 204          * 调用:
 205          * 输入:
 206          * 说明:
 207          * 返回值:无
 208          ***********************************************************************/
 209          void Displayonebmp3(uchar col,uchar row,uchar x,uchar y,uchar *adr)
 210          {
 211   1              uchar i,j;
 212   1              uchar *p;
 213   1          p=adr;
 214   1              for(i=0;i<row;i++)
 215   1              {
 216   2                      Locatexy(x,y);
 217   2                      WriteCommand(mWrite);
 218   2                      for(j=0;j<col;j++)
 219   2                      {
 220   3                              WriteData(*p);
 221   3                              p++;
 222   3                      }
 223   2                      y++;
 224   2              }
 225   1      }
 226          
 227          
 228          /********************************************************************
 229          * 名称: void Displayyedichar(uchar col,uchar row,uchar hzcode)
 230          * 功能: 显示12*16点阵数字
 231          * 调用:
 232          * 输入:
 233          * 说明: 图标位置HZcode
 234          * 返回值:
 235          ***********************************************************************/
 236          void Displayyedichar(uchar col,uchar row,uchar hzcode)
 237          {
 238   1              uchar i,j;
 239   1              Uint  x;
 240   1              x = 24*hzcode;
 241   1              WriteCommand( CsrDirR );
C51 COMPILER V7.00  S1D1335                                                                05/22/2007 16:53:19 PAGE 5   

 242   1              for(i=0;i<12;i++)
 243   1              {
 244   2                      Locatexy(col,row);
 245   2                      WriteCommand(mWrite);
 246   2                      for(j=0;j<2;j++)
 247   2                      {
 248   3                              WriteData(yedichar[x]);
 249   3                              x++;
 250   3                      }
 251   2                      row++;
 252   2              }
 253   1      
 254   1      }
 255          
 256          /********************************************************************
 257          * 名称: DisplayCanShu(uchar col,uchar row,uchar hzcode)
 258          * 功能: 显示104*17点阵图标
 259          * 调用:
 260          * 输入:
 261          * 说明:
 262          * 返回值:无
 263          ***********************************************************************/
 264          void DisplayCanShu(uchar col,uchar row,uchar hzcode)
 265          {
 266   1              uchar i,j;
 267   1              Uint  x;
 268   1              x = 117*hzcode;
 269   1              WriteCommand( CsrDirR );
 270   1              for(i=0;i<9;i++)
 271   1              {
 272   2                      Locatexy(col,row);
 273   2                      WriteCommand(mWrite);
 274   2                      for(j=0;j<13;j++)
 275   2                      {
 276   3                              WriteData(canshuico[x]);
 277   3                              x++;
 278   3                      }
 279   2                      row++;
 280   2              }
 281   1      }
 282          
 283          

⌨️ 快捷键说明

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