12864five.lst

来自「就是想下载一些东西啊」· LST 代码 · 共 824 行 · 第 1/3 页

LST
824
字号
C51 COMPILER V7.06   12864FIVE                                                             04/20/2009 14:14:32 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 12864FIVE
OBJECT MODULE PLACED IN 12864five.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864five.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          sbit RS=P2^7;
   5          sbit RW=P2^6;
   6          sbit EN=P2^5;
   7          sbit key1=P3^3;
   8          sbit key2=P3^4;
   9          sbit key3=P3^5;
  10          sbit key4=P1^0;
  11          sbit ACC0=ACC^0;
  12          sbit ACC7=ACC^7;
  13          sbit dsrs=P2^4;
  14          sbit dscl=P3^7;
  15          sbit IO=P3^2;
  16          sbit feng=P3^6;
  17          sbit kaiguan=P1^4;
  18          int nian;
  19          char shi,fen,miao,day,ri,yue,qian,bai,nqb,nsg,nshi,nfen,nmiao;
  20          uchar num,sh,ge,shu,flag,i,shsh,gege,fs,fg,ss,sg,ys,ye,rqs,rqg,ns,ng,flag1,k;
  21          //uchar code table[]={"2009-04-19"};
  22          uchar code table1[]={"2009-04-13"};
  23          uchar code table2[]={"0123456789"};
  24          uchar code table3[]={"MONTUEWEDTHUFRISATSUN"};
  25          uchar code table4[]={"闹钟                  "};
  26          //sbit PSB=P2^4;
  27          void delay(uint x)
  28          {
  29   1              uint i,j;
  30   1          for(j=0;j<x;j++)
  31   1              for(i=0;i<110;i++);
  32   1      }
  33          void wcom(uchar com)
  34          {
  35   1              RS=0;
  36   1              RW=0;
  37   1              EN=0;
  38   1              P0=com;
  39   1              delay(5);
  40   1              EN=1;
  41   1              delay(5);
  42   1              EN=0;
  43   1      }
  44          void wdata(uchar dat)
  45          {
  46   1              RS=1;
  47   1              RW=0;
  48   1              EN=0;
  49   1              P0=dat;
  50   1              delay(5);
  51   1              EN=1;
  52   1              delay(5);
  53   1              EN=0;
  54   1      }
  55          void pos(uchar x,uchar y)
C51 COMPILER V7.06   12864FIVE                                                             04/20/2009 14:14:32 PAGE 2   

  56          {
  57   1              uchar pos;
  58   1              if(x==1)
  59   1              {x=0x80;}
  60   1              else if(x==2)
  61   1              {x=0x90;}
  62   1              else if(x==3)
  63   1              {x=0x88;}
  64   1              else if(x==4)
  65   1              {x=0x98;}
  66   1              pos=x+y;
  67   1              wcom(pos);
  68   1              
  69   1      }
  70          void wadda(uchar x,uchar y,uchar date)
  71          {
  72   1              sh=date/10;
  73   1              ge=date%10;
  74   1              pos(x,y);
  75   1              wdata(table2[sh]);
  76   1              wdata(table2[ge]);
  77   1              pos(x,y);
  78   1      }
  79          void wadnian(uchar x,uchar y,int date)
  80          {
  81   1              uchar qian,bai,sh,ge;
  82   1              qian=date/1000;
  83   1              bai=date%1000/100;
  84   1              sh=date%100/10;
  85   1              ge=date%10;
  86   1              pos(x,y);
  87   1              wdata(table2[qian]);
  88   1              wdata(table2[bai]);
  89   1              wdata(table2[sh]);
  90   1              wdata(table2[ge]);
  91   1      }
  92          void wsfm(uchar x,uchar y,uchar shi,uchar fen,uchar miao)
  93          {
  94   1              uchar ss,sg,fs,fg,ms,mg;
  95   1              pos(x,y);
  96   1              ss=shi/10;
  97   1              sg=shi%10;
  98   1              fs=fen/10;
  99   1              fg=fen%10;
 100   1              ms=miao/10;                                                                                              
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                     
 101   1              mg=miao%10;
 102   1              wdata(table2[ss]);
 103   1              wdata(table2[sg]);
 104   1              wdata(':');
 105   1              wdata(table2[fs]);
 106   1              wdata(table2[fg]);
 107   1              wdata(':');
 108   1              wdata(table2[ms]);
 109   1              wdata(table2[mg]);
 110   1      }
 111          void wnyr(int nian,uchar yue,uchar ri)
 112          {
 113   1              wadnian(1,0,nian);
C51 COMPILER V7.06   12864FIVE                                                             04/20/2009 14:14:32 PAGE 3   

 114   1          wadda(1,3,yue);
 115   1              wadda(1,5,ri);
 116   1              pos(1,6);
 117   1              wdata(0x20);
 118   1              for(i=0;i<3;i++)
 119   1                      {
 120   2                              wdata(table3[i+3*day]);
 121   2                      }
 122   1              
 123   1      }
 124          void writeds(uchar date)
 125          {
 126   1              uchar i;
 127   1              ACC=date;
 128   1              for(i=8;i>0;i--)
 129   1              {
 130   2                      IO=ACC0;
 131   2                      dscl=1;
 132   2                      dscl=0;
 133   2                      ACC=ACC>>1;
 134   2                      
 135   2              }
 136   1              
 137   1      }
 138          uchar readds()
 139          {
 140   1              uchar i;
 141   1              for(i=8;i>0;i--)
 142   1              {
 143   2                      ACC=ACC>>1;
 144   2                      ACC7=IO;
 145   2                      dscl=1;
 146   2                      dscl=0;
 147   2              }
 148   1              return(ACC);
 149   1      }
 150          void write1302(uchar add,uchar date)
 151          {
 152   1              dsrs=0;
 153   1              dscl=0;
 154   1              dsrs=1;
 155   1              writeds(add);
 156   1              writeds(date);
 157   1              dscl=1;
 158   1              dsrs=0;
 159   1      }
 160          uchar read1302(uchar add)
 161          {
 162   1              uchar date;
 163   1              dsrs=0;
 164   1              dscl=0;
 165   1              dsrs=1;
 166   1              add++;
 167   1              writeds(add);
 168   1              date=readds();
 169   1              dscl=1;
 170   1              dsrs=0;
 171   1              return (date);
 172   1      }
 173          void settime(uchar add,uchar date)
 174          {
 175   1              write1302(0x8e,0x00);
C51 COMPILER V7.06   12864FIVE                                                             04/20/2009 14:14:32 PAGE 4   

 176   1              write1302(add,(date/10)<<4|(date%10));
 177   1              write1302(0x8e,0x80);
 178   1              
 179   1      }
 180          void gettime()
 181          {
 182   1              uchar time;
 183   1              time=read1302(0x80);
 184   1              gege=time&0x0f;
 185   1              shsh=(time&0x70)>>4;
 186   1              miao=shsh*10+gege;
 187   1              time=read1302(0x82);
 188   1              fs=(time&0x70)>>4;
 189   1              fg=time&0x0f;
 190   1              fen=fs*10+fg;
 191   1              time=read1302(0x84);
 192   1              ss=(time&0x70)>>4;
 193   1              sg=time&0x0f;
 194   1              shi=ss*10+sg;
 195   1              time=read1302(0x8a);
 196   1              day=(time&0x07);
 197   1              time=read1302(0x86);
 198   1              rqs=(time&0x30)>>4;
 199   1              rqg=(time&0x0f);
 200   1              ri=rqs*10+rqg;
 201   1              time=read1302(0x88);
 202   1              ys=(time&0x10)>>4;
 203   1              ye=(time&0x0f);
 204   1              yue=ys*10+ye;
 205   1              time=read1302(0x8c);
 206   1              ns=(time&0xf0)>>4;
 207   1              ng=(time&0x0f);
 208   1              nsg=ns*10+ng;
 209   1              nian=nsg+nqb*100;
 210   1      }
 211          void initds()
 212          {
 213   1              uchar second=read1302(0x80);
 214   1              if(second&0x80)
 215   1              settime(0x80,0);//设定几秒
 216   1              settime(0x82,4);//设定几分
 217   1              settime(0x84,8);//设定几时
 218   1              settime(0x86,19);//设定几号
 219   1              settime(0x88,4);//设定几月
 220   1              nian=0;
 221   1              settime(0x8c,88);//设定几年
 222   1              settime(0x8a,6);//设定星期几
 223   1      }
 224          void init()
 225          {
 226   1              wcom(0x30);//基本指令操作
 227   1              delay(5);
 228   1              wcom(0x0c);//显示开关坐标
 229   1              delay(5);
 230   1              wcom(0x01);//清屏
 231   1              delay(5);
 232   1      }
 233          void keyscan()
 234          {
 235   1              if(flag==0)
 236   1         {
 237   2                      if(key2==0)
C51 COMPILER V7.06   12864FIVE                                                             04/20/2009 14:14:32 PAGE 5   

 238   2                      {
 239   3                              delay(10);
 240   3                              if(key2==0)
 241   3                              while(!key2);
 242   3                              flag1=0;
 243   3                              pos(4,0);
 244   3                              for(num=0;num<16;num++) 
 245   3                                      {
 246   4                       wdata(table4[num]);
 247   4                                      }
 248   3                      }
 249   2                      if(key3==0)
 250   2                      {
 251   3                              delay(10);
 252   3                              if(key3==0)
 253   3                              while(!key3);
 254   3                              flag1=0;

⌨️ 快捷键说明

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