完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
原理很简单 血压测量仿真 用划变电压代替传感器 电压值变化输入数模转换 然后单片机处理输出血压值是不是程序错了 大神帮我看看 能帮我改改不 可以用大神永久的迅雷会员刷来的
#include #include #define uchar unsigned char #define uint unsigned int uchar code table[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code LED_W[3] = {0x08,0x04,0x02}; uchar ssy[3],szy[3],mb[3]; uint getdata,getdata1,n,MBO; uchar a,i,k; ***it mb_led =P3^0; ***it ssy_led =P3^1; ***it szy_led =P3^3; ***it wr=P3^6; ***it rd=P3^7; void delay(uint z) //延时z毫秒 { uint t1,y; for(t1=z;t1>0;t1--) for(y=110;y>0;y--); } void xinlv() //脉搏的显示函数 { mb_led = 0; for(a=150;a>0;a--) { for(i=0;i<3;i++) { P2= LED_W[i]; k = mb[i]; P1= table[k]; delay(5); } } mb_led = 1; } void xueya_ssy() //收缩压的显示函数 { ssy_led = 0; for(a=150;a>0;a--) { for(i=0;i<3;i++) { P2= LED_W[i]; k = ssy[i]; P1= table[k]; delay(5); } } ssy_led = 1; } void xueya_szy() //舒张压的显示函数 { szy_led = 0; for(a=150;a>0;a--) { for(i=0;i<3;i++) { P2= LED_W[i]; k = szy[i]; P1= table[k]; delay(5); } } szy_led = 1; } void display() //显示子函数 { xinlv(); xueya_ssy(); xueya_szy(); } void adswap () //模数转换子程序 { wr = 1; //启动转换 wr = 0; wr = 1; rd = 0; //getdata = XBYTE[0xB000] ; //存放转换结果 ,看成收缩压 getdata = P0; rd = 1; getdata1 =(int) getdata/1.6; //设收缩压是舒张压的1.6倍,存放舒张压 ssy[0] = getdata%10; //个位 getdata = getdata/10 ; ssy[1] = getdata%10; //十位 ssy[2] = getdata/10; //百位 szy[0] = getdata1%10; //个位 getdata1 = getdata1/10 ; szy[1] = getdata1%10; //十位 szy[2] = getdata1/10; //百位 } void main() { TMOD=0x01; //定时器T0工作于方式1 TH0=0xec; TL0=0x78; //T0定时时间为5ms IE=0X83; //开中断 IT0=1; //外部中断0为边沿触发方式 TR0=1; //开定时器T0 P2 = 0X00; //关所有位显示 while(1) { display(); } } external0() interrupt 0//外部中断服务程序 { if(n==0) MBO=0; else MBO=12000/n; //计算每分钟脉搏数 mb[0]=MBO%10;//取个位数 MBO=MBO/10; mb[1]=MBO%10;//取十位数 mb[2]=MBO/10;//取百位数 n=0; } timer0() interrupt 1//定时中断服务程序 { TH0=0xec; TL0=0x78; n = n+1; if(n==2000)//10秒钟测不到心率,n复位 {n=0;} adswap(); }
|
|
相关推荐
8个回答
|
|
回帖奖励 +1 分积分
中断函数时间有点长
|
|
|
|
P0口作为输入输出端口使用时要加上拉电阻,建议你加上再试一下,如果还有问题再说!
|
|
|
|
不是很清晰。
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 这个对吗,换一套,试试,我没细看程序。 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f, |
|
|
|
武力戡乱 发表于 2015-5-14 09:00 解决了 谢谢大神 还有就是我想给光敏二极管那边加一个带频率的信号 脉搏监测才有数值 不然没有数值都是000 怎么加一个信号发生器 网上说用这个 signal generator 但是我不会连线 |
|
|
|
cgl520888 发表于 2015-5-14 12:19 proteus里面自带信号源! |
|
|
|
|
|
|
|
QQ1753493268 明天白天上班,晚上要和朋友玩去。星期六他结婚,于是我只有星期日有时间了! |
|
|
|
路过学习。。。。。。。。。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
4038 浏览 3 评论
5326 浏览 1 评论
5605 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
7325 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1208 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 05:05 , Processed in 0.797007 second(s), Total 89, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号