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

📄 clock12-01_1.lst

📁 单片机 89s52+ds12b887+ds18b20时钟温度程序.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   CLOCK12_01_1                                                          12/01/2008 19:14:39 PAGE 1   


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

line level    source

   1          /*
   2          以写内容:初始化液晶后读时钟将时钟写入液晶,按键中断中setupint=1时读取
   3          年数据然后写向0x80+0x40;读取液晶值已经完成。08-11-29
   4          
   5          
   6          */
   7          #include <reg52.h>
   8          #define uchar unsigned char
   9          #define uint unsigned int
  10          sbit rs=P1^0;
  11          sbit lcde=P1^1;
  12          sbit lcdrw=P1^6;
  13          sbit dscs=P1^2;
  14          sbit dsas=P1^3;
  15          sbit dsrw=P1^4;
  16          sbit dsds=P1^5;
  17          sbit complete=P3^4;
  18          sbit cancle=P3^5;
  19          sbit setweek=P3^6;
  20          sbit up=P3^0;
  21          sbit down=P3^1;
  22          sbit DQ=P3^7;//ds18b20与单片机连接口
  23          uchar code nyr[]=" 20  -  -";
  24          uchar code sfm[]="  :  :       . C";
  25          uchar code addnyr[]={0x83,0x86,0x89,0x8c,0xc0,0xc3,0xc6};
  26          uchar code addc[]={0x09,0x08,0x07,0x06,0x04,0x02,0x00};
  27          uchar code week[]="SunMonTueWedThuFriSta";
  28          uchar data clockdata[5];
  29          uchar setupint,readc;
  30          uchar data disdata[5];
  31          uint tvalue;//温度值
  32          uchar tflag;//温度正负标志
  33          void delay(uchar x)
  34          {
  35   1              uchar j,i;
  36   1              for(i=x;i>0;i--)
  37   1              for(j=110;j>0;j--);
  38   1      }
  39          /***********************液晶程序*******************************/
  40          void write_com(uchar command)
  41          {
  42   1               lcdrw=0;
  43   1               rs=0;
  44   1               lcde=0;
  45   1               P0=command;
  46   1               delay(5);
  47   1               lcde=1;
  48   1               delay(5);
  49   1               lcde=0;
  50   1      }
  51          uchar read_date(uchar radd)
  52          {
  53   1              uchar rclock,rclock1,rclock2;
  54   1              write_com(radd);
  55   1              rs=1;
C51 COMPILER V8.02   CLOCK12_01_1                                                          12/01/2008 19:14:39 PAGE 2   

  56   1              lcdrw=1;
  57   1              lcde=1;
  58   1              P0=0xff;
  59   1              delay(5);
  60   1              rclock1=P0;
  61   1              delay(5);
  62   1      
  63   1              write_com(radd+1);
  64   1              rs=1;
  65   1              lcdrw=1;
  66   1              lcde=1;
  67   1              P0=0xff;
  68   1              delay(5);
  69   1              rclock2=P0;
  70   1              delay(5);
  71   1              rclock=(rclock1-0x30)*10+(rclock2-0x30);
  72   1              return rclock;
  73   1      }
  74          void write_date(uchar date)
  75          {
  76   1              lcdrw=0;
  77   1              rs=1;
  78   1              lcde=0;
  79   1              P0=date;
  80   1              delay(5);
  81   1              lcde=1;
  82   1              delay(5);
  83   1              lcde=0;
  84   1      }
  85          void init()
  86          {
  87   1              uchar i;
  88   1              EA=1;
  89   1              EX0=1;
  90   1              IT0=1;
  91   1              write_com(0x38);
  92   1              write_com(0x08);
  93   1              write_com(0x01);
  94   1              write_com(0x06);
  95   1              write_com(0x0c);
  96   1              write_com(0x80);
  97   1              for(i=0;i<9;i++)
  98   1              {
  99   2                      write_date(nyr[i]);
 100   2              }
 101   1                      write_com(0x80+0x40);
 102   1              for(i=0;i<16;i++)
 103   1              {
 104   2                      write_date(sfm[i]);
 105   2              }       
 106   1      }
 107          uchar read_ds(uchar add)
 108          {
 109   1              uchar dsdate;
 110   1              dsas=1;
 111   1              dsds=1;
 112   1              dsrw=1;
 113   1              dscs=0;
 114   1              P2=add;
 115   1              dsas=0;
 116   1              dsds=0;
 117   1              P2=0xff;
C51 COMPILER V8.02   CLOCK12_01_1                                                          12/01/2008 19:14:39 PAGE 3   

 118   1              dsdate=P2;
 119   1              dsds=1;
 120   1              dsas=1;
 121   1              dscs=1;
 122   1              return dsdate;
 123   1      }
 124          void wc_lcd()
 125          {
 126   1              uchar temp,si,ge,i,j;
 127   1              for(i=0;i<7;i++)
 128   1              {
 129   2                      temp=read_ds(addc[i]);
 130   2                      si=temp/10;
 131   2                      ge=temp%10;
 132   2                      write_com(addnyr[i]);
 133   2                      if(i==3)
 134   2                      {
 135   3                              for(j=0;j<3;j++)
 136   3                              {
 137   4                              write_date(week[ge*3+j]);
 138   4                              }
 139   3                      }
 140   2                      else
 141   2                      {
 142   3                      write_date(0x30+si);
 143   3                      write_date(0x30+ge);
 144   3                      }
 145   2              }
 146   1              
 147   1      }       
 148          void setclock_num(uchar cadd,uchar num)
 149          {
 150   1              uchar r1,r2;
 151   1              r1=num/10;
 152   1              r2=num%10;
 153   1              write_com(cadd);
 154   1              write_date(0x30+r1);
 155   1              write_date(0x30+r2);
 156   1              write_com(cadd+1);
 157   1      }
 158          void write_clock()
 159          {
 160   1              uchar i,j;
 161   1              j=0;
 162   1              /////////////
 163   1                      dscs=0;
 164   1                      dsas=1;
 165   1                      dsds=1;
 166   1                      dsrw=1;
 167   1                      P2=0x0b;
 168   1                      dsas=0;                                                           
 169   1                      dsrw=0;
 170   1                      P2=0x82;
 171   1                      dsrw=1;
 172   1                      dsas=1;
 173   1                      dscs=1;
 174   1      
 175   1                      dscs=0;
 176   1                      dsas=1;
 177   1                      dsds=1;
 178   1                      dsrw=1;
 179   1                      P2=0x0b;
C51 COMPILER V8.02   CLOCK12_01_1                                                          12/01/2008 19:14:39 PAGE 4   

 180   1                      dsas=0;                                                           
 181   1                      dsrw=0;
 182   1                      P2=0x02;
 183   1                      dsrw=1;
 184   1                      dsas=1;
 185   1                      dscs=1;
 186   1                      /////////////
 187   1      //      for(i=0;i<6;i++)
 188   1      //      {
 189   1      //              dsas=1;
 190   1      //              dsds=1;
 191   1      //              dsrw=1;
 192   1      //              dscs=0;
 193   1      //              P2=addc[j];
 194   1      //              dsas=0;                                                           
 195   1      //              dsrw=0;
 196   1      //              P2=clockdata[i];
 197   1      //              dsrw=1;
 198   1      //              dsas=1;
 199   1      //              dscs=1;
 200   1      //              j++;
 201   1      //              if(j==3)j=4;
 202   1      //      }
 203   1              write_com(0x0c);//关闭光标
 204   1              setupint=0;
 205   1      }
