找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1409|回复: 1
打印 上一主题 下一主题
收起左侧

心率测试仪程序

[复制链接]
跳转到指定楼层
楼主
ID:464263 发表于 2019-1-8 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;
unsigned char i=0;timecount=0;displayOK=0,rate=0,aa=0;
unsigned int time[6]={0};
uchar code table[]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
void DelayMs(unsigned int z)
{
   unsigned int x;
   for(;z>0;z--)
    for(x=110;x>0;x--);
}
void display(uchar bai,uchar shi,uchar ge)
{
   wei1=0;
   P0=bai;
   DelayMs(1);
   wei1=1;
   P0=0xff;
   
   
   wei2=0;
   P0=shi;
   DelayMs(1);
   wei2=1;
   P0=0xff;
   
   
   wei3=0;
   P0=ge;
   DelayMs(1);
   wei3=1;
   P0=0xff;
}

void main()
{
        TCON=0x01;
                EX0=1;
                TMOD=0X01;
                TH0=(65536-50000)/256;
                TL0=(65536-50000)%256;
                ET0=1;
               
            TR0=0;
                EA=1;
                while(1)
                {
                       if(displayOK==1)
                           {
                                   rate=60000/(time[1]/5+time[2]/5+time[3]/5+time[4]/5+time[5]/5);
                                           while(1)display(table[rate/100],table[rate/10%10],table[rate%10]);
                           }
                                        DelayMs(300);
                }
}
                                       
                                        void ex0() interrupt 0
                                        {
                                            EX0=0;
                                                 if(timecount<8)
                                                 {
                                                                     TR0=1;
                                                 }
                                                 else
                                                 {
                                                      time[i]=timecount*50+TH0*0.256+TL0/1000;
                                                          TL0=(65536-50000)%256;
                                                          TH0=(65536-50000)/256;
                                                          timecount=0;
                                                          i++;
                                                          if(i==6)
                                                          {
                                                               i=1;
                                                                   displayOK=1;
                                                         }
                }
                EX0=1;
}

void et0() interrupt 1
{
    TL0=(65536-50000)%256;
    TH0=(65536-50000)/256;
        timecount++;
        if(timecount>25)
        {
           i=0;
           timecount=0;
           displayOK=0;
           TR0=0;
           TH0=0;
           TL0=(65536-50000)%256;
           TH0=(65536-50000)/256;
  }
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-1-8 15:20 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表