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

📄 led1.lst

📁 基于51单片机的点阵显示设计源代码加仿真
💻 LST
📖 第 1 页 / 共 3 页
字号:
 115   1              res0=0;
C51 COMPILER V8.05a   LED1                                                                 09/24/2008 22:18:40 PAGE 3   

 116   1      }
 117          void main(void)
 118          {
 119   1              unsigned char n=0,l=0,k=0,m=0,h=0,sp=10;
 120   1              bit num=0,wd=0,time=0,open=1;
 121   1              //ds1302();
 122   1              pc_init();
 123   1              oe=0;
 124   1              do
 125   1              {                               
 126   2                      if(P1_0==0)                        //左移,右移
 127   2                      {
 128   3                              num=~num;
 129   3                              wd=0;
 130   3                              time=0;
 131   3                              open=1;
 132   3                              while(!P1_0);
 133   3                      }
 134   2                      if(P1_1==0)                        //温度显示
 135   2                      {
 136   3                              wd=1;
 137   3                              time=0;
 138   3                              open=0;
 139   3                              while(!P1_1);
 140   3                      }
 141   2                      if(P1_2==0)                        //时钟显示
 142   2                      {
 143   3                              time=1;
 144   3                              wd=0;
 145   3                              open=0;
 146   3                              while(!P1_2);
 147   3                      }
 148   2                      if(P1_3==0)                        //串口通行
 149   2                      {
 150   3                              printf("现在温度是%d%d度\n现在时刻是%d%d%时d%d%分%d%d秒\n",x,y,hour[1],hour[0],min[1],min[0],second[1],
             -second[0]);
 151   3                              open=0;
 152   3                              while(!P1_3);
 153   3                       }
 154   2                              if(time)                                                         //显示时钟
 155   2                              {
 156   3                                      dsplay_ds1302();                                 //读取时钟
 157   3                                      for(l=0;l<30;l++)
 158   3                                      {
 159   4                                              for(n=0;n<16;n++)       //扫16行
 160   4                                              {                                       
 161   5                                                      oe=1;
 162   5                                                      P0=(P0&0xf0)|n; 
 163   5                                                      write_595(tab[n+16*min[1]]);
 164   5                                                      write_595(tab[n+16*min[0]]);
 165   5                                                      write_595(tab[n+16*second[1]]);
 166   5                                                      write_595(tab[n+16*second[0]]);
 167   5                                                      oe=0;
 168   5                                                      delay();                
 169   5                                              }
 170   4                                      }
 171   3                              }
 172   2                                              if(wd==0&&time==0&&open==0)               //主界面good
 173   2                                              {
 174   3                                                      for(l=0;l<30;l++)
 175   3                                                      {
 176   4                                                              for(n=0;n<16;n++)       //扫16行
C51 COMPILER V8.05a   LED1                                                                 09/24/2008 22:18:40 PAGE 4   

 177   4                                                              {                                       
 178   5                                                                      oe=1;
 179   5                                                                      P0=(P0&0xf0)|n; 
 180   5                                                                      write_595(tab[n+16*15]);
 181   5                                                                      write_595(tab[n+16*16]);
 182   5                                                                      write_595(tab[n+16*16]);
 183   5                                                                      write_595(tab[n+16*13]);
 184   5                                                                      oe=0;
 185   5                                                                      delay();        
 186   5                                                              }       
 187   4                                                      }
 188   3                                              }
 189   2                                              if(wd)                                          //温度显示
 190   2                                              {
 191   3                                                      wd_t();
 192   3                                                      for(l=0;l<30;l++)
 193   3                                                      {
 194   4                                                              for(n=0;n<16;n++)       //扫16行
 195   4                                                              {                                       
 196   5                                                                      oe=1;
 197   5                                                                      P0=(P0&0xf0)|n; 
 198   5                                                                      write_595(tab[n+16*x]);
 199   5                                                                      write_595(tab[n+16*y]);
 200   5                                                                      write_595(tab[n+16*14]);
 201   5                                                                      write_595(tab[n+16*12]);
 202   5                                                                      oe=0;
 203   5                                                                      delay();        
 204   5                                                              }       
 205   4                                                      }
 206   3                                              }                       
 207   2                                              if(num&&wd==0&&time==0&&open==1)                  //左移数字字母
 208   2                                              {
 209   3                                                      for(m=0;m<10;m++)
 210   3                                                      {
 211   4                                                              for(k=0;k<8;k++)
 212   4                                                              {
 213   5                                                                      for(l=0;l<sp;l++)
 214   5                                                                      {
 215   6                                                                              for(n=0;n<16;n++)       //扫16行
 216   6                                                                              {                                       
 217   7                                                                                      oe=1;
 218   7                                                                                      P0=(P0&0xf0)|n;  
 219   7                                                                                      write_595((tab[n+16*m]<<k)|(tab[n+16*(m+1)]>>(8-k)));
 220   7                                                                                      write_595((tab[n+16*(m+1)]<<k)|(tab[n+16*(m+2)]>>(8-k)));
 221   7                                                                                      write_595((tab[n+16*(m+2)]<<k)|(tab[n+16*(m+3)]>>(8-k)));
 222   7                                                                                      write_595((tab[n+16*(m+3)]<<k)|(tab[n+16*(m+4)]>>(8-k)));
 223   7                                                                                      oe=0;
 224   7                                                                                      delay();
 225   7                                                                                      if(P1_0==0) 
 226   7                                                                                      {
 227   8                                                                                              num=1;
 228   8                                                                                              wd=0;
 229   8                                                                                              time=0;
 230   8                                                                                              open=0;
 231   8                                                                                              break;
 232   8                                                                                      }
 233   7                                                                                      if(P1_3==0)
 234   7                                                                                      {
 235   8                                                                                              sp=sp+5;
 236   8                                                                                              if(sp==40) sp=5;

⌨️ 快捷键说明

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