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

📄 数码显示.lst

📁 基于C51的串口通信和外部中断
💻 LST
字号:
C51 COMPILER V7.06   数码_允_                                                              09/25/2008 16:48:12 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 数码_允_
OBJECT MODULE PLACED IN 数码显示.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 数码显示.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //************************************************************************
   2          //    File       : SY_002.c
   3          //    Date       : 2008-08-19    
   4          //    Version    : 1.3  
   5          //    Powerd by  : shenyae86  QQ:184676957
   6          //    modify by  :
   7          //*************************************************************************
   8          //    Descriptoon:                                                              
   9          //                 数码管显示程序  显示2008 采用中断扫描模式
  10          //                 适用于CC200A                           
  11          //                                 被注释的程序可以使用于非译码器选通的数码管扫描(共阳极)
  12          //                 产品网站    http://www.sxcckj.com  传诚科技
  13          //    help:
  14          //                 参见实验指导书                                                                    
  15          //*************************************************************************
  16          #include <reg51.h>
  17          #include <intrins.h>
  18          unsigned char data dis_index;
  19          unsigned char code dis_code[]={        
  20                                                              0xC0,/*0*/                  
  21                                                      0xA4,/*2*/         
  22                                                          0x80,/*8*/}     ;         
  23          unsigned char data dis_buf[4];
  24          
  25          void main()
  26          {
  27   1              P0 = 0xff;
  28   1              P2 = 0xff;
  29   1              TMOD = 0x01;
  30   1              TH0 = 0xFC;
  31   1              TL0 = 0x17;
  32   1              IE = 0x82;
  33   1              dis_buf[0] = dis_code[0x1];
  34   1              dis_buf[1] = dis_code[0x0];
  35   1              dis_buf[2] = dis_code[0x0];
  36   1              dis_buf[3] = dis_code[0x2];
  37   1          dis_index = 0;      
  38   1              TR0 = 1;
  39   1              while(1);
  40   1      }
  41          
  42          void timer0() interrupt 1
  43          // 定时器0中断服务程序, 用于数码管的动态扫描
  44          // dis_index --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量
  45          // 选通P2.0口数码管
  46          // dis_buf   --- 显于缓冲区基地址       
  47          {
  48   1              unsigned char i;
  49   1              TH0 = 0xfc;
  50   1                  TL0 = 0x17;
  51   1                  P2 = 0xff;                                                // 先关闭所有数码管
  52   1                      P2= _crol_(0xfe,i);                       // 位选通值左移, 下次中断时选通下一位数码管
  53   1                  P0 = dis_buf[dis_index];              // 显示代码传送到P0口
  54   1              dis_index++;
  55   1              i++;
C51 COMPILER V7.06   数码_允_                                                              09/25/2008 16:48:12 PAGE 2   

  56   1                  i&=0x3;                               // 移了四位以后重新从第一位移位
  57   1              dis_index &= 0x03;                                // 4个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描
  58   1      }
  59          
  60          ///////////////////程序结束///////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    108    ----
   CONSTANT SIZE    =      3    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       1
   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 + -