*** WARNING C280 IN LINE 160 OF CLOCK12-01_1.C: 'i': unreferenced local variable
 206          void write_week()
 207          {
 208   1                      dsas=1;
 209   1                      dsds=1;                            
 210   1                      dsrw=1;
 211   1                      dscs=0;
 212   1                      P2=0x0b;
 213   1                      dsas=0;
 214   1                      dsrw=0;
 215   1                      P2=0x20;
 216   1                      dsrw=1;
 217   1                      dsas=1;
 218   1                      dscs=1;
 219   1      }
 220          void setclock()
 221          {
 222   1              write_com(0x0d);
 223   1              switch(setupint)
 224   1              {
 225   2              case 1:
 226   2                      clockdata[0]=read_date(addnyr[0]);
 227   2                      while(setupint==1)
 228   2                      {
 229   3                              if(up==0)
 230   3                              {
 231   4                                      delay(50);
 232   4                                      clockdata[0]++;
 233   4                                      setclock_num(addnyr[0],clockdata[0]);
 234   4                                      while(up==0);
 235   4                                      delay(50);
 236   4                              }
 237   3                              if(down==0)
 238   3                              {
 239   4                                      delay(50);
 240   4                                      clockdata[0]--;
C51 COMPILER V8.02   CLOCK12_01_1                                                          12/01/2008 19:14:39 PAGE 5   

 241   4                                      setclock_num(addnyr[0],clockdata[0]);
 242   4                                      while(down==0);
 243   4                                      delay(50);
 244   4                              }
 245   3                              if(cancle==0)setupint=0;
 246   3                              if(complete==0)
 247   3                              {write_clock();while(complete==0);}
 248   3                      }
 249   2                      break;

⌨️ 快捷键说明

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