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

📄 text1.lst

📁 能用三位数来显示在一分钟内脉搏的跳动次数
💻 LST
字号:
C51 COMPILER V6.12  TEXT1                                                                  02/05/2006 15:29:06 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN .\Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\Text1.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          unsigned char i,j,t,m,DelayTime,DispBuf[3];
   3          //单片机脉搏测量仪源程序
   4          //作者:吴汉清 ntwhq@tom.com
   5          unsigned int n,mb;
   6          unsigned char code
   7          BitTab[3]={0xf7,0xef,0xdf};//位驱动码
   8          unsigned char code
   9          DispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//字形码
  10          sbit P3_0=P3^0;
  11          void delay(DelayTime);
  12          main()         //主程序
  13          {	
  14   1      	TMOD=0x01;	//定时器T0工作于方式1
  15   1      	TH0=0xec;
  16   1      	TL0=0x78;	//T0定时时间为5ms
  17   1      	IE=0X83; 	//开中断
  18   1      	IT0=1;   	//外部中断0为边沿触发方式
  19   1      	TR0=1;   	//开定时器T0
  20   1      	for(;;)  	//脉搏指示灯控制
  21   1      	{	
  22   2      		if(P3_0==0)
  23   2      		{
  24   3      			delay(200);
  25   3      			P3_0=1;
  26   3      		}
  27   2      	}
  28   1      }
  29          external0() interrupt 0//外部中断服务程序
  30          {
  31   1      	P3_0=0;          //点亮指示灯
  32   1      	if(n==0)
  33   1      	mb=0;
  34   1      	else
  35   1      	mb=12000/n;      //计算每分钟脉搏数
  36   1      	DispBuf[2]=mb%10;//取个位数
  37   1      	mb=mb/10;
  38   1      	DispBuf[1]=mb%10;//取十位数
  39   1      	DispBuf[0]=mb/10;//取百位数
  40   1      	n=0;
  41   1      }
  42          Timer0() interrupt 1//定时中断服务程序
  43          {	
  44   1      	TH0=0xec;
  45   1      	TL0=0x78;
  46   1      	t=BitTab[j];//取位值
  47   1      	P3=P3|0x38;//P3.3-P3.5送1
  48   1      	P3=P3&t;   //P3.3-P3.5输出取出的位值
  49   1      	t=DispBuf[j];//取出待显示的数
  50   1      	t=DispTab[t];//取字形码
  51   1      	P1=t; //字型码由P3输出显示
  52   1      	j++;  //j作为数码管的计数器,取值0-2,显示程序通过它确认显示哪个数码管
  53   1      	if(j==3)
  54   1      	j=0;
  55   1      	n++;
C51 COMPILER V6.12  TEXT1                                                                  02/05/2006 15:29:06 PAGE 2   

  56   1      	if(n==2000)//10秒钟测不到心率,n复位
  57   1      	n=0;
  58   1      }
  59          void delay(DelayTime)//延时子程序
  60          {
  61   1      	for(;DelayTime>0;DelayTime--)
  62   1      	{
  63   2      		for(i=0;i<250;i++)
  64   2      			;
  65   2      	}
  66   1      }


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