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

📄 lcd_1621.lst

📁 电子称重的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   LCD_1621                                                              05/04/2008 21:35:46 PAGE 1   


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

line level    source

   1          #include<head.h>
   2          #include "LCD_1621.h"
   3          #define  lcd_writerising() LWR=LOW; LWR=HIGH;
   4          void lcd_command(bit temp);
   5          void lcd_writecommand(unsigned char commandcode);
   6          void lcd_writedata(Uchar seg,Uchar form,bit mode);
   7          
   8          /**************************************************************************
   9          *      字模表格定义
  10          *          code Uchar form_buf_tab:LCDBUF0-LCDBUF5
  11          *          code Uchar form_lcd_tab:LCDF0-LCDF2
  12          **************************************************************************/
  13          Uchar lcd_buf[3]={0,0,0};
  14          Uchar lcd_nbuf[6]={0,0,0,0,0,0};
  15          code uchar lcd_j[11]={0x00,0x08,0x0c,0x0e,0x0f,0x8f,0xcf,0xef,0xff,0xff,0xff};
  16          code uchar lcd_num[]={CH0,CH1,CH2,CH3,CH4,           //0.1.2.3.4   4
  17                                   CH5,CH6,CH7,CH8,CH9,           //5.6.7.8.9   9
  18                                                           CHA,CHB,CHC,   //    A.B.C   C
  19                                   CHD,CHE,CHF,CHG,CHH,           //D,E,F,G,H   11
  20                                   CHI,CHJ,CHK,CHL,CHM,           //I,J,K,L,M   16
  21                                   CHN,CHO,CHP,CHQ,CHR,           //N,O,P,Q,R   1b
  22                                   CHS,CHT,CHU,CHV,CHW,           //S,T,U,V,W 0x20
  23                                   CHX,CHY,CHZ,CHPLUS,CHBLANK,    //X,Y,Z,-,0x26
  24                                   };
  25          code uchar lcd_char[][2]={
  26                                    {0x85,0x61},{0x00,0x60},{0xa4,0x25},{0xa0,0x65},//0.1.2.3
  27                                        {0x21,0x64},{0xa1,0x45},{0xa5,0x45},{0x00,0x61},//4.5.6.7
  28                                        {0xa5,0x65},{0xa1,0x65},//8.9.
  29                                    {0x08,0x66},{0xa5,0x47},{0x85,0x01},{0xa4,0x64},//A.B.C.D
  30                                        {0xa5,0x05},{0x25,0x05},{0x85,0x45},{0x25,0x64},//E.F.G.H
  31                                        {0x50,0x00},{0x80,0x60},{0x25,0x0a},{0x85,0x00},//I.J.K.L //{0x50,0x0a}
  32                                        {0x07,0x62},{0x07,0x68},{0x85,0x61},{0x25,0x25},//M.N.O.P
  33                                        {0x87,0x69},{0x25,0x0b},{0xa1,0x45},{0x50,0x01},//Q.R.S.T
  34                                        {0x85,0x60},{0x0d,0x02},{0x0d,0x68},{0x05,0x0a},//U.V.W.X
  35                                        {0x42,0x02},{0x88,0x03},                        //Y.Z. . 26个
  36                                        {0x00,0x00},{0xa5,0x44},{0xa4,0x04},{0xa4,0x64},//a,b,c,d
  37                                        {0x00,0x00},{0x00,0x00},{0xa1,0x65},{0x00,0x00},//e,f,g,h
  38                                        {0x00,0x00},{0x00,0x00},{0x00,0x00},{0x85,0x00},//i,j,k,l
  39                                        {0x00,0x00},{0x00,0x00},{0xa4,0x44},{0x00,0x00},//m,n,o,p
  40                                        {0x00,0x00},{0x24,0x04},{0x00,0x00},{0xa5,0x04},//q,r,s,t
  41                                        {0x00,0x00},{0x00,0x00},{0x0c,0x48},{0x00,0x00},//u,v,w,x
  42                                        {0x00,0x00},{0xa8,0x07},{0x08,0x02},{0x00,0x00}//y,z
  43                                       };
  44          code unsigned char voltt[]={0x20,0x21,0x23,0x27,0x2f,0x3f};
  45          /**************************************************************************
  46          *      函数原型: void lcd_setback(BOOL back)
  47          *      功    能: 打开或关闭背光灯
  48          **************************************************************************/
  49          void lcd_setback(BOOL back)
  50          {
  51   1       LBL=back;
  52   1      }
  53          #if 0
              void lcd_set(bit onoff)
              {
C51 COMPILER V8.02   LCD_1621                                                              05/04/2008 21:35:46 PAGE 2   

               lcd_writecommand(onoff?0x03:0x2);
              }
              #endif
  59          /**************************************************************************
  60          *      函数原型: void beep_set(BOOL beep)
  61          *      功    能: 打开或关闭蜂鸣器
  62          **************************************************************************/
  63          void beep_set(BOOL beep)
  64          {
  65   1       lcd_writecommand(beep?0x9:0x8);
  66   1      }
  67          #if 0
              /**************************************************************************
              *      函数原型: BOOL lcd_writevolt(char volt)
              *      功    能: 写入电压显示
              *      入口:需写入的数字大小
              *      出口:返回是否写入成功
              **************************************************************************/
              BOOL lcd_writevolt(char volt)
              {
                      if(volt<0)
                      {
                              lcd_writedata(30,0,1);
                      }
                      else
                      {
                      volt%=6;
                      lcd_writedata(30,voltt[volt],1);
                      }
                      return 1;
              }
              #endif
  88          /**************************************************************************
  89          *      函数原型: void lcd_flagset(Uchar flagbit,BOOL flag)
  90          *      功    能: 设置符号位
  91          **************************************************************************/
  92          void Dis_SetFlag(Uchar flagbit,BOOL flag)
  93          {
  94   1       switch(flagbit)
  95   1       {
  96   2        case  DIS_MINUS:
  97   2              if(flag)lcd_buf[2]|=0x20;
  98   2              else  lcd_buf[2]&=0xdf;
  99   2              break;
 100   2        case  DIS_ZERO:
 101   2              if(flag)lcd_buf[2]|=0x10;
 102   2              else  lcd_buf[2]&=0xef;
 103   2              break;
 104   2        case  DIS_STA:
 105   2              if(flag)lcd_buf[2]|=0x40;
 106   2              else  lcd_buf[2]&=0xbf;
 107   2              break;
 108   2        case  DIS_TARE:
 109   2              if(flag)lcd_buf[1]|=0x40;
 110   2              else  lcd_buf[1]&=0xbf;
 111   2              break;
 112   2        case  DIS_COLON1:
 113   2              if(flag)lcd_buf[1]|=0x02;
 114   2              else    lcd_buf[1]&=0xfd;
 115   2              break;
 116   2        case  DIS_COLON2:
 117   2              if(flag)lcd_buf[1]|=0x04;
C51 COMPILER V8.02   LCD_1621                                                              05/04/2008 21:35:46 PAGE 3   

 118   2              else    lcd_buf[1]&=0xfb;
 119   2              break;
 120   2        case DIS_HOLD:
 121   2             if(flag)lcd_buf[1]|=0x20;
 122   2             else  lcd_buf[1]&=0xdf;
 123   2              break;
 124   2       }
 125   1       lcd_writedata(18,lcd_buf[1],0);
 126   1       lcd_writedata(16,lcd_buf[1]>>4,0);
 127   1       lcd_writedata(17,lcd_buf[2]>>4,0);
 128   1       lcd_writedata(29,lcd_buf[2],0);
 129   1      }
 130          /**************************************************************************
 131          *      函数原型: BOOL lcd_all()
 132          *      功    能:
 133          *      入口:
 134          *      出口:返回是否写入成功
 135          **************************************************************************/
 136           BOOL lcd_all()
 137           {
 138   1        char i=0;
 139   1        for(i=0;i<32;i++)
 140   1        {
 141   2         lcd_writedata(i,0xff,0);
 142   2        }
 143   1        return 1;
 144   1       }
 145           /**************************************************************************
 146          *      函数原型: BOOL lcd_clr()
 147          *      功    能:
 148          *      入口:
 149          *      出口:返回是否写入成功
 150          **************************************************************************/
 151            BOOL lcd_clr()
 152           {
 153   1        char i=0;
 154   1        for(i=0;i<32;i++)
 155   1        {
 156   2         lcd_writedata(i,0x0,0);
 157   2        }
 158   1        lcd_buf[0]=0;
 159   1        lcd_buf[1]=0;
 160   1        lcd_buf[2]=0;
 161   1        return 1;
 162   1       }
 163          /**************************************************************************
 164          *      函数原型: BOOL lcd_writej(char j)
 165          *      功    能: 写入比例尺
 166          *      入口:需写入的数字大小
 167          *      出口:返回是否写入成功
 168          **************************************************************************/
 169          BOOL lcd_writej(char j)
 170          {
 171   1       lcd_buf[0]=lcd_j[j];
 172   1       lcd_buf[1]|=0x08;
 173   1       if(j>8)lcd_buf[1]|=0x01;
 174   1       else lcd_buf[1]&=0xfe;
 175   1       if(j>9)lcd_buf[1]|=0x10;
 176   1       else lcd_buf[1]&=0xef;
 177   1       lcd_writedata(19,lcd_buf[0],1);

⌨️ 快捷键说明

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