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

📄 main.lst

📁 心率计C程序代码3位数码管显示心跳频率 键盘切换显示学号或开始计数
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  12/20/2008 10:09:30 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil3\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------//
   2          //单片机心律计C51程序---2008-11-11---by tjx------------------------------------//
   3          //-----------------------------------------------------------------------------//
   4          
   5          //-----------------------------------------------------------------------------//
   6          //定义各个接口-----------------------------------------------------------------//
   7          //-----------------------------------------------------------------------------//
   8          #include <AT89X52.H>
   9          #include<absacc.h>
  10          #include<INTRINS.h>
  11          #define uint unsigned int   //定义一下方便编程
  12          #define uchar unsigned char //定义一下方便编程
  13          #define ulong unsigned long //定义一下方便编程
  14          #define key P3_4            //定义启动按牛口
  15          #define signal P1_3         //定义信号输入口
  16          #define sw P1_6             //定义拨动开关口
  17          #define baiwei P2_5         //定义百位驱动口
  18          #define shiwei P2_6         //定义十位驱动口
  19          #define gewei P2_7          //定义个位驱动口
  20          #define lamp0 P2_0          //定义灯一驱动口
  21          #define lamp1 P1_7          //定义灯二驱动口
  22          #define SEGDATA P0          //定义七段译码输出口
  23          code uchar datab[11]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x3F};
  24                                      //定义共阳极七段译码值
  25          uint num=0,i=0;             //定义心律计数值
  26          uchar ge,shi,bai;
  27          bit flag=0;                 //定义时间标志位
  28          //-----------------------------------------------------------------------------//
  29          //定义完毕---------------------------------------------------------------------//
  30          //-----------------------------------------------------------------------------//
  31          
  32          //-----------------------------------------------------------------------------//
  33          //单片机初始化函数-------------------------------------------------------------//
  34          //-----------------------------------------------------------------------------//
  35          void mcuint(void)
  36           {
  37   1          lamp0=1;
  38   1              lamp1=1;
  39   1          TMOD=0x11;
  40   1          TL0=0x3C;
  41   1          TH0=0xF6;
  42   1          TL1=0xB0;
  43   1          TH1=0x3C;
  44   1          IE=0x8A;
  45   1          IP=0x08;
  46   1          TR0=1;
  47   1       }
  48          //-----------------------------------------------------------------------------//
  49          //函数完毕---------------------------------------------------------------------//
  50          //-----------------------------------------------------------------------------//
  51          
  52          //-----------------------------------------------------------------------------//
  53          //延时1ms的函数----------------------------------------------------------------//
  54          //-----------------------------------------------------------------------------//
  55          void delay1ms(uint count)
C51 COMPILER V8.08   MAIN                                                                  12/20/2008 10:09:30 PAGE 2   

  56              { 
  57   1           int m,n;
  58   1           for(m=0;m<count;m++)
  59   1               for(n=0;n<59;n++)
  60   1               ;
  61   1          }
  62          //-----------------------------------------------------------------------------//
  63          //函数完毕---------------------------------------------------------------------//
  64          //-----------------------------------------------------------------------------//
  65          
  66          //-----------------------------------------------------------------------------//
  67          //T0中断服务函数,作用是每5ms扫描一次数码管------------------------------------//
  68          //-----------------------------------------------------------------------------//
  69          void timer0() interrupt 1
  70           {
  71   1          TL0=0x3C;
  72   1          TH0=0xF6;
  73   1      
  74   1              ge=num%10;
  75   1          shi=(num/10)%10;
  76   1          bai=num/100;
  77   1      
  78   1              shiwei=1;baiwei=1;
  79   1              SEGDATA=datab[ge];
  80   1              gewei=0;
  81   1              delay1ms(1);
  82   1      
  83   1              gewei=1;baiwei=1;
  84   1              SEGDATA=datab[shi];
  85   1              shiwei=0;
  86   1              delay1ms(1);
  87   1      
  88   1              gewei=1;shiwei=1;
  89   1              SEGDATA=datab[bai];
  90   1              baiwei=0;
  91   1              delay1ms(1);
  92   1              baiwei=1;
  93   1       } 
  94          //-----------------------------------------------------------------------------//
  95          //函数完毕---------------------------------------------------------------------//
  96          //-----------------------------------------------------------------------------//
  97          
  98          //-----------------------------------------------------------------------------//
  99          //T1中断函数,作用是一分钟计时,时间到置标志位为1,lamp0用于检测T1是否工作-----//
 100          //-----------------------------------------------------------------------------//
 101          void timer1() interrupt 3
 102              {
 103   1              TL1=0xB0;
 104   1          TH1=0x3C;
 105   1          i++;
 106   1              lamp0=~lamp0;
 107   1          if(i==600)   
 108   1            {i=0;flag=1;}     
 109   1              }
 110          //-----------------------------------------------------------------------------//
 111          //函数完毕---------------------------------------------------------------------//
 112          //-----------------------------------------------------------------------------//
 113          
 114          
 115          //-----------------------------------------------------------------------------//
 116          //测量心律函数-----------------------------------------------------------------//
 117          //-----------------------------------------------------------------------------//
C51 COMPILER V8.08   MAIN                                                                  12/20/2008 10:09:30 PAGE 3   

 118          void celiang(void)
 119          {
 120   1         num=0;
 121   1         while(sw==1) 
 122   1         {     
 123   2            if(key==0)
 124   2            {
 125   3              TR1=1;
 126   3                  lamp1=0;
 127   3              while(flag==0)
 128   3              {
 129   4               while(signal)  ;
 130   4                       while(~signal) ;
 131   4                       if(signal==1) delay1ms(20);
 132   4                       if(signal==1) num++;
 133   4               delay1ms(50);
 134   4              }
 135   3              while(flag==1)
 136   3              {
 137   4                   TR1=0;
 138   4                   lamp1=1;
 139   4                   if(key==0)
 140   4                         {
 141   5                          flag=0;
 142   5                      num=0;
 143   5                              delay1ms(400);
 144   5                              }
 145   4                  }
 146   3            }
 147   2         }
 148   1         while(sw==0)
 149   1         {
 150   2              num=123;
 151   2         }      
 152   1      }
 153          //-----------------------------------------------------------------------------//
 154          //函数完毕---------------------------------------------------------------------//
 155          //-----------------------------------------------------------------------------//
 156          
 157          //-----------------------------------------------------------------------------//
 158          //主函数,开机初始化单片机,并显示2s的888,用于检测笔画是否接正确--------------//
 159          //-----------------------------------------------------------------------------//
 160          void main(void)
 161          { 
 162   1          mcuint();
 163   1          num=888;
 164   1              delay1ms(400);
 165   1          while(1)
 166   1              {
 167   2              celiang();
 168   2              }         
 169   1      }
 170          //-----------------------------------------------------------------------------//
 171          //主函数完毕-------------------------------------------------------------------//
 172          //-----------------------------------------------------------------------------//


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    375    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V8.08   MAIN                                                                  12/20/2008 10:09:30 PAGE 4   

   DATA SIZE        =      7    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -