12864four.lst

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

LST
828
字号
C51 COMPILER V7.06   12864FOUR                                                             04/19/2009 23:43:48 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 12864FOUR
OBJECT MODULE PLACED IN 12864four.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864four.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[]={"22 :37: 15"};
  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   12864FOUR                                                             04/19/2009 23:43:48 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(uchar x,uchar y,int nian,uchar yue,uchar ri)
 112          {
 113   1              pos(x,y);
C51 COMPILER V7.06   12864FOUR                                                             04/19/2009 23:43:48 PAGE 3   

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

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

 238   1      }
 239          void init()
 240          {
 241   1              wcom(0x30);//基本指令操作
 242   1              delay(5);
 243   1              wcom(0x0c);//显示开关坐标
 244   1              delay(5);
 245   1              wcom(0x01);//清屏
 246   1              delay(5);
 247   1      }
 248          void keyscan()
 249          {
 250   1              if(flag==0)
 251   1         {
 252   2                      if(key2==0)
 253   2                      {
 254   3                              delay(10);
 255   3                              if(key2==0)

⌨️ 快捷键说明

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