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

📄 up-move.lst

📁 基于51的DS18B20_1Wire温度控制等C,ASM源程序
💻 LST
字号:
C51 COMPILER V7.08   UP_MOVE                                                               12/20/2006 21:00:15 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE UP_MOVE
OBJECT MODULE PLACED IN UP-MOVE.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE UP-MOVE.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************
   2          *                                                                  *
   3          * ME500单片机开发系统演示程序 - 向上滚动显示伟纳电子               *
   4          *                                                                  *
   5          * 16×16LED点阵显示                                                 
   6          *                                                                  *
   7          * 版本: V1.0 (2006/11/20)                                         *
   8          * 作者: gguoqing (Email: gguoqing@willar.com)                     *
   9          * 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界)  *
  10          * 时间: 2006/11/20                                                *
  11          *                                                                  *
  12          *【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved  *
  13          *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!        *
  14          *                                                                  *
  15          *******************************************************************/
  16          
  17          #include <reg51.h>       //51芯片管脚定义头文件
  18          #include <intrins.h>     //内部包含延时函数 _nop_();
  19          
  20          #define uchar unsigned char
  21          #define uint  unsigned int
  22          
  23          #define BLKN 2          //列锁存器数
  24          
  25          sbit  SDATA_595=P0^0;   //串行数据输入
  26          sbit  SCLK_595 =P2^7;   //移位时钟脉冲
  27          sbit  RCK_595  =P0^2;   //输出锁存器控制脉冲
  28          sbit  G_74138  =P2^4;   //显示允许控制信号端口
  29          
  30          uchar data  dispram[32];  //显示缓存
  31          uchar temp;
  32          
  33          void  delay(uint );
  34          
  35          uchar code Bmp[][32]=          
  36            {
  37             {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  38              0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  39                  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
  40          
  41             {0xf7,0xbf,0xf7,0xbf,0xf7,0xbb,0xe8,0x1,0xef,0xbf,0xcf,0xb7,
  42              0xa8,0x3,0x6f,0xbf,0xef,0xbb,0xe0,0x1,0xef,0xbb,0xef,0xbb,
  43                  0xef,0xab,0xef,0xb7,0xef,0xbf,0xef,0xbf},//伟
  44           
  45             {0xef,0xbf,0xef,0xbf,0xdf,0xbb,0xdc,0x1,0xb5,0xbb,0x5,0xbb,
  46              0xed,0xbb,0xdd,0xbb,0xbd,0x5b,0x5,0x6b,0xfc,0xeb,0xfd,0xfb,
  47              0xe5,0xfb,0x1d,0xfb,0xbd,0xeb,0xfd,0xf7},//纳
  48            
  49             {0xfd,0xff,0xfd,0xff,0xfd,0xef,0x80,0x7,0xbd,0xef,0xbd,0xef,
  50              0x80,0xf,0xbd,0xef,0xbd,0xef,0x80,0xf,0xbd,0xef,0xfd,0xff,
  51                  0xfd,0xfb,0xfd,0xfb,0xfe,0x3,0xff,0xff},//电
  52            
  53             {0xff,0xff,0xc0,0xf,0xff,0xef,0xff,0xdf,0xff,0xbf,0xfe,0x7f,
  54              0xfe,0xfb,0x0,0x1,0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,
  55                  0xfe,0xff,0xfe,0xff,0xfa,0xff,0xfd,0xff}//子  
C51 COMPILER V7.08   UP_MOVE                                                               12/20/2006 21:00:15 PAGE 2   

  56            };
  57          
  58          /********************************************************/
  59          /*                                                      */
  60          /* 主函数                                               */
  61          /*                                                      */
  62          /********************************************************/
  63          void  main(void)
  64          {
  65   1        uchar i,j,k;
  66   1        TMOD = 0x01;          //定时器T0工作方式1
  67   1        TH0 = 0xFC;           //1ms定时常数
  68   1        TL0 = 0x66;
  69   1        G_74138 = 1;          //关闭显示
  70   1        RCK_595=0;
  71   1        P2 =0xF0;             //
  72   1      
  73   1        IE = 0x82;            //允许定时器T0中断
  74   1        TR0 = 1;              //启动定时器T0
  75   1        while(1)
  76   1        {
  77   2           for(i=0;i<32;i++)         //黑屏
  78   2               {
  79   3                 dispram[i]= Bmp[0][i];
  80   3           }
  81   2               delay(1000);
  82   2      
  83   2           for(i=0;i<5;i++)         //上滚屏显示效果
  84   2                {
  85   3                 for(j=0;j<16;j++)
  86   3                  {
  87   4                        for(k=0;k<15;k++) 
  88   4                          {
  89   5                                dispram[k*BLKN]=dispram[(k+1)*BLKN];
  90   5                    dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];
  91   5                              }
  92   4                    dispram[30]=Bmp[i][j*BLKN];
  93   4                                dispram[31]=Bmp[i][j*BLKN+1];
  94   4                    delay(100);
  95   4               }
  96   3             }
  97   2                 delay(2000);
  98   2         }// end of while(1)
  99   1      }// end of main()
 100          
 101          /********************************************************/
 102          /*                                                      */
 103          /* 延时函数                                             */
 104          /*                                                      */
 105          /********************************************************/
 106          void  delay(uint dt)
 107          {
 108   1         uchar bt;
 109   1         for(;dt;dt--)
 110   1         for(bt=0;bt<255;bt++);
 111   1      }
 112           
 113          /********************************************************/
 114          /*                                                      */
 115          /*将显示数据送入74HC595内部移位寄存器                   */
 116          /*                                                      */
 117          /********************************************************/
C51 COMPILER V7.08   UP_MOVE                                                               12/20/2006 21:00:15 PAGE 3   

 118          
 119          void WR_595(void)
 120          {
 121   1           uchar x;
 122   1            for (x=0;x<8;x++)
 123   1           {
 124   2            temp=temp<<1; 
 125   2            SDATA_595=CY;
 126   2            SCLK_595=1;        //上升沿发生移位
 127   2             _nop_();
 128   2             _nop_();
 129   2            SCLK_595=0;
 130   2           }        
 131   1      }
 132           
 133          /********************************************************/
 134          /*                                                      */
 135          /* 中断服务函数                                         */
 136          /*                                                      */
 137          /********************************************************/ 
 138          void  leddisplay(void) interrupt 1 using 1
 139          {
 140   1         register unsigned char i,j=BLKN;
 141   1         TH0 = 0xFC;          //1ms定时常数
 142   1         TL0 = 0x66;
 143   1         i=P2;                //读取当前显示的行号
 144   1         i=++i & 0x0f;        //行号加1,屏蔽高4位
 145   1         do{
 146   2                j--;
 147   2            temp = dispram[i*BLKN+j];
 148   2            WR_595();
 149   2           }while(j);
 150   1         
 151   1         G_74138=1;          //关闭显示
 152   1         P2 &= 0xf0;         //行号端口清零
 153   1         RCK_595 = 1;        //上升沿将数据送到输出锁存器
 154   1         P2 |=i;             //写入行号
 155   1         RCK_595 = 0;        //锁存显示数据
 156   1         G_74138=0;          //打开显示
 157   1      }
 158          
 159          /********************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    284    ----
   CONSTANT SIZE    =    160    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     33       2
   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 + -