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

📄 lcmservice.lst

📁 带时钟功能温度和湿度测量的仪器
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE LCMSERVICE
OBJECT MODULE PLACED IN LCMService.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCMModule\LCMService.c BROWSE DEBUG OBJECTEXTEND PRINT(.\LCMService.lst) OB
                    -JECT(LCMService.obj)

line level    source

   1          /*
   2          文件名:  LCMService.c
   3          功能:    液晶显示服务函数实现
   4          单位:    浙江工商大学-信电学院
   5          创建日期:2004-09-24
   6          创建人:  Houseivan
   7          修改人:  Houseivan
   8          修改日期:2005-03-11
   9          */
  10          /*------------------------------------------------*/
  11          #include"Includes.h"
  12          /*检查是否配置了显示器功能*/
  13          #if _LCM_TASK>0
  14          /*------------------------------------------------*/
  15          /*液晶字型数组定义*/
  16                  extern uchar code lcd_zx[][3];
  17          /*液晶的显示缓冲区地址*/
  18                  extern uchar code position[];
  19          /*检测是否配置了传感器监控功能*/
  20          /*      显示页面模板    */
  21                  extern uchar code TimePage[];
  22                  extern uchar code DatePage[];
  23                  extern uchar code WeekPage[];
  24                  extern uchar code BusyPage[];
  25                  extern uchar code ErrorPage[];
  26          /*符号位包含在整数部分的最高位1:负数=======0:正数*/
  27                  extern uchar data TempInteger;                                  //温度值整数和符号字节
  28                  extern uchar data TempDecimal;                                  //温度值小数位字节
  29                  extern uchar data HumiInteger;                                  //湿度值整数和符号字节
  30                  extern uchar data HumiDecimal;                                  //湿度值小数位字节
  31                  extern uchar data ClkLcmBuf[_MAX_LCM_NUM];
  32                  extern uchar data UartRecBuf[_MAX_LENG];
  33                  extern uchar data SystemState;                                  //系统运行状态指示
  34                  extern uchar data LcmMode;                                              //显示模式选择
  35          
  36          /*LCM0103控制线定义*/
  37                  sbit CS=P1^4;
  38                  sbit CLK=P1^6; //上升边沿触发
  39                  sbit DI=P1^5;
  40          /*------------------------------------------------*/
  41          /*
  42          名称: LCM_Initialize
  43          功能: LCM0103初始化
  44          注意:  
  45          */
  46          void  LCM_Initialize(void)
  47          {
  48   1              DI=0;
  49   1                  CS=1;
  50   1              CLK=1;
  51   1                  DelayTime(1,200);
  52   1              WriteCmd(NO_WDOG);  //1
  53   1              WriteCmd(CRY_OPEN); //2
  54   1              WriteCmd(DISP_ON);  //3
C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 2   

  55   1              WriteCmd(CLR_TIME); //4
  56   1              WriteCmd(IN_OK);    //5
  57   1              WriteCmd(INIT);
  58   1              LCM_Clear();
  59   1      }
  60          /*------------------------------------------------*/
  61          /*------------------------------------------------*/
  62          /*
  63          名称: LCM_Clear(void)
  64          功能: 显示器屏幕清除
  65          注意:  
  66          */
  67          void  LCM_Clear(void)
  68          {
  69   1              uchar i=0;
  70   1              for(i=0;i<10;i++)
  71   1                 OutputChar(position[i],22,0);
  72   1      }
  73          /*------------------------------------------------*//*------------------------------------------------*/
  74          /*
  75          名称: WriteBit
  76          功能: 写入一个位信息
  77          注意:  
  78          */
  79          void WriteBit(bit mybit)
  80          {
  81   1              CS=0;
  82   1              CLK=0;
  83   1              DI=mybit;
  84   1              CLK=1;
  85   1              DelayTime(1,5);
  86   1      }
  87          /*------------------------------------------------*/
  88          /*------------------------------------------------*/
  89          /*
  90          名称: WriteCmd
  91          功能: 写入命令字
  92          注意:  
  93          */
  94          void WriteCmd(uchar scmd)
  95          {
  96   1              CS=0;
  97   1                  WriteData(COMD,3);
  98   1              WriteData(scmd,8);
  99   1              WriteBit(0);
 100   1              CS=1;
 101   1      }  
 102          /*------------------------------------------------*/
 103          /*------------------------------------------------*/
 104          /*
 105          名称: WriteData
 106          功能: 写一个数据包括模式和显示字模
 107          注意:  
 108          */
 109          void WriteData(uchar sdata,uchar N)
 110          {
 111   1           bit bit1;
 112   1           uchar i=0;
 113   1           CS=0;
 114   1           if (N>8)N=8;
 115   1           for(i=0;i<N;i++)
 116   1            {
C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 3   

 117   2               bit1=((sdata & 0x01)==0x01);
 118   2               WriteBit(bit1);
 119   2               sdata>>=1;
 120   2               }
 121   1      }
 122          /*------------------------------------------------*/
 123          /*------------------------------------------------*/
 124          /*
 125          名称: SetupInAddr
 126          功能: 写入设定的显示缓冲对应的地址
 127          注意:  
 128          */
 129          void SetupAddr(uchar sdata,uchar N)
 130          {
 131   1           bit bit1;
 132   1           uchar i=0;
 133   1           if (N<8)sdata<<=(8-N);    
 134   1               //A5  ~ A0 and A5=0
 135   1               else N=8;
 136   1               CS=0;
 137   1           WriteBit(0);
 138   1           for(i=0;i<N;i++)
 139   1               {
 140   2                 bit1=((sdata & 0x80)==0x80);//取出最高位
 141   2             WriteBit(bit1);
 142   2                 sdata<<=1;
 143   2               }
 144   1               CLK=0;
 145   1      }
 146          /*------------------------------------------------*/
 147          /*------------------------------------------------*/
 148          /*
 149          名称: OutputChar
 150          功能: 显示一位BCD数字在液晶屏上
 151          注意: dot=1 then there is a dot need to display 
 152          */
 153          void OutputChar(uchar LcmID,uchar bcdcode,bit dot)
 154          {
 155   1           uchar i=0;
 156   1               CS=0;
 157   1               WriteData(WRITE,3);    //set_mode
 158   1               SetupAddr(LcmID,5);    //0 A4~A0//设定首地址
 159   1               for (i=0;i<3;i++)
 160   1               {  
 161   2                  if(dot && (i==0))
 162   2                     WriteData((lcd_zx[bcdcode][i] | DOT),3);
 163   2                  else
 164   2                     WriteData(lcd_zx[bcdcode][i],3);
 165   2                 WriteBit(0);
 166   2               }
 167   1           CS=1;                  //结束一次数据写操作
 168   1      }
 169          /*------------------------------------------------*/
 170          /*------------------------------------------------*/
 171          /*
 172          名称: OutputTHValue
 173          功能: 显示两个字符数据/显示温湿度值页面
 174          注意: [xxx][xxx] // -xx.x -xx.x
 175                    9        0
 176          */
 177          void  OutputTHValue(uchar data1,uchar data2,uchar start)
 178          {
C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 4   

 179   1               uchar nTemp;

⌨️ 快捷键说明

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