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

📄 display.lst

📁 51系列单片机实验课程:串口 (通过计算机与试验箱相连
💻 LST
字号:
C51 COMPILER V7.06   DISPLAY                                                               12/06/2007 09:43:12 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*****************************************************
   2          激情创造,精彩无限-------欢迎进入单片机的世界
   3          *****************************************************/
   4          /*****************************************************
   5          程序说明:本程序是总线上扩展I/O口,完成动态扫描显示程序
   6          硬件连接:总线连接方式,四联共阳数码管段码端573地址为
   7                           0xd000,位选端573地址为0xc000。
   8          程序版本:
   9          作者:ZJ
  10          编写时间:2007年12月5日
  11          修改记录:
  12          备注:
  13          *****************************************************/
  14          
  15          /*包含头文件*/
  16          #include <reg52.h>
  17          #include <absacc.h>
  18          
  19          /*定义数码管段码和位选码*/
  20          code unsigned char LedCode[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  21          code unsigned char Posit[] = {0x08,0x04,0x02,0x01};
  22          
  23          unsigned char DisBuf[4];                        //定义显存空间
  24          unsigned char sts,loopnum = 4;
  25          
  26          /**********************************************
  27          函数名称:Delay()
  28          函数功能:实现一短暂的延时,时间长短由入口参数决定
  29          入口参数:unsigned char
  30          出口参数:void
  31          备注:
  32          **********************************************/
  33          void Delay (unsigned int Dat)
  34          {
  35   1              unsigned int i;
  36   1              for(i=0;i<Dat;i++);
  37   1      }
  38          
  39          /**********************************************
  40          函数名称:Disbufchange()
  41          函数功能:实现移位显存的功能,将入口参数送入显存最后一位,其余的显存内容依次左移一位
  42          入口参数:unsigned char
  43          出口参数:void
  44          备注:
  45          **********************************************/
  46          void Disbufchange (unsigned char Da)
  47          {
  48   1              DisBuf[0] = DisBuf[1];
  49   1              DisBuf[1] = DisBuf[2];
  50   1              DisBuf[2] = DisBuf[3];
  51   1              DisBuf[3] = Da;
  52   1      }
  53          
  54          /*********************************************
  55          函数名称:Display()
C51 COMPILER V7.06   DISPLAY                                                               12/06/2007 09:43:12 PAGE 2   

  56          函数功能:显示显存中的四个数据
  57          入口参数:void
  58          出口参数:void
  59          备注:
  60          *********************************************/
  61          void Display (void)
  62          {
  63   1              unsigned char n;
  64   1              for (n=0;n<4;n++)                                                       //显示4个数据
  65   1              {
  66   2                      XBYTE[0xd000] = LedCode[DisBuf[n]];             //将显存中的数据送入数码管段码端
  67   2                      XBYTE[0xc000] = Posit[n];                               //将对应该显存的数码管点亮
  68   2                      Delay(200);                                                             //显示延时
  69   2                      XBYTE[0xc000] = 0x00;                                   //消隐
  70   2              }
  71   1      }
  72          
  73          /*********************************************
  74          函数名称:main()
  75          函数功能:
  76          入口参数:void
  77          出口参数:void
  78          备注:
  79          *********************************************/
  80          void main (void)
  81          {
  82   1              unsigned char i;
  83   1              TMOD = (TMOD & 0xf0) | 0x10;    //设置定时/计数器T1工作于方式1
  84   1              TL1 = (-50000);                                 //设定定时/计数器初值
  85   1              TH1 = (-50000) >> 8;                    //定时50ms
  86   1              TR1 = 1;                                                //启动定时器
  87   1              ET1 = 1;                                                //开启定时器T1中断
  88   1              EA = 1;                                                 //开启总的中断
  89   1              for (i=1;i<5;i++)                               //预置数1234入显存
  90   1              {
  91   2                      Disbufchange(i);
  92   2              }
  93   1              while(1)
  94   1              {
  95   2                      Display();                                      //循环显示
  96   2              }
  97   1      }
  98          
  99          /*********************************************
 100          函数名称:定时/计数器T1中断服务程序
 101          函数功能:实现每一秒移位一次
 102          入口参数:void
 103          出口参数:void
 104          备注:
 105          *********************************************/
 106          void T1_int (void) interrupt 3
 107          {
 108   1              TL1 = (-50000);                                 //重新赋初值
 109   1              TH1 = (-50000) >> 8;
 110   1              if (++sts >= 20)                                //判断一秒时间是否到达
 111   1              {
 112   2                      if (++loopnum >= 10)            //判断移位数据是否超过10
 113   2                              loopnum = 0;
 114   2                      Disbufchange(loopnum);          //移位显存空间里的内容
 115   2                      sts = 0;
 116   2              }
 117   1      }
C51 COMPILER V7.06   DISPLAY                                                               12/06/2007 09:43:12 PAGE 3   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    154    ----
   CONSTANT SIZE    =     14    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   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 + -