心率测试仪设计与制作(编辑修改稿)内容摘要:

体显示。 原因:液晶显示屏的对比度调得太高了,以至于全部的字体都无法显示,经过调整滑动变阻器的阻值大小,终于能够清晰的显示出来了。 第二次调试,程序的显示不正常,经常发生程序跑飞的情况。 原因:单片机主机部分电路复位电容没有接好,以至于出现这样的问题。 经过后来重新把电容焊好后,就没有再出现这样的情况了。 本次实验由我和队员共同完成,在这个过程中使我受益匪浅。 在确定各模块电路的过程中,不但训练了我们查找资料的能力,更是一次很好考验我们用所学的模拟电子技术基础和数字电子技术基础等相关知识来判断电路正确与否的机会。 通过此次课程设计的锻炼,自己的动手能力有了很大的提高,查找问题、解决问题的能力也有了相应的进步。 当然,这次试验 也让我看到了我们的很多缺陷。 首先就是在画原理图的时候没有看清 反向器 的管脚,以致 差点 出现 做出了一块无用的电路板 的情况。 还有就是在确定方案之前,没有在实验板上认真搭建电路,事前摸清放大模块的工作情况。 总的来说,本次设计有苦也有甜。 设计思路是最重要的,只要你的设计思路是成功的,那你的设计已经成功了一半,因此我们应该在设计前做好充分的准备。 同时在实践的过程中,一定不能半途而废,或者是中途改设计思路。 因为这样不仅会浪费大量的时间与精力,还会让你自己没有了一往直前的勇气。 因此,在做这些设计的时候一定需要耐心和勇气去 克服在中途遇到的困难和阻力。 同时熟练地掌握课本上的知识,这对试验中出现的问题进行分析解决也是相当重要的。 这次设计留给我们印象最深的是要设计一个成功的电路,必须要有耐心,更要有坚持的毅力。 14 附录 1(硬件电路原理图): 附录 2(主要程序): 主程序: unsigned char key_value。 //存放键盘返回 unsigned char key_flag=0。 //定义有键按下的标志 unsigned char i,j,t,m,DispBuf[10]={39。 M39。 ,39。 a39。 ,39。 i39。 ,39。 B39。 ,39。 o39。 ,39。 :39。 ,39。 039。 ,39。 039。 ,39。 039。 ,39。 \039。 }。 unsigned int n,mb,w,f。 void display_times()。 include include include include include sbit P3_0=P3^0。 void main() { EA=0。 sys_init()。 15 LCD_Initial()。 delay_20ms(10)。 LCD_Write(0,0x01)。 //清屏 LCD_Print(5,0,Wele!)。 delay_20ms(10)。 LCD_Print(0,0,MaiBoCeLiang)。 LCD_Print(0,1,e Control!)。 delay_20ms(10)。 LCD_Write(0,0x01)。 //清屏 LCD_Print(0,0,LSTC)。 LCD_Print(0,1,by LWLamp。 MZL)。 delay_20ms(10)。 LCD_Write(0,0x01)。 //清屏 LCD_Print(0,0,XuanZe FanWei:)。 LCD_Print(0,1,MoRenwei:50~120)。 while(1) { unsigned int w=0。 key_value=kbscan()。 if(key_flag==1) { key_mand(key_value)。 w=1。 } if(w==1) break。 } LCD_Write(0,0x01)。 //清屏 delay_20ms(10)。 displayHL()。 LCD_Print(0,1,Testing...)。 delay_20ms(20)。 LCD_Write(0,0x01)。 //清屏 displayHL()。 TMOD=0x01。 //定时器 T0工作于方式 1 TH0=0xec。 TL0=0x78。 //T0 定时时间为 5ms IE=0x83。 //开中断 IT0=1。 //外部中断 0 为边沿触发方式 TR0=1。 //开定时器 T0 for(。 ) //脉搏指示灯控制 { 16 if(P3_0==0) { delay_20ms(50)。 P3_0=1。 } } //useralarm()。 } external0() interrupt 0//外部中断服务程序 { P3_0=0。 //点亮指示灯 if(n==0) mb=0。 else mb=12020/n。 //计算每分钟脉搏数 f=mb。 DispBuf[8]=mb%10+0x30。 //取个位数 mb=mb/10。 DispBuf[7]=mb%10+0x30。 //取十位数 DispBuf[6]=mb/10+0x30。 //取百位数 LCD_Print(3,1,DispBuf)。 n=0。 } Timer0() interrupt 1//定时中断服务程序 { TH0=0xec。 TL0=0x78。 n++。 if(n==2020)//10 秒钟 测不到心率 ,n 复位 n=0。 } 键盘扫描程序: include include unsigned char key_value。 unsigned char key_flag。 char code tab[4][4]={ {39。 .39。 ,1,4,7}, //7,8,9, E UP {0,2,5,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。