• 大小: 490KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: AT89C51  

资源简介

论文加上程序都挺有,稍微修改一下就业应用了。

资源截图

代码片段和文件信息

#include
#define uchar unsigned char
#define uint unsigned int

#define tube P2 
sbit pulse=P3^4;
sbit led_r=P3^7;

uchar code led[]={0xC00xF90xA40xB00x990x920x820xF80x800x90};  //  0~9 共阳
uchar data sec;    //  索引值0——>led[0]
uchar count;
static uchar temp;
static uchar last;
uchar time=60; //60s 一分钟测脉搏
uchar cntiflag;

void Delay(uint i)//小于中断时间间隔50ms
{

  uchar abc;
   for(a=0;a    for(b=0;b<10;b++)
     for(c=0;c<248;c++);  
}
void LedScan(uint t)   //数码管显示
{
   tube=0x80;   //1管
    P0=led[last/10] ;
    Delay(t);
tube=0;
    tube=0x40;          //2管
P0=led[last%10] ;
    Delay(t);
tube=0;

tube=0x10;   //4管
    P0=led[temp/10] ;
    Delay(t);
tube=0;
    tube=0x08;          //5管
P0=led[temp%10] ;
    Delay(t);
tube=0;
   
    tube=0x02; //7管
    P0=led[sec/10] ;
    Delay(t);
tube=0;
    tube=0x01;        //8管
P0=led[sec%10] ;
    Delay(t);
tube=0;

}

void Freq()  //显示脉搏
{
last=temp;
temp=P1;
TL0=0;
}
void Int0()interrupt 1
{
 sec=0;
 count=0;
 cnt=0; 
 led_r=1;
 TL0=0;
 TR0=1;     //启动定时器T0 
 TR1=1;     //启动定时器T   
 flag=1;

}
void Time1Int()interrupt 3 using 2
{
  if(flag)
  {
  count++;
  LedScan(1);
  if(count==20)
  {
    sec++;   
if(sec==time)
 {
Freq();
flag=0;
led_r=0;
  TR0=0;
 }
  count=0;
}

  }
  else LedScan(1); 
     
}
void main()
{   
    EA=1;     //打开总中断允许
 
EX0=1; //允许使用外中断
IT0=1; //选择负跳变来触发外中断

    TMOD=0x17; //T1定时器  T0计数器    //TMOD D7  D6  D5  D4  D3  D2  D1  D0
TH0=0;     //定时器T0的高8位赋初值  // GATE C/T  M1  M0 GATE C/T M1  M0
    TL0=0;     //定时器T0的高8位赋初值  //   0    0   0  1    0   1  1   0

IP=0x01; 
ET1=1;     //定时器T1中断允许
  TH1=0x3c;  //定时器T1的高8位赋初值   装载50ms
TL1=0xb0;  //定时器T1的高8位赋初值



    while(1)            //无限循环等待查询
{      
while(TF0==0) //如果未计满就等待
    {
       if(pulse==0)  //电平为0;
      P1=TL0;       //计数器TL0加1后送P1口显示

TF0=0;        //计数器溢出后,将TF0清0         
 


   }
 }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-12-09 22:54  课程设计\
     目录           0  2014-11-18 13:47  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\
     文件      118468  2012-12-31 18:52  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\Last Loaded TimeCounter .DBK
     文件        6419  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter
     文件      129947  2012-12-31 22:14  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter .DSN
     文件        5597  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter .LST
     文件        7182  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter .OBJ
     文件         846  2014-11-18 13:46  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter .PWI
     文件        2226  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter .c
     文件        8861  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.M51
     文件        1341  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.hex
     文件          40  2012-12-31 22:19  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.lnp
     文件        6706  2012-12-31 22:33  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.plg
     文件      104004  2012-12-31 22:33  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.uvgui.Administrator
     文件      100694  2012-12-31 21:30  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.uvgui_Administrator.bak
     文件        5603  2012-12-31 22:33  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.uvopt
     文件       13246  2012-04-16 18:29  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter.uvproj
     文件        5599  2012-12-31 21:30  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter_uvopt.bak
     文件       13027  2012-04-16 13:53  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\TimeCounter_uvproj.bak
     文件     1753434  2012-12-31 22:30  课程设计\基于AT89C51单片机的智能脉搏测试仪设计\说明.bmp
     文件      489046  2014-12-09 22:54  课程设计\基于AT89C51单片机的智能脉搏测试仪设计.doc

评论

共有 条评论