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

📄 pcf8576d.lst

📁 用NXP公司P89LPC9401单片机开发液晶显示,包括开发资料,各功能驱动程序.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   PCF8576D                                                              11/09/2004 16:39:45 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PCF8576D
OBJECT MODULE PLACED IN pcf8576d.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE pcf8576d.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //***********************************************************************
   2          //FILE: pcf8576d.c
   3          //功能: 不同模式下,LCD的显示
   4          //***********************************************************************
   5          #include"main.h"
   6          #include"time.h"
   7          #include"HI2C_C51.H"
   8          #include"temperature.h"
   9          #include"pcf8576d.h"
  10          #include"key.h"
  11          #include"ctime.h"
  12          //***********************************************************************
  13          uchar code DecodeTab[10]=                                               //LCD上的8段译码表
  14          {       
  15                  0xeb,0x60,0xc7,0xe5,0x6c,                                       //"0"到"4"
  16                  0xad,0xaf,0xe0,0xef,0xed                                        //"5"到"9"
  17          };
  18          //***********************************************************************
  19          uchar DispBuff[6]={0,0,0,0,0,0};                                //显示缓冲区
  20          //***********************************************************************
  21          void  PCF8576Disp()                                                             //显示函数
  22          {
  23   1              ISendByte(PCF8576,0x60);                                        //选中PCF8576D
  24   1              ISendStr(PCF8576,0,DispBuff,6);                         //将缓冲区的数据发送到8576
  25   1      }
  26          //***********************************************************************
  27          void PCF8576Clock(bit dot)                                              //时间显示函数
  28          {                                                                                               //dot参数决定是否同时显示":"
  29   1              DispBuff[0]=DecodeTab[Hour/10];                         //将小时译码写到显示缓冲
  30   1              DispBuff[1]=DecodeTab[Hour%10];
  31   1              DispBuff[2]=DecodeTab[Minute/10];                       //将分钟译码写到显示缓冲
  32   1              DispBuff[3]=DecodeTab[Minute%10];
  33   1              if(!Ampm)       DispBuff[4]=AMPic;                              //如果Ampm为0则显示"AM"
  34   1              else            DispBuff[4]=PMPic;                              //否则显示"PM"
  35   1              if(dot)         DispBuff[4]+=DOTPic;                    //如果dot为1,则显示":"
  36   1              DispBuff[5]=0;                                                          //第六个字节为"0",不显示
  37   1              PCF8576Disp();                                                          //调用显示函数
  38   1      }
  39          //***********************************************************************
  40          void PCF8576Date()                                                              //日期显示函数
  41          {
  42   1              DispBuff[0]=DecodeTab[Month/10];                        //将月译码写到显示缓冲
  43   1              DispBuff[1]=DecodeTab[Month%10]|DPPic;          //并且第二个8段显示"."(DP)
  44   1              DispBuff[2]=DecodeTab[Day/10];                          //将天译码写到显示缓冲
  45   1              DispBuff[3]=DecodeTab[Day%10];
  46   1              DispBuff[4]=MONTHPic+DAYPic;                            //显示"month""day"
  47   1              DispBuff[5]=0;                                                          //第六个字节为"0",不显示
  48   1              PCF8576Disp();                                                          //调用显示函数
  49   1      }
  50          
  51          //***********************************************************************
  52          void PCF8576Year()                                                              //年显示函数
  53          {
  54   1              DispBuff[0]=DecodeTab[2];                                       //将年译码写到显示缓冲
  55   1              DispBuff[1]=DecodeTab[0];
C51 COMPILER V7.06   PCF8576D                                                              11/09/2004 16:39:45 PAGE 2   

  56   1              DispBuff[2]=DecodeTab[Year/10];
  57   1              DispBuff[3]=DecodeTab[Year%10];
  58   1              DispBuff[4]=YEARPic;                                            //显示"Year"
  59   1              DispBuff[5]=0;                                                          //第六个字节为"0",不显示
  60   1              PCF8576Disp();                                                          //调用显示函数
  61   1      }
  62          //***********************************************************************
  63          void PCF8576Cdate()                                                             //日期显示函数
  64          {
  65   1              DispBuff[0]=DecodeTab[Cmonth/10];                       //将月译码写到显示缓冲
  66   1              DispBuff[1]=DecodeTab[Cmonth%10]|DPPic;         //并且第二个8段显示"."(DP)
  67   1              DispBuff[2]=DecodeTab[Cday/10];                         //将天译码写到显示缓冲
  68   1              DispBuff[3]=DecodeTab[Cday%10];
  69   1              DispBuff[4]=MONTHPic+DAYPic;                            //显示"month""day"
  70   1              DispBuff[5]=0;                                                          //第六个字节为"0",不显示
  71   1              PCF8576Disp();                                                          //调用显示函数
  72   1      }
  73          //***********************************************************************
  74          void PCF8576Cyear()                                                             //年显示函数
  75          {
  76   1              if(Cyear==99&&Year==0)                                          //如果是农历1999年
  77   1              {
  78   2                      DispBuff[0]=DecodeTab[1];                               //直接译码
  79   2                      DispBuff[1]=DecodeTab[9];       
  80   2                      DispBuff[2]=DecodeTab[9];
  81   2                      DispBuff[3]=DecodeTab[9];
  82   2              }
  83   1              else
  84   1              {
  85   2                      DispBuff[0]=DecodeTab[2];                               //前两个显示为"2""0"
  86   2                      DispBuff[1]=DecodeTab[0];
  87   2                      DispBuff[2]=DecodeTab[Cyear/10];                //将农历年译码写到显示缓冲
  88   2                      DispBuff[3]=DecodeTab[Cyear%10];
  89   2              }
  90   1              DispBuff[4]=YEARPic;                                            //显示"Year"
  91   1              DispBuff[5]=0;                                                          //第六个字节为"0",不显示
  92   1              PCF8576Disp();                                                          //调用显示函数
  93   1      }
  94          //***********************************************************************
  95          void PCF8576Weekday()                                                   //星期显示函数
  96          {
  97   1              DispBuff[0]=0;                                                          //第一个8段不显示
  98   1              DispBuff[1]=0;                                                          //第二个8段不显示
  99   1              DispBuff[2]=0;                                                          //第三个8段不显示

⌨️ 快捷键说明

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