12864six.lst

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

LST
843
字号
C51 COMPILER V7.06   12864SIX                                                              04/20/2009 15:25:25 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 12864SIX
OBJECT MODULE PLACED IN 12864six.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864six.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^3;
  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[]={"-"};
  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   12864SIX                                                              04/20/2009 15:25:25 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 wfen(uchar x,uchar y,uchar date)
  80          {
  81   1              sh=date/10;
  82   1              ge=date%10;
  83   1              pos(x,y);
  84   1              wdata(':');
  85   1              wdata(table2[sh]);
  86   1              wdata(table2[ge]);
  87   1              pos(x,y+1);
  88   1      }
  89          void wadnian(uchar x,uchar y,int date)
  90          {
  91   1              uchar qian,bai,sh,ge;
  92   1              qian=date/1000;
  93   1              bai=date%1000/100;
  94   1              sh=date%100/10;
  95   1              ge=date%10;
  96   1              pos(x,y);
  97   1              wdata(table2[qian]);
  98   1              wdata(table2[bai]);
  99   1              wdata(table2[sh]);
 100   1              wdata(table2[ge]);
 101   1      }
 102          void wsfm(uchar x,uchar y,uchar shi,uchar fen,uchar miao)
 103          {
 104   1              uchar ss,sg,fs,fg,ms,mg;
 105   1              pos(x,y);
 106   1              ss=shi/10;
 107   1              sg=shi%10;
 108   1              fs=fen/10;
 109   1              fg=fen%10;
 110   1              ms=miao/10;                                                                                              
             -                                                                                                                        
             -                                                                                                                        
             -                                                                                                                        
             -                                                                     
 111   1              mg=miao%10;
 112   1              wdata(table2[ss]);
 113   1              wdata(table2[sg]);
C51 COMPILER V7.06   12864SIX                                                              04/20/2009 15:25:25 PAGE 3   

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

 176   1              dsrs=0;
 177   1              dscl=0;
 178   1              dsrs=1;
 179   1              writeds(add);
 180   1              writeds(date);
 181   1              dscl=1;
 182   1              dsrs=0;
 183   1      }
 184          uchar read1302(uchar add)
 185          {
 186   1              uchar date;
 187   1              dsrs=0;
 188   1              dscl=0;
 189   1              dsrs=1;
 190   1              add++;
 191   1              writeds(add);
 192   1              date=readds();
 193   1              dscl=1;
 194   1              dsrs=0;
 195   1              return (date);
 196   1      }
 197          void settime(uchar add,uchar date)
 198          {
 199   1              write1302(0x8e,0x00);
 200   1              write1302(add,(date/10)<<4|(date%10));
 201   1              write1302(0x8e,0x80);
 202   1              
 203   1      }
 204          void gettime()
 205          {
 206   1              uchar time;
 207   1              time=read1302(0x80);
 208   1              gege=time&0x0f;
 209   1              shsh=(time&0x70)>>4;
 210   1              miao=shsh*10+gege;
 211   1              time=read1302(0x82);
 212   1              fs=(time&0x70)>>4;
 213   1              fg=time&0x0f;
 214   1              fen=fs*10+fg;
 215   1              time=read1302(0x84);
 216   1              ss=(time&0x70)>>4;
 217   1              sg=time&0x0f;
 218   1              shi=ss*10+sg;
 219   1              time=read1302(0x8a);
 220   1              day=(time&0x07);
 221   1              time=read1302(0x86);
 222   1              rqs=(time&0x30)>>4;
 223   1              rqg=(time&0x0f);
 224   1              ri=rqs*10+rqg;
 225   1              time=read1302(0x88);
 226   1              ys=(time&0x10)>>4;
 227   1              ye=(time&0x0f);
 228   1              yue=ys*10+ye;
 229   1              time=read1302(0x8c);
 230   1              ns=(time&0xf0)>>4;
 231   1              ng=(time&0x0f);
 232   1              nsg=ns*10+ng;
 233   1              nian=nsg+nqb*100;
 234   1      }
 235          void initds()
 236          {
 237   1              uchar second=read1302(0x80);
C51 COMPILER V7.06   12864SIX                                                              04/20/2009 15:25:25 PAGE 5   

 238   1              if(second&0x80)
 239   1              settime(0x80,0);//设定几秒
 240   1              settime(0x82,4);//设定几分
 241   1              settime(0x84,8);//设定几时
 242   1              settime(0x86,19);//设定几号
 243   1              settime(0x88,4);//设定几月
 244   1              nian=0;
 245   1              settime(0x8c,88);//设定几年
 246   1              settime(0x8a,6);//设定星期几
 247   1      }
 248          void init()
 249          {
 250   1              wcom(0x30);//基本指令操作
 251   1              delay(5);
 252   1              wcom(0x0c);//显示开关坐标
 253   1              delay(5);
 254   1              wcom(0x01);//清屏
 255   1              delay(5);
 256   1      }
 257          void keyscan()
 258          {
 259   1              if(flag==0)
 260   1         {

⌨️ 快捷键说明

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