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

📄 main1.lst

📁 这个程序能对按键计数
💻 LST
字号:
C51 COMPILER V7.06   MAIN1                                                                 01/28/2008 19:58:35 PAGE 1   


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

stmt level    source

   1          /************************************************************************************
   2          *  Copyright (c) 2008,重庆优易特电子
   3          *            All rights reserved.
   4          
   5          * 摘 要:    ENT键,按键计数,并将结果显示到数码管上
   6          
   7          * 文件名称: main.c
   8          * CPU芯片:  STC89C51RC
   9          * 学习板型: Easy51-B 
  10          *  
  11          * 当前版本: 2.0
  12          * 作 者:        cache
  13          * 完成日期: 2008年1月23日
  14          *
  15          编程思想:
  16                  定时器0用于数码管扫描,外部中断0(ENT键)进行按键计数,同时将结果更新的显示缓冲区中
  17          *************************************************************************************/
  18          #include "reg52.h"
  19          
  20          #define THCO   0xee
  21          #define TLCO   0x0
  22          
  23          unsigned char  code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  24          unsigned char  Data_Buffer[4]={0,0,0,0};
  25          
  26          unsigned int count=0;
  27          //从0值开始计数
  28          
  29          sbit P10=P1^0;  //数码管位码定义
  30          sbit P11=P1^1;
  31          sbit P12=P1^2;
  32          sbit P13=P1^3;
  33          
  34          void main()
  35          {       
  36   1              TMOD=0x11;
  37   1              TH0=THCO;       //定时器0用来扫描数码管显示
  38   1              TL0=TLCO;
  39   1              TR0=1;
  40   1              ET0=1;     
  41   1                              
  42   1              IT0=1;          //外部中断0,边沿触发方式
  43   1              EX0=1;
  44   1              EA=1;
  45   1      
  46   1              while(1);
  47   1      }
  48          
  49          void int0() interrupt 0
  50          {
  51   1        count++;              //有键按下,数值加1
  52   1        if(count>9999)count=0;
  53   1        Data_Buffer[0]=count/1000;
  54   1        Data_Buffer[1]=count%1000/100;
  55   1        Data_Buffer[2]=count%100/10;
C51 COMPILER V7.06   MAIN1                                                                 01/28/2008 19:58:35 PAGE 2   

  56   1        Data_Buffer[3]=count%10;
  57   1      }
  58          
  59          void timer0() interrupt 1
  60          {
  61   1       static unsigned char Bit=0;
  62   1      
  63   1       TH0=THCO;
  64   1       TL0=TLCO;
  65   1      
  66   1       Bit++;                 //数码管扫描显示
  67   1       if(Bit>=4)Bit=0;
  68   1       P1|=0x0f;
  69   1       P0=Duan[Data_Buffer[Bit]];
  70   1       switch(Bit)
  71   1       {
  72   2        case 0: P10=0;break;
  73   2        case 1: P11=0;break;
  74   2        case 2: P12=0;break;
  75   2        case 3: P13=0;break;
  76   2       }              
  77   1      }


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