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

📄 dianzhen.lst

📁 笔者自己弄的一个32*16的点阵模块,使用51单片机以及74hc595和74hc138实现,内有动态显示程序和静态显示程序,以及Protel99SE原理图和PCB图.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 144   3                              for(j = i; j >= 0; j--) {//显示一副画面的上半部分
 145   4                                      if(j == i) { 
 146   5                                              temp_cs0 = CS_3_8_0;
 147   5                                              temp_cs1 = CS_3_8_1;
 148   5                                      }
 149   4                                      if(((j + 1) % 8 == 0) && j != i) {
 150   5                                              CS_3_8_0 += 1;//此点阵块显示完,显示下一块
 151   5                                              CS_3_8_1 = 0;//
 152   5                                      }
 153   4                                      
 154   4                                      P1 &= 0xf0;//第几块点阵译码器
 155   4                                      P1 |= 1;//关总显示
 156   4                                      SendData(Pic[tempdata++]);
 157   4                                      P2 = CS_3_8_1++;//第几列译码器数据
 158   4                                      P1 = CS_3_8_0 << 1;//第几块译码器数据
 159   4                                      P1 &= 0xfe;//开块译码器
 160   4                                      Delayms(1);
 161   4                              }
 162   3                              tempdata = start + 16;//第二排起始数据偏移量
 163   3                              for(j = i; j >= 0; j--) {//显示一幅画面的下半部分
 164   4                                      if(j == i) {
 165   5                                              CS_3_8_0 = temp_cs0 + 4;
 166   5                                              CS_3_8_1 = temp_cs1;
 167   5                                      }
 168   4                                      if(((j + 1) % 8 == 0) && j != i) {
 169   5                                              CS_3_8_0 += 1;//此点阵块显示完,显示下一块
 170   5                                              CS_3_8_1 = 0;
 171   5                                      }
 172   4      
 173   4                                      P1 &= 0xf0;//第几块点阵译码器
 174   4                                      P1 |= 1;//关总显示
 175   4                                      SendData(Pic[tempdata++]);
 176   4                                      P2 = CS_3_8_1++;//第几列译码器数据
 177   4                                      P1 = CS_3_8_0 << 1;//第几块译码器数据
 178   4                                      P1 &= 0xfe;//开块译码器
 179   4                                      Delayms(1);
C51 COMPILER V7.06   DIANZHEN                                                              08/20/2008 15:27:17 PAGE 4   

 180   4                              }
 181   3                      }
 182   2              }
 183   1      
 184   1              for(i = 0; i < num - 32; i++) {//显示占满点阵显示块的代码
 185   2                      start++;//显示数据每次向左移一位
 186   2                      for(k = 0; k < 10; k++) {
 187   3                              tempdata = start;
 188   3                              CS_3_8_0 = 0;
 189   3                              for(j = 0; j < 32; j++) {//显示第一排
 190   4                                      if(j == 0) {
 191   5                                              temp_cs0 = CS_3_8_0;
 192   5                                              CS_3_8_1 = 0;
 193   5                                      }
 194   4                                      if(j != 0 && j % 8 == 0) {
 195   5                                              CS_3_8_0++;
 196   5                                              CS_3_8_1 = 0;
 197   5                                      }
 198   4      
 199   4                                      P1 &= 0xf0;//第几块点阵译码器
 200   4                                      P1 |= 1;//关总显示
 201   4                                      SendData(Pic[tempdata++]);
 202   4                                      P2 = CS_3_8_1++;//第几列译码器数据
 203   4                                      P1 = CS_3_8_0 << 1;//第几块译码器数据
 204   4                                      P1 &= 0xfe;//开块译码器
 205   4                                      Delayms(1);
 206   4                              }
 207   3                              
 208   3                              tempdata = start + 16;//显示第二排                      
 209   3                              for(j = 0; j < 32; j++) {
 210   4                                      if(j == 0) {
 211   5                                              CS_3_8_0 = temp_cs0 + 4;
 212   5                                              CS_3_8_1 = 0;
 213   5                                      }
 214   4                                      if(j != 0 && j % 8 == 0) {
 215   5                                              CS_3_8_0++;
 216   5                                              CS_3_8_1 = 0;
 217   5                                      }
 218   4      
 219   4                                      P1 &= 0xf0;//第几块点阵译码器
 220   4                                      P1 |= 1;//关总显示
 221   4                                      SendData(Pic[tempdata++]);
 222   4                                      P2 = CS_3_8_1++;//第几列译码器数据
 223   4                                      P1 = CS_3_8_0 << 1;//第几块译码器数据
 224   4                                      P1 &= 0xfe;//开块译码器
 225   4                                      Delayms(1);
 226   4                              }
 227   3                      }
 228   2              }
 229   1              
 230   1              start = tempdata - 16 - 1;
 231   1              for(i = 32; i != 0; i--) {
 232   2                      start++;
 233   2                      for(k = 0; k < 10; k++) {
 234   3                              tempdata = start;
 235   3                              CS_3_8_0 = 0;//显示最后结尾画面
 236   3                              for(j = i; j != 0; j--) {
 237   4                                      if(j == i) { 
 238   5                                              temp_cs0 = CS_3_8_0;
 239   5                                              CS_3_8_1 = 0;
 240   5                                      }
 241   4                                      if(j != i && j % 8 == 0) {
C51 COMPILER V7.06   DIANZHEN                                                              08/20/2008 15:27:17 PAGE 5   

 242   5                                              CS_3_8_0++;
 243   5                                              CS_3_8_1 = 0;
 244   5                                      }
 245   4      
 246   4                                      P1 &= 0xf0;//第几块点阵译码器
 247   4                                      P1 |= 1;//关总显示
 248   4                                      SendData(Pic[tempdata++]);
 249   4                                      P2 = CS_3_8_1++;//第几列译码器数据
 250   4                                      P1 = CS_3_8_0 << 1;//第几块译码器数据
 251   4                                      P1 &= 0xfe;//开块译码器
 252   4                                      Delayms(1);
 253   4                              }
 254   3                              tempdata = start + 16;
 255   3                              for(j = i; j != 0; j--) {
 256   4                                      if(j == i) {
 257   5                                              CS_3_8_0 = temp_cs0 + 4;
 258   5                                              CS_3_8_1 = 0;
 259   5                                      }
 260   4                                      if(j != i && j % 8 == 0) {
 261   5                                      CS_3_8_0++;
 262   5                                              CS_3_8_1 = 0;
 263   5                                      }
 264   4                                      
 265   4                                      P1 &= 0xf0;//第几块点阵译码器
 266   4                                      P1 |= 1;//关总显示
 267   4                                      SendData(Pic[tempdata++]);
 268   4                                      P2 = CS_3_8_1++;//第几列译码器数据
 269   4                                      P1 = CS_3_8_0 << 1;//第几块译码器数据
 270   4                                      P1 &= 0xfe;//开块译码器
 271   4                                      Delayms(1);
 272   4                              }
 273   3                      }
 274   2              }
 275   1      }
 276          
 277          
 278          
 279          
 280          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    558    ----
   CONSTANT SIZE    =    240    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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