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

📄 text1.lst

📁 人体反应速度测试仪(测按键反应速度) P2,P3分别接的数码管做为十位和个位。 P1.0与按键相接于GND. P1.1接发光二极管做为指示灯
💻 LST
字号:
C51 COMPILER V6.23a  TEXT1                                                                 11/06/2008 23:43:19 PAGE 1   


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

stmt level    source

   1          /*            反应速度测试仪
   2          
   3          P2,P3分别接的数码管做为十位和个位。
   4          P1.0与按键相接于GND.
   5          P1.1接发光二极管做为指示灯,管脚低电平时亮
   6          定时器0工作于方式2,自动重装,按键后取随机数
   7          定时器1工作于方式1,计算反应时间,晶振为11.0592*/
   8          
   9          
  10          #include <reg51.h>//51单片机头文件
  11          #define uchar unsigned char//宏定义,用uchar 代表 usigned char(无符号字符型数据)
  12          #define uint unsigned int
  13          #define ulong unsigned long
  14          sbit P10=P1^0;//用P10表示P1口第0个管脚
  15          sbit P11=P1^1;
  16          uchar count;//全局变量,标记定时器溢出多少次
  17          uchar code LED[]={0x3f,0x06,0x5b,0x4f,0x66,
  18                      0x6d,0x7d,0x07,0x7f,0x6f,0x00};//这些数组放到数码管里就显示0-9,全灭全亮
  19           //LED[10]表示LED数组的第10个数。数码管为共阴极,管脚高电平对应数码管的一位亮起
  20                            
  21          
  22          
  23          void delay(ulong n)//延时子程序
  24          {       
  25   1              uint m;//定义m 为无符号整型变量
  26   1              for(m=0;m<30000;m++); //单片给m做加一运算,直到m<30000,其实就是延时去除
  27   1                              //按键抖动,因为此延时是检测到按键后立即执行,键其实依然被按着
  28   1              while(n--)//当n大于0时下面的语句循环
  29   1              {
  30   2                      if(P10==0)//P10接的是一个按键,当P10==0时,说明键被按下
  31   2                      {
  32   3                              P2=LED[10];
  33   3                              P3=LED[10];//说明用户在发光二极管未亮时按下键,数码管显示全灭
  34   3                      }
  35   2              }
  36   1      }
  37          
  38          
  39          
  40          void main()//主函数
  41          {
  42   1              uchar i,j,k;
  43   1              uint x;
  44   1              TMOD=0x12;//定时器1工作于方式1,//定时器0工作于方式2
  45   1              TH0=0;TL0=0;//定时器0计数初值,定时器0用于是产生随机数
  46   1              TH1=0xdc;TL1=0;//定时器1计数初值 
  47   1              TR0=0;//开启定时器0
  48   1              EA=1;//开启总中断
  49   1              ET1=1;//开启定时器1中断
  50   1      
  51   1      while(1)//实际程序总是在这里循环
  52   1      {
  53   2              TR1=0;//关闭定时器1
  54   2              TH1=0xdc;TL1=0;//重置定时器1计数初值
  55   2              while(1)//以下语v句循环
C51 COMPILER V6.23a  TEXT1                                                                 11/06/2008 23:43:19 PAGE 2   

  56   2              {
  57   3                      P2=LED[10];P3=LED[10];//P2,P3分别接的十位和个位,现在全灭
  58   3                      if(P10==0)//如果键被按下
  59   3                      {
  60   4                              x=TL0;//取随机数
  61   4                              P2=LED[0];P3=LED[0];//十位和个位显示00
  62   4                              break;//跳出while循环,不仅仅是跳出if
  63   4                      }
  64   3              }
  65   2              delay(3000*(30+50*x));//根据随机数来延时
  66   2              P11=0;//P11接的是一个发光二极管,低电平亮
  67   2              TR1=1;//开启定时器1,开始计算用户反应时间
  68   2              while(1)//循环
  69   2              {
  70   3              if(P10==0)break;//用户反应过来了。
  71   3              }
  72   2              k=count%100;//对count求100的余,赋值给k
  73   2              i=k/10%10;//十位
  74   2              j=k%10;//个位
  75   2              P2=LED[i];P3=LED[j];//显示十位和个位,即用户反应时间
  76   2              for(x=0;x<65000;x++);//让用户看一下他的反应时间
  77   2              P11=1;count=0;//灭灯,清0
  78   2      }
  79   1      }
  80          
  81          
  82          
  83          void timer1() interrupt 3 //中断服务程序
  84          {       
  85   1              TH1=0xdc;
  86   1              TL1=0;//重新赋值
  87   1              count++;//每10ms 溢出一次,count 加一
  88   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    234    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       6
   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 + -