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

📄 main.lst

📁 使用isis模拟的红外编解码实验
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  02/08/2009 11:41:36 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(4,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*红外遥控器解码仿真*/
   2          /*作者:田开坤*/
   3          /*时间:2009年2月*/
   4          
   5          #include <reg52.h>
   6          #include "irm_int.h"   
   7          
   8          extern void led_disp(unsigned int number);
   9          
  10          /*数码管地址定义*/
  11          #define SEG_Q XBYTE[0xffec]//千位,LEFT
  12          #define SEG_B XBYTE[0xffed]//百位
  13          #define SEG_S XBYTE[0xffee]//十位
  14          #define SEG_G XBYTE[0xffef]//个位,RIGHT
  15          
  16          void main()
  17          {       
  18   1              irm_int2_init();
  19   1              led_disp(2009);
  20   1      
  21   1              while(1)
  22   1                      if(irm_code!=0xff) {
  23   2                              led_disp(irm_code);
  24   2                              irm_code=0xff;
  25   2                      }       
  26   1      }
  27          
  28          //通用数码管显示函数,传入数据0~9999
  29          void led_disp(unsigned int number)
  30          {
  31   1              unsigned char code tab1[20]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
  32   1              unsigned char temp,flag=0;
  33   1      
  34   1              if(number < 10000)
  35   1              {               
  36   2                      //千位数码管
  37   2                      temp = number/1000%10;
  38   2                      if (temp) {
  39   3                              SEG_Q = tab1[temp];
  40   3                              flag = 1;       
  41   3                      }
  42   2                      else {
  43   3                              SEG_Q = 0xff;//数码管熄灭
  44   3                              flag = 0;       
  45   3                      }
  46   2      
  47   2                      //百位数码管
  48   2                      temp = number/100%10;   
  49   2                      if(flag | temp) {
  50   3                              SEG_B = tab1[temp];
  51   3                              flag = 1;       
  52   3                      }
  53   2                      else {
  54   3                              SEG_B = 0xff;//数码管熄灭
  55   3                              flag = 0;       
C51 COMPILER V8.02   MAIN                                                                  02/08/2009 11:41:36 PAGE 2   

  56   3                      }                                       
  57   2                      
  58   2                      //十位数码管
  59   2                      temp = number/10%10;
  60   2                      if(flag | temp) SEG_S = tab1[temp];             
  61   2                      else SEG_S = 0xff;//数码管熄灭          
  62   2                      
  63   2                      //个位数码管
  64   2                      temp = number%10;       
  65   2                      SEG_G = tab1[temp];
  66   2              }
  67   1              else {
  68   2                      SEG_Q = 0xbf;//"-"
  69   2                      SEG_B = 0xbf;
  70   2                      SEG_S = 0xbf;
  71   2                      SEG_G = 0xbf;   
  72   2              } 
  73   1      }
  74          


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