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

📄 anjian2.lst

📁 一个简单但功能丰富的开发板程序
💻 LST
字号:
C51 COMPILER V7.06   ANJIAN2                                                               11/05/2008 10:49:01 PAGE 1   


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

stmt level    source

   1          /*      应用范例 3 
   2                  标题:范例  3
   3                  版本:1.0//
   4                  Target:     STC89C52RC  
   5                  程序描述:这个程序说明如何利用延迟函数来判断按键的输入 .
   6          */           
   7          #include <reg51.h>
   8          #include <intrins.h>
   9          
  10          #define  TIMER0_COUNT 0xEE11 /*10000h-(12,000,000/(12*200))*/
  11          #define  TRUE           1
  12          #define  FALSE          0
  13          #define  TIMES          25
  14          
  15          #define uint unsigned int
  16          #define uchar unsigned char
  17          code seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  18          code bit_select[6] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
  19          char counter[3] = {0,0,0};
  20          uint x,y,z,a,b,c,d;
  21          sbit key1 = P3^0;
  22          sbit key2 = P3^1;
  23          sbit key3 = P3^2; 
  24          sbit key4 = P3^3;
  25          sbit FMQ = P3^4; 
  26          sbit JDQ = P3^5;
  27          uchar key1_state,key2_state,key3_state,key4_state,key1_flog;
  28          uchar flash,key_num,select,ups,downs;
  29          /******************************
  30          延迟子函数
  31          *******************************/
  32          /*
  33          void delay_400us(uchar i)
  34          {
  35                  uchar a,b;
  36                  for(a=i;a>0;a--)
  37                          for(b=100;b>0;b--)
  38                                  _nop_();
  39          }
  40          void delay(uchar i)
  41          {
  42                  while(i)
  43                  i--;
  44          }
  45          */
  46          void timer0_init(void)
  47          {
  48   1        EA=0;
  49   1        TR0=0;
  50   1        TMOD &= 0xF0;
  51   1        TMOD |=0x01;
  52   1        TL0=(TIMER0_COUNT & 0x00FF);
  53   1        TH0=(TIMER0_COUNT >> 8);
  54   1        PT0=0;
  55   1        ET0=1;
C51 COMPILER V7.06   ANJIAN2                                                               11/05/2008 10:49:01 PAGE 2   

  56   1        TR0=1;
  57   1        EA=1;
  58   1      }
  59          // 函数 timer0_isr 检查是否有按键按下 
  60          void timer0_isr(void) interrupt 1 
  61          {
  62   1        TR0=0;
  63   1        TL0=(TIMER0_COUNT & 0x00FF);
  64   1        TH0=(TIMER0_COUNT >> 8);
  65   1        TR0=1;
  66   1        
  67   1        if(select != 0){
  68   2            select--;
  69   2            if(select == 0 && key1 == 0)
  70   2                 key1_state++;
  71   2                 if(key1_state == 6)key1_state=0;
  72   2         }
  73   1         else if (key1 == 0)select=TIMES;
  74   1       
  75   1        if (ups !=0) {                //检查ups等于0吗?
  76   2            ups--;                    //如果ups不等于0,就将ups减1
  77   2            if (ups==0 && key2==0) {  //如果ups减到0,就检查P2_0==0
  78   3                 key_num++; // 如果P2_0是0就表示上数的弹跳按钮被按下,所以c加1
  79   3                 if(key_num==10) key_num=0;       //如果c加到10,就将c恢复为0
  80   3            }
  81   2        } 
  82   1        else if (key2 == 0) ups=TIMES;  //如果ups=0且P2_0=0就将ups设为25
  83   1        
  84   1        if (downs !=0) {                //检查downs等于0吗?
  85   2            downs--;              //如果downs不等于0,就将downs减1
  86   2            if (downs == 0 && key3 == 0){ //如果downs 减到0,就检查P2_1=0
  87   3                 key_num--;  // 如果P2_1是0就表示下数的弹跳按钮被按下,所以c减1
  88   3                 if(key_num==-1) key_num=9;      //如果c减到-1时,就将c恢复为10
  89   3            }
  90   2        } 
  91   1        else if (key3 == 0) downs=TIMES;  //如果downs=0且 P2_1 =0就将downs设为25
  92   1        
  93   1        P0 = seven_seg[key_num];
  94   1        P2 = bit_select[key1_state];
  95   1      }
  96          /************************************
  97                           主函数
  98          ********************************************/
  99          void main()
 100          {
 101   1              timer0_init();
 102   1              while(1);
 103   1      
 104   1              
 105   1      }
 106          
 107          
 108          
 109          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    177    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     27    ----
C51 COMPILER V7.06   ANJIAN2                                                               11/05/2008 10:49:01 PAGE 3   

   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 + -