3138|4

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

菜鸟 基于单片机的红外线心率计c程序对吗?敬请大侠指教!!!! [复制链接]


#include
#include
#include
#define uint unsigned int   
#define uchar unsigned char
#define ulong unsigned long
#define key P3_4//s3            
#define signal P1_3         
#define sw P1_6//开关            
#define baiwei P2_5         
#define shiwei P2_6         
#define gewei P2_7                    
#define lamp1 P1_7         
code uchar TABLE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极
                           
uint num;                  
bit flag=1;                 



void chushi(void)
{
        lamp1=1;
    TMOD=0x11;//16位计数
    TL0=0xDF;
    TH0=0xB1;
    TH1=0x3C;
    TL1=0xAF;
    IE=0x8A;
    IP=0x08;
    TR0=1;
        TR1=1;
}





void delay1ms(uint count)
    {
     int m,n;
     for(m=0;m          for(n=0;n<60;n++)
         ;
    }






void timer0() interrupt 1//5ms扫描一次
{
    uchar ge,shi,bai;

    TL0=0xDF;
    TH0=0xB1;

        ge=num%10;
    shi=(num/10)%10;
    bai=num/100;

        shiwei=1;
        baiwei=1;
        P0=TABLE[ge];
        gewei=0;
        delay1ms(1);


        gewei=1;
        baiwei=1;
        P0=TABLE[shi];
        shiwei=0;
        delay1ms(1);

        gewei=1;
        shiwei=1;
        P0=TABLE[bai];
        baiwei=0;
        delay1ms(1);
       
}






void timer1() interrupt 3//一分钟计时
    {

        uchar i,j;
        TL1=0xAF;
    TH1=0x3C;
   
    i++;

    if(i==20)
      {
       i=0;
           j++;
           if(j==60)
             {
              j=0;
                  flag=0;
             }
      }       
        }






void celiang(void)
{
   num=0;
   while(sw==1)
   {     
      if(key==0)
      {
        while(flag==1)
        {
             TR1=1;
             lamp1=0;

         if(signal==1) delay1ms(20);
         if(signal==1) num++;
         if(signal==0) delay1ms(20);

        }
        while(flag==0)
        {
             TR1=0;
             lamp1=1;

             if(key==0)
                   {
                    flag=1;
                num=0;
                        delay1ms(500);
                        }
            }
      }
   }
   while(sw==0)
   {
        num=0700308103;
   }          
}






void main(void)
{
    chushi();
    num=888;
        delay1ms(500);
    while(1)
        {
        celiang();
        }          
}

最新回复

这样长的程序,要自己去分析,遇到难搞定的问题再来求助,不要把全部程序贴上来  详情 回复 发表于 2009-6-25 16:13
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没硬件,很难看的懂的。
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
学习下。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
更要命的是连注释都少...
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
这样长的程序,要自己去分析,遇到难搞定的问题再来求助,不要把全部程序贴上来
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表