找回密码
 注册
关于网站域名变更的通知
查看: 264|回复: 1
打印 上一主题 下一主题

单片机脉搏测量仪仪仿真加程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-14 09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
单片机脉搏测量仪仪仿真加程序( x+ y0 |2 K6 ^) m

* \/ \) S' ]( c6 B( e8 n: v

/ ~, ?& J; v! \& p0 }4 R51单片机座的脉搏测量仪proteus仿真加程序分享,带工程文件  K! P1 W! ^7 G8 y: a2 _+ |

6 a1 Q7 c2 m8 J. b仿真原理图:
" @5 @& g. f( D" P2 c 1 [* ^; }- v$ J$ x9 m0 Z

4 D3 p  n6 j* J0 N& V8 W
$ X3 u- t- ]0 S3 K+ E0 d源程序:

; C' c' P& S/ a: ]' N( I* F3 \/ W/ Q" {- ?
$ j$ E. U) p0 J& K  c: I) |. P; |! b

7 w% k# i' [8 C" n  O

! b* p" h/ A5 |#include <reg51.h>
+ O0 c5 |  z: c. L" Dunsigned char i,j,t,m,DelayTime,DispBuf[3];6 S- M$ S1 g9 z  ?
//单片机脉搏测量仪源程序0 G. I/ M7 X5 p+ I, R
//作者:吴汉清 ntwhq@tom.com9 ]7 \& t; _( u* l
unsigned int n,mb;4 P. Y  D1 W/ V: J" Y; A: R- W
unsigned char code6 u) U7 _- ?0 I5 o6 y6 p
BitTab[3]={0xf7,0xef,0xdf};//位驱动码+ E# E) m7 T; j! u0 s! N) ?
unsigned char code! D9 y" c' J, C3 t: F. g3 v) z
DispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//字形码
8 I6 j0 [& q1 a1 W" s! Bsbit P3_0=P3^0;
- _( O5 s2 R0 ~6 T9 avoid delay(DelayTime);
; W" h1 N6 u. w* _! t( smain()         //主程序
& z" I) h* s1 e8 p3 N! r/ z{        
% K& l: N5 q( @" e        TMOD=0x01;        //定时器T0工作于方式1. X7 m/ C+ H; l, ~  A3 L
        TH0=0xec;
$ A3 @. h. b$ G        TL0=0x78;        //T0定时时间为5ms
7 Y; `) t- M* _# o        IE=0X83;         //开中断; \% v( h" \7 P+ m6 Y
        IT0=1;           //外部中断0为边沿触发方式  ]  j7 v! Q( g7 i# }. i7 F: K
        TR0=1;           //开定时器T0$ }, q4 f" `/ t+ r& V  g
        for(;;)          //脉搏指示灯控制+ G1 e1 n# e/ l3 w- e
        {        
: S" u$ z9 X- O0 b& A- }                if(P3_0==0)
6 n% ^+ L: ^# Z* t1 j% J1 E                {7 C/ y# J% p, k7 T6 U2 A! V
                        delay(200);
/ _1 }4 i+ _2 E/ p/ P2 k                        P3_0=1;
- X- d4 k, Z1 m                }' X7 N  V5 d* X# A: P4 H! S# y
        }
! E2 d  n6 @/ F' o" n}9 ~# ~; D8 @" r( B9 }
external0() interrupt 0//外部中断服务程序
+ Q* x* A2 [2 h9 B1 k{3 I  Z5 |- ?, X2 Y
        P3_0=0;          //点亮指示灯. s% T$ U! D! O
        if(n==0)
" J" a9 H9 F6 f. a- l        mb=0;
9 O6 ?7 R9 q) y7 _& I& ?        else$ k9 D2 Q1 {' X3 P6 b% h
        mb=12000/n;      //计算每分钟脉搏数: o" F% a& F- ?4 p2 \
        DispBuf[2]=mb%10;//取个位数
$ o9 s  p& j1 X- v( ^        mb=mb/10;+ U+ k+ r3 S, i  E& e
        DispBuf[1]=mb%10;//取十位数0 `: X% ?2 w4 Y) g, H
        DispBuf[0]=mb/10;//取百位数- ]* u" n/ I2 V) i8 _1 z
        n=0;& @( i' s7 _8 a% d) _- l
}
( @) ~) O1 ?7 e4 f+ Z/ l' ^8 }Timer0() interrupt 1//定时中断服务程序
$ N* z( [7 Q2 M( L: D  H* @3 Y) w{        * Q6 |# f, f+ _; |. A: [0 e
        TH0=0xec;
/ b4 H# d2 P/ a3 `- w4 M; U, `' L        TL0=0x78;
2 S6 f5 c4 K1 S8 E" M        t=BitTab[j];//取位值9 f! R/ V% b9 z1 S1 w* {7 A" M
        P3=P3|0x38;//P3.3-P3.5送1  ~, U% b3 _2 g. ^- K" e" K+ m
        P3=P3&t;   //P3.3-P3.5输出取出的位值
4 e3 A. H# x, q  E3 ^        t=DispBuf[j];//取出待显示的数5 d# Z  u( y. ~6 u2 y" r+ W
        t=DispTab[t];//取字形码) Z. _# R& _' e/ j: @: Q3 ?
        P1=t; //字型码由P3输出显示. ^4 N0 I3 ?9 N; A4 t! S( h
        j++;  //j作为数码管的计数器,取值0-2,显示程序通过它确认显示哪个数码管" P4 d+ M+ o% L' A, P
        if(j==3), Z0 S/ T: D" {# ?4 O8 L
        j=0;
# Z8 O( x$ o5 [1 r5 X" A6 k2 M$ C' v! A; g        n++;3 l  B, ^* f; d3 G7 U4 `. y9 l
        if(n==2000)//10秒钟测不到心率,n复位
1 e% C# ]% {% Z) e        n=0;4 w& w1 U2 ~; |" _. \  ?
}
$ ~/ J' M# r, f- i1 B9 @$ \" U( S3 d9 U$ Evoid delay(DelayTime)//延时子程序
* U: X! K, o% e1 ~: z/ A{! R! K+ a: d+ S- r& g% x. H, x- o9 d
        for(;DelayTime>0;DelayTime--)
1 z( K$ N2 e5 Z8 e: |        {
1 B7 |& |/ Y  ]" U                for(i=0;i<250;i++)
, w. y5 `7 z. b7 z( u                        ;
  I) i) s" j$ g* H6 a9 ]        }+ O% h5 p  s8 u/ ]# S
}
, I3 w3 e# }# d
游客,如果您要查看本帖隐藏内容请回复
# I$ i' i0 B: O

1 i* e9 x' o1 I1 N" T5 |- C3 w

该用户从未签到

2#
发表于 2019-1-14 15:50 | 只看该作者
看看楼主的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-6 23:19 , Processed in 0.187500 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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