基于单片机的脉搏计毕业论文_文库吧

2020-08-15 16:50:06 本页面

【导读】面);二是信号检测与分析。从发表的文献来看,国外在前一方面做了大量的研。究,也早于国内学者;而国内在后一方面的研究多于国外。用脉搏记录仪器描绘脉搏波图像已有百余年的历史。1860年法国人研制了。杠杆脉搏描记器,成为现代脉象描记的基础。脉象仪的总体构成包括脉象信号。我国医务界约从50年代初就开始了用。西方传来的脉搏描记技术,使脉象图形化。从测量原理上讲,脉象传感器可分。为机械式、压电式、光电容式等多种。目标信号检测的关键是提取信号的特征。在实际中,目标信号总是淹没在。得多,这就需要进行有效的信号处理。有成效的应用,但是受人为的影响因素较大,测量精度不高。取生物信息并将其转换成易于测量和处理信号的一个关键器件。光电式脉搏传感器具有结构简单、无损伤、可重复好等优点,本文讨论的就是基于光电式脉搏传感器的设计和具体实现。、根据系统的功能要求确定选用的元器件;

文章介绍图

  

【正文】
1
嘉应学院20xx届电子信息工程学院
本科毕业论文(设计)开题报告表
课题名称基于单片机的脉搏仪设计
课题类型工程设计指导教师
学生姓名***学号111100057专业电子信息工程








脉搏系统和脉搏信息的研究包括两大方面:一是理论分析与计算(即建模方
面);二是信号检测与分析。从发表的文献来看,国外在前一方面做了大量的研
究,也早于国内学者;而国内在后一方面的研究多于国外。对脉搏信号的分析
主要包括以下方面:
(1)脉搏信号检测与提取
用脉搏记录仪器描绘脉搏波图像已有百余年的历史。1860年法国人研制了
杠杆脉搏描记器,成为现代脉象描记的基础。脉象仪的总体构成包括脉象信号
检测,信号预处理和信号分析三个环节。我国医务界约从50年代初就开始了用
西方传来的脉搏描记技术,使脉象图形化。从测量原理上讲,脉象传感器可分
为机械式、压电式、光电容式等多种。
(2)脉搏信号处理与特征提取
目标信号检测的关键是提取信号的特征。在实际中,目标信号总是淹没在
大量的杂波或干扰中,而且目标信号的幅值或功率较杂波或干扰信号可能还低
得多,这就需要进行有效的信号处理。
时域分析法:目前国内对脉象信号的特征提取方法,多数采用时域分析法。时域
分析法包括直观形态法、多因素识脉法、脉象速率图法、脉图面积法、直观形
态法。
2









传统的脉搏测量采用脉诊方式,中医脉象诊断技术就是脉搏测量在中医上卓
有成效的应用,但是受人为的影响因素较大,测量精度不高。生物医学传感器获
取生物信息并将其转换成易于测量和处理信号的一个关键器件。光电式脉搏传
感器是根据光电容积法制成的脉搏传感器,通过对手指末端透光度的监测,间接
检测出脉搏信号。光电式脉搏传感器具有结构简单、无损伤、可重复好等优点,
本文讨论的就是基于光电式脉搏传感器的设计和具体实现。
课题类型指:理论研究、实验研究、计算机软件设计、工程设计(实践)等。









论文提纲:
1、确定硬件系统的设计方案:
(1)、根据系统的功能要求确定选用的元器件;
(2)、分配单片机各个IO口地址,以连接对应的元器件,方便控制;
(3)、利用Altiumdesigner软件构建系统的硬件图;
2、确定软件部分的设计方案:
(1)、确定各部分模块对应要实现的功能,并根据连接图写出对应程序中对应
的控制信息,便于软件编写;
(2)、用keil软件编写程序,对应各模块功能模块化编写,便于程序的检查和
调试;
3、利用keil软件生成hex文件,用Altiumdesigner软件绘制电路图
4、依照电路图,在电路板上焊接各元件,完成系统实物设计;
5、将焊好的电路板反复进行硬件调试和系统整体调试,直到实现系统要求的预
定功能。
3






[1]华玉明.51单片机语言模块化多文件编程方法探讨[J].吉林广播电视大学学
报,20xx(10):59-62
[2]赵丽华,张文兰,张永寿.基于单片机的脉搏信号采集电路设计[J].中国医学
装备,20xx,11(4):35-38
[3]张心歌.基于单片机的脉搏波采集系统的设计[J].硅谷,20xx(5):31-32
[4]颜晓河,董玲娇,苏绍兴.光电传感器的发展及其应用[J].电子工业专用设
备,20xx(1):59-62
[5]施勇.光电传感器原理浅析[J].科技创业家,20xx(9):5-6
[6]程咏梅,夏雅琴.人体脉搏信号检测系统[J].北京生物医学工
程.20xx,25(5):1-3
[7]刘树种,孙书鹰,王春平.单片机和液晶显示驱动器串行接口的实现[J].微计
算机信息,20xx(2):137-139
[8]陈旦花.单片机最小系统的设计与运用[J].无线互联科
技.20xx(10):103-104
[9]于志赣,刘国平,张旭斌.液显LCD1602模块的应用[J].机电技术.20xx
(3):21-23
[10]韩彩霞.单片机C语言的编程探析[J].硅谷.20xx(22),1-4
[11]李海滨.单片机课程技术设计与项目实例[M].北京:第1版.中国电力出版
社,20xx:11-20






指导教师(签名)
教研室主任(签名)院长(签名)
年月日
4
目录
1引言..........................................................................................................................5
目的和意义......................................................................................................5
研究概况及发展趋势综述..............................................................................6
本系统主要研究内容......................................................................................7
2.总体方案论证与设计................................................................................................8
主控模块的选型和论证...................................................................................8
显示模块的选型和论证...................................................................................8
传感器的选型和论证.......................................................................................8
时钟芯片的选型和论证...................................................................................9
系统整体设计概述...........................................................................................9
....................................................................................................10
主控模块.........................................................................................................10
STC89C52单片机主要特性...............................................................10
STC89C52单片机的中断系统...........................................................13
单片机最小系统设计.........................................................................13
LCD液晶显示器简介....................................................................................13
液晶原理介绍.....................................................................................13
液晶模块简介......................................................................................14
液晶显示部分与STC89C52的接口..................................................15
键盘模块设计.................................................................................................15
蜂鸣器模块设计.............................................................................................16
信号采集电路设计.........................................................................................16
传感器简介.......................................................................................16
放大电路...........................................................................................17
整形电路...........................................................................................17
时钟模块的设计.............................................................................................17
DS1302概述........................................................................................18
DS1302内部RTC和RAM地址分配..............................................20
DS1302时钟电路设计........................................................................23
............................................................................................................24
系统软件总体设计.........................................................................................24
程序设计原理.................................................................................................26
....................................................................................................................28
硬件调试.........................................................................................................28
软件调试.........................................................................................................28
调试结果.........................................................................................................28
............................................................................................................................29
附录...............................................................................................................................31
系统整体原理图...........................................................................................................31
元件清单.......................................................................................................................31
系统源程序...................................................................................................................34
5
基于单片机的脉搏计
摘要:人体脉象中富含有关心脏、内外循环和神经等系统的动态信息。而脉搏的
病理生理性改变常引发各种心血管事件,脉搏生理性能的改变可以先于疾病临床
症状出现,通过对脉搏的检测可以对如高血压和糖尿病等引起的血管病变进行评
估。同时脉搏测量还为血压测量,血流测量及其他某些生理检测技术提供了一种
生理参考信号。
本文主要介绍了数字式脉搏计的具体实现方法,利用红外传感器产生脉冲信
号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉
搏跳动次数,快捷方便。通过观测脉搏信号,可以对人体的健康进行检查,通常
被用于保健中心和医院。
系统可以供用户测量当时的脉搏次数,同时还可以设定上限次数和下限次数,
当测量的范围超过设定的范围则驱动蜂鸣器报警提醒,除此外用户还可以设定每
天闹钟提醒测量,时间可以自行设定.
系统主控芯片采用STC89C52,可以把采集到的脉搏信号显示在LCD1602上。
关键词:STC89C52,独立键盘,LCD显示管,红外传感器。
1引言
目的和意义
脉搏是由心脏搏动而引起,经动脉和血流传至远端的桡动脉处,它携带有
丰富的人体健康状况信息。早在公元前7世纪脉诊就成为中医的一项独特诊病方
法。但自古以来中医独特的诊断方法及治病的疗效总是笼罩着一层神秘的面纱。
中医一直是靠手指获取脉搏信息,这难免存在许多主观臆断因素,况且这种用手
指切脉的技巧很难掌握,因此人们迫切期望尽早实现脉诊的科学化和现代化。随着
传感器技术及计算机处理技术的发展,人们希望能够将现代技术应用于中医脉象
诊断,以便更科学、更客观地揭示脉象的实质与特征。另一方面从西医的角度看,
近年来人们也试图根据脉搏波的变异性来评价和诊断人体心血管系统的病变,以
便能找到一个有效的心血管疾病早期无创诊断的方法。因此,对脉搏信号进行无失
真的检测、采集和处理是一项重要而很有意义的基础工作,它是对脉搏信号进一步
分析并依此对心脏及动脉血管系统疾病进行预报和诊断的前提。本论文的研究主
要是基于这方面来进行的,,从客观、物理的角度来诠释人体脉搏系统。
心率(HeartRate):用来描述心动周期的专业术语,是指心脏每分钟跳动的
次数,以第一声音为准。在正常情况下,脉率和心率是一致的。正常成年人安静时
的心率有显著的个体差异,平均在75次/分左右(60—100次/分之间)。初生儿的
心率很快,可达130次/分以上。在成年人中,女性的心率一般比男性稍快。健康
成人的心率为60~100次/分,大多数为60~80次/分,女性稍快;3岁以下的小
儿常在100次/分以上;老年人偏慢。成人每分钟心率超过100次(一般不超过160
次/分)或婴幼儿超过150次/分者,称为窦性心动过速。如果心率在160~220
次/分,常称为阵发性心动过速。心率低于60次/分者(一般在40次/分以上),
称为窦性心动过缓。如心率低于40次/分,应考虑有房室传导阻滞。心率过快超
过160次/分,或低于40次/分,大多见于心脏病病人,病人常有心悸、胸闷、心
6
前区不适,应及早进行详细检查,以便针对病因进行治疗。对某些阵发性心率过
速或过缓,往往在就医时测试出心率正常,以至使医生无法确诊,所以我们设计
出这种可以随时进行心率测量的心率计,不仅可以随时地监测一个人的健康状况,
而且为医生对这种病症的确诊提供证据。
人体心室周期性的收缩和舒张导致主动脉的收缩和舒张,使血流压力以波的
形式从主动脉根部开始沿着整个动脉系统传播,这种波称为脉搏波。脉搏波所呈现
出的形态、强度、速率和节律等方面的综合信息,很大程度上反映出人体心血管系
统中许多生理病理的血流特征。
传统的脉搏测量采用脉诊方式,中医脉象诊断技术就是脉搏测量在中医上卓
有成效的应用,但是受人为的影响因素较大,测量精度不高。无创测量
(NoninvasiveMeas2urements)又称非侵入式测量或间接测量,其重要特征是测量
的探测部分不侵入机体,不造成机体创伤,通常在体外,尤其是在体表间接测量人
体的生理和生化参数。
生物医学传感器获取生物信息并将其转换成易于测量和处理信号的一个关键器
件。光电式脉搏传感器是根据光电容积法制成的脉搏传感器,通过对手指末端透光
度的监测,间接检测出脉搏信号。光电式脉搏传感器具有结构简单、无损伤、可重
复好等优点,本文讨论的就是基于光电式脉搏传感器的设计和具体实现。
研究概况及发展趋势综述
脉搏系统和脉搏信息的研究包括两大方面:一是理论分析与计算(即建模方
面);二是信号检测与分析。从发表的文献来看,国外在前一方面做了大量的研究,
也早于国内学者;而国内在后一方面的研究多于国外。对脉搏信号的分析主要包
括以下方面:
(1)脉搏信号检测与提取
用脉搏记录仪器描绘脉搏波图像已有百余年的历史。1860年法国人研制了杠
杆脉搏描记器,成为现代脉象描记的基础。脉象仪的总体构成包括脉象信号检测,
信号预处理和信号分析三个环节。我国医务界约从50年代初就开始了用西方传来
的脉搏描记技术,使脉象图形化。近十多年来,已经研制出了许多性能各异的脉
象仪,各类脉搏描记器最关键和差异较大的部分就是脉象传感器的研制。从测量
原理上讲,脉象传感器可分为机械式、压电式、光电容式等多种。
(2)脉搏信号处理与特征提取
目标信号检测的关键是提取信号的特征。在实际中,目标信号总是淹没在大量的
杂波或干扰中,而且目标信号的幅值或功率较杂波或干扰信号可能还低得多,这就
需要进行有效的信号处理。
时域分析法:目前国内对脉象信号的特征提取方法,多数采用时域分析法,即在时
间方向上分析波动信号的动态特征,通过对主波、重搏前波、重搏波的高度、比值、
时值、夹角、面积值的参量分析,找出某些特征与脉象变化的内在联系。时域分析
法包括直观形态法、多因素识脉法、脉象速率图法、脉图面积法。直观形态法。
频域分析法:频域分析主要是通过离散快速傅里叶变换,将时域的脉搏波曲线变换
到频域,得到相应的脉搏频谱曲线,通过频谱曲线的特征分析,从中提取与人体生
理病理相应的信息,实现脉象分类。与时域分析不同,脉搏信号的频域特征可分辨
性好,因此80年代以来国内外一些学者开始在频域内对脉搏信号进行分析,初
步取得了有意义的结果。这种从频域和能量的角度来分析脉搏信号的思想是十分
正确的。我们从能量角度研究了几种不同疾病脉搏信号的特征频域特征和差异,
7
利用频域分析的延伸技术——倒谱与同态解卷,首次估计出了人体脉搏系统的传
递函数,分析了脉搏系统的频率特性。
时频联合分析法:是把一维信号或系统表示成一个时间和频率的二维函数,时频平
面能描述出各个时刻的谱成分。常用的时频表示方法有短时傅立叶变换和小波变
换(WT)。
短时傅立叶变换(STFT)方法:是一种广义情形,是一种线性时频表示方法,它依赖
于被分析信号的线性特性,即信号的频谱与在数据中提供正弦成分的幅度成线性
比例。其最主要的优点是容易实现、计算简洁有效,而它主要的缺陷是时间和频率
分辨率在整个时频平面上固定不变。另外的限制是对一个特殊的信号,需要一个特
殊的窗才能得到最佳分辨率。
小波变换(WT):是另外一种重要的线性时频表示,它在时频平面上具有可变的时间
和频率分辨率,把FT中的正弦基函数修改成在整个时频平面上具有可变时频分辨
率的基函数,使得它在高频区域能够提供高的时间分辨率,而在低频区域能够提供
高的频率分辨率。小波变换这种独特的能力使其成为分析脉搏这种非平稳信号的
有力工具。在目前已知的小波函数中,复值调制的Gaussian函数是使用最高的小
波之一。
本系统主要研究内容
本系统设计制作一个基于单片机的脉搏计。能实现以下几种功能:
(1)键盘扫描,通过单片机检测用户按下的是哪个按键并执行相应的功能。
(2)通过红外传感器把信号提取并通过滤波放大把信号整形成方波给单片机
计算一分钟内的脉搏次数。
(3)用户可以设置脉搏次数的上限和下限,超过上限或上限单片机会驱动蜂
鸣器发响。
(4)用户可以设置闹钟时间用来提醒用户定时测量脉搏次数。
8
2.总体方案论证与设计
根据所要实现的功能划分,系统一共需要以下几个模块:主控模块、显示模
块、信号采集电路,以下就针对这几个模块的选型和论证进行讨论。
主控模块的选型和论证
方案一:
采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种
16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处
理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发。
方案二
采用51系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性
能的8位单片机,32个IO口,且STC系列的单片机可以在线编程、调试,方便
地实现程序的下载与整机的调试。
因此选用方案二中的51系列单片机作为主控芯片。
显示模块的选型和论证
方案一:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对
于显示文字比较合适,如采用在显示数字显得太浪费,且价格也相对较高,所以
不用此种作为显示。
方案二:
采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,
而且采用动态扫描法与单片机连接时,占用单片机口线少。但是由于数码管动态
扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往有很多障
碍,所以不采用LED数码管作为显示。
方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,
显示多样,清晰可见,对于本设计而言一个LCD1602的液晶屏即可,价格也还能
接受,需要的借口线较多,但会给调试带来诸多方便。
所以本设计中方案三中的LCD1602液显示屏作为显示模块。
传感器的选型和论证
方案一:
采用压电传感器用来提取人的脉搏信号,压电传感器是利用某些电介质受力
后产生的压电效应制成的传感器。所谓压电效应是指某些电介质在受到某一方向
的外力作用而发生形变(包括弯曲和伸缩形变)时,由于内部电荷的极化现象,
会在其表面产生电荷的现象。通过此现象可以提取出人的脉搏信号。
方案二:
采用光电传感器提取人体脉搏信号,授予手指组织可以分成皮肤、肌肉、骨
骼等非血液组织和血液组织,其中非血液组织的光吸收量是恒定的,而在血液中,
静脉血的搏动相对动脉血是十分微弱的,可以忽略,因此可以认为光透过手指后
的变化仅由动脉血的充盈而引起,那么在恒定波长的光源的照射下,通过检测透
过手指的光强将可以间接测量到人体的脉搏信号。
9
由于光电传感器较压电传感器容易在一般的地方可以买得到,因此这里选用
光电传感器来提取人体脉搏信号。
时钟芯片的选型和论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现时间计数。采用此种
方案虽然可以减少时钟芯片的使用,节约成本,但是,实现的时间误差较大。
方案二:
采用DS1302时钟芯片实现时钟,DS1302是美国DALLAS公司推出的一种高
性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、
秒计时,具有闰年补偿功能,工作电压为~。采用三线接口与单片机进
行通信,并可采用突发一次传送多个字节的时钟信号或RAM数据。DS1302内部
有一个31*8的用于临时存放数据的RAM存储器。DS1302是DS1202的升级产品,
与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源
进行涓流充电的能力。主要特点是采用串行数据传输,可为掉电保护电源提供可
编程的充电功能,并且可以关闭充电功能。采用普通晶振作为标准时
钟。
因此本设计中采用方案二中的DS1302作为时钟模块。
系统整体设计概述
主控模块
单片机
蜂鸣器模块
液晶显示模块
LCD1602
时钟模块
DS1302
光电传感器放大整形滤波电路按键模块
图1系统结构框图
STC89C52、按键、LCD1602、光电传感器、时钟模块、运放等构成,系统设
有四个按键,可以设置上下限脉搏数,当超过范围的时候单片机会驱动蜂鸣器发
响,脉搏测量的时候需要人把手轻轻的按在光电传感器上面,由于人脉搏跳动的
时候,血液的透光性不一样会导致接收器那边接收的信号强弱不一样,间接的把
人脉搏信号传回,通过运放对其进行放大、整形后连接到单片机的IO口,单片机
利用外部中断对其进行计数,最终换算成人一分钟脉搏的跳动次数,最终显示在
液晶屏上。除此之外系统还带一个定时提醒测量的时钟功能,用户可以设定闹钟
时间。
10
主控模块
主控模块模块在整个系统中起着统筹的作用,需要检测键盘等各种参数,同
时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC89C52单片
机作为系统的主控芯片。
51系列单片机最初是由Intel公司开发设计的,但后来Intel公司把51核的
设计方案卖给了几家大的电子设计生产商,譬如SST、Philip、Atmel等大公司。
因此市面上出现了各式各样的均以51为内核的单片机。这些各大电子生产商推
出的单片机都兼容51指令、并在51的基础上扩展一些功能而内部结构是与51
一致的。
STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时
内含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统
由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。
STC89C52单片机的基本组成框图见图3-1。
时钟电路
ROM/EPROM/Flash4KB
RAM128B
SFR21个
定时个/计数器2
CPU
总线控制
中断系统
5个中断源
2个优先级
串行口
全双工1个
4个并行口
XTAL2XTAL1
RST
EA
ALE
PSEN
P0
P1
P2
P3
Vss
Vcc
图3-1STC89C52单片机结构图
STC89C52单片机主要特性
1.一个8位的微处理器(CPU)。
2.片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中
间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的
RAM。
3.片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但
也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。目前单片
机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行
设计又提高了系统的抗干扰性。SST公司推出的89系列单片机分别集成了
16K、32K、64KFlash存储器,可供用户根据需要选用。
4.四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输
出。
5.两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用
以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果
11
实现计算机控制。为方便设计串行通信,目前的52系列单片机都会提供3个16
位定时器/计数器。
6.五个中断源的中断控制系统。现在新推出的单片机都不只5个中断源,
例如SST89E58RD就有9个中断源。
7.一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片
机之间或单机与微机之间的串行通信。
8.片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允
许振荡频率为12MHz。SST89V58RD最高允许振荡频率达40MHz,因而大大的
提高了指令的执行速度。
1
2
3
4
5
6
7
8
RESET
9
10
11
12
13
14
15
16
17
XTAL2
18
XTAL1
19
VSS
20
21
22
23
24
25
26
27
28
PSEN
29
ALE
30
EA
31
32
33
34
35
36
37
38
39
VCC
40
U5
单片机
图3-2STC89C52单片机管脚图
部分引脚说明:
钟电路引脚XTAL1和XTAL2:
XTAL2(18脚):接外部晶体和微调电容的一端;片内它是振荡电路反相放
大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,
该引脚输入外部时钟脉冲。
要检查振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号
输出。
XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反
相放大器的输入端。在采用外部时钟时,该引脚必须接地。
RST,ALE,PSEN和EA:
RST/VPD(9脚):RST是复位信号输入端,高电平有效。当此输入端保持备
用电源的输入端。当主电源Vcc发生故障,降低到低电平规定值时,将+5V电
源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。
RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存
储在RAM中的信息不丢失,从而合复位后能继续正常运行。
ALE/PROG(30脚):地址锁存允许信号端。当8051上电正常工作后,ALE
引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC的1/6。CPU访问片
12
外存储器时,ALE输出信号作为锁存低8位地址的控制信号。
平时不访问片外存储器时,ALE端也以振荡频率的1/6固定输出正脉冲,
因而ALE信号可以用作对外输出时钟或定时信号。如果想确定8051/8031芯片
的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则
8051/8031基本上是好的。
ALE端的负载驱动能力为8个LS型TTL(低功耗甚高速TTL)负载。
此引脚的第二功能PROG在对片内带有4KBEPROM的8751编程写入(固
化程序)时,作为编程脉冲输入端。
PSEN(29脚):程序存储允许输出信号端。在访问片外程序存储器时,此端
定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM的OE端(见
后面几章任何一个小系统硬件图)。PSEN端有效,即允许读出EPROM/ROM
中的指令码。PSEN端同样可驱动8个LS型TTL负载。要检查一个8051/8031
小系统上电后CPU能否正常到EPROM/ROM中读取指令码,也可用示波器看
PSEN端有无脉冲输出。如有则说明基本上工作正常。
EA/Vpp(31脚):外部程序存储器地址允许输入端/固化编程电压输入端。当
EA引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的
指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051为4K)时,将自动转去
执行片外程序存储器内的程序。当输入信号EA引脚接低电平(接地)时,CPU只
访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程
序存储器。对于无片内ROM的8031或8032,需外扩EPROM,此时必须将EA
引脚接地。此引脚的第二功能是Vpp是对8751片内EPROM固化编程时,作为
施加较高编程电压(一般12V~21V)的输入端。
/输出端口P0/P1/P2/P3:
P0口(~,39~32脚):P0口是一个漏极开路的8位准双向I/O口。
作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入
口使用时,应先向口锁存器(地址80H)写入全1,此时P0口的全部引脚浮空,可作
为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU访问
片外存储器时,P0口分时提供低8位地址和8位数据的复用总线。在此期间,
P0口内部上拉电阻有效。
P1口(~,1~8脚):P1口是一个带内部上拉电阻的8位准双向I/O
口。P1口每位能驱动4个LS型TTL负载。在P1口作为输入口使用时,应先向
P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。
P2口(~,21~28脚):P2口是一个带内部上拉电阻的8位准双向
I/O口。P口每位能驱动4个LS型TTL负载。在访问片外EPROM/RAM时,它
输出高8位地址。
P3口(~,10~17脚):P3口是一个带内部上拉电阻的8位准双向
I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O端口有很大的区
别,它的每个引脚都有第二功能,如下:
:(RXD)串行数据接收。
:(RXD)串行数据发送。
:(INT0#)外部中断0输入。
:(INT1#)外部中断1输入。
:(T0)定时/计数器0的外部计数输入。
:(T1)定时/计数器1的外部计数输入。
13
:(WR#)外部数据存储器写选通。
:(RD#)外部数据存储器读选通。
STC89C52单片机的中断系统
STC89C52系列单片机的中断系统有5个中断源,2个优先级,可以实现二级
中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响
应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中
断同时提出中断请求时,由内部的查询逻辑确定其响应次序。
在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定
时扫描等;也经常要对外部事件进行计数。STC89C52单片机内集成有两个可编
程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事
件计数模式,此外,T1还可以作为串行口的波特率发生器。
单片机最小系统设计
1
2
3
4
5
6
7
8
RESET
9
10
11
12
13
14
15
16
17
XTAL2
18
XTAL1
19
VSS
20
21
22
23
24
25
26
27
28
PSEN
29
ALE
30
EA
31
32
33
34
35
36
37
38
39
VCC
40
U1
单片机
+5V
1
2
Y2
12MHZ
30pFC3
30pFC4
123456789
P110K排阻
+5V
S1
SW-PB
10K
R3
10uF
C2
+5V
图3-3单片机最小系统电路图
图3-3为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复
位电路组成,时钟电路选用了12MHZ的晶振提供时钟,根据官网的数据手册,
要让晶振起振还要配备2个30PF的电容,时钟电路作用为给单片机提供一个时间
基准,其中执行一条基本指令需要的时间为一个机器周期,单片机的复位电路可
以对单片机进行复位,按下复位按键之后可以使单片机进入刚上电的起始状态,
这里RC电路的作用就是让单片机有个充电的过程,为了保证复位成功电容充放
电时间要大于2US,选择了10K和10UF较为常规的值,充放电时间远大于2US。
图中10K排阻为P0口的上拉电阻,由于P0口跟其他IO结构不一样为漏极开路
的结构,因此要加上拉电阻才能正常使用。
LCD液晶显示器简介
由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界
面显示,可以把一些相关的参数进行显示。
液晶原理介绍
14
液晶显示器(LCD)英文全称为LiquidCrystalDisplay,它一种是采用了液晶控
制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显
的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这
样就无须考虑刷新率的问题。
显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用
的是LCD液晶模块,采用一个16×2的字符型液晶显示模块。
点阵图形式液晶由M行×N列个显示单元组成,假设LCD显示屏有64
行,每行有128列,每8列对应1个字节的8个位,即每行由16字节,共
16×8=128个点组成,屏上64×16个显示单元和显示RAM区1024个字节相对
应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由6×8或8×8点阵
组成,即要找到和屏上某几个位置对应的显示RAM区的8个字节,并且要使
每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来
就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单
了,可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列
数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
液晶模块简介
LCD1602液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指
令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8
位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)
和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA
(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄
存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入
DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,
液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显
示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中
和5*10点阵字符32种.8位字符编码和字符的对应关系,CGRAM是为用户编写
特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个
5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写
入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM,LCD1602液
晶模块的引脚图如图3-4所示。
图3-4LCD1602引脚图
液晶寄存器选择控制如表3-1。
表3-1寄存器选择控制
15
RSR/W操作说明
00写入指令寄存器(清除屏等)
01读busyflag(DB7),以及读取位址计数器(DB0~DB6)值
10写入数据寄存器(显示各字型等)
11从数据寄存器读取数据
液晶显示部分与STC89C52的接口
如图3-5所示。用STC89C52的P0口作为数据线,用、、分别
作为LCD的EN、R/W、RS。其中EN是下降沿触发的片选信号,R/W是读写信
号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,
再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体
显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示
缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数
据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个
要显示的字符或数据送到LCD的显示缓冲区,程序延时,判断是否够显示的
个数,不够则地址加一取下一个要显示的字符或数据。
1
2
3
4
5
6
7
8
RESET
9
10
11
12
13
14
15
16
17
XTAL2
18
XTAL1
19
VSS
20
21
22
23
24
25
26
27
28
PSEN
29
ALE
30
EA
31
32
33
34
35
36
37
38
39
VCC
40
U2
单片机
+5V
1
2
Y2
12MHZ
30pFC8
30pFC9
123456789
P110K排阻
VSS
1
VCC
2
VEE
3
RS
4
RW
5
EN
6
DB0
7
DB1
8
DB2
9
DB3
10
DB4
11
DB5
12
DB6
13
DB7
14
A
15
K
16
LCD1
lcd1602
+5V
+5V
+5V
S1
SW-PB
10K
R10
10uF
C6
+5V
10K
R22
图3-5LCD1602与STC89C52的接口
键盘模块设计
本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片
机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,
当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,
通过检测不同时刻的IO口状态就可以判断按下的是那个按键。键盘模块电路图如
图3-6所示。
16
1
2
3
4
5
6
7
8
RESET
9
10
11
12
13
14
15
16
17
XTAL2
18
XTAL1
19
VSS
20
21
22
23
24
25
26
27
28
PSEN
29
ALE
30
EA
31
32
33
34
35
36
37
38
39
VCC
40
U2
单片机
1
2
Y1
12MHZ
30pFC8
30pFC9
S2
SW-PB
S3
SW-PB
S4
SW-PB
S5
SW-PB
图3-6键盘模块电路图
蜂鸣器模块设计
本设计还带有脉搏超出设定范围报警的功能,当检测到当前的脉搏跳动次数
超出用户所设定的上限或者下限的时候,单片机就可以驱动蜂鸣器发声。
由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动
的,所以要利用三极管开关电路来驱动。本处选用的是8550三极管,它是一个
PNP型的三极管,当基极给低电平的时候三极管导通,这时候蜂鸣器发声,当给
高电平的时候,三极管关闭,蜂鸣器不发声。
蜂鸣器模块的电路图如图3-7所示。
1K
R4
+5V
LS1
蜂鸣器
Q1
8550
图3-7蜂鸣器驱动电路图
信号采集电路设计
此部分电路的功能是由传感器将脉搏信号转换为电信号,一般为几十毫伏,
必须加以放大,以达到整形电路所需的电压,一般为几伏。放大后的信号波形是
不规则的脉冲信号,因此必须加以滤波整形,整形电路的输出电压应满足计数器
的要求。选择电路:所选放大整形电路框图如图3-8所示。
光电传感器放大电路有源滤波电路整形电路
图3-8放大整形电路框图
传感器简介
传感器采用了红外光电转换器,作用是通过红外光照射人的手指的血脉流动
情况,把脉搏跳动转换为电信号,其原理电路如图3-9所示。
17
D1
LED0
MK1
光电二极管
150R
R1
+5V
AGND
33K
R2
+5V
AGND
图3-9传感器信号调节原理电路
如图3-9中,红外管VD采用ST188。用+5V电源供电,R1取150Ω,R2取
33kΩ,当人把手指放在发光二极管和光电二极管之间的时候,光电二极管接收到
的信号会随人脉搏强度的变化而变化。
放大电路
C4
68K
R8
2
3
1
A
8
4
AMP1A
LM358
C1
680K
R4
C3
R5
680K
R9
C2
R3
C5
68K
R7
VCC
5
6
7
B
8
4
AMP1B
LM358
图3-10放大滤波电路
图3-10为脉搏计的放大滤波信号,由于脉搏信号输出的信号十分微弱,一般
在uV级别,除此外输出的信号一般会伴随很大的噪声干扰,因此在这里用LM358
搭建起一个放大和滤波电路,其中C4和R8,C5和R7起到的是高通电路,可以隔
绝低频干扰,R4和C3,R2和C2起到的是低通滤波的作用,可以隔绝高频干扰。
整形电路
经过放大滤波后的脉搏信号仍是不规则的脉冲信号,且有低频干扰,仍不满
足计数器的要求,必须采用整形电路,这里选用了滞回电压比较器,如图3-11所
示,其目的是为了提高抗干扰能力。集成运放采用了74HC14,除此外74HC14还
接上了一个LED用作指示脉搏跳动的状态。
1A
1
1Y
2
2A
3
2Y
4
3A
5
3Y
6
GND
7
4Y
8
4A
9
5Y
10
5A
11
6Y
12
6A
13
VCC
14
U1
74HC14
VCC
D1
LED0
1K
R6
VCC
图3-11波形整形电路
时钟模块的设计
18
本系统还附带有一个时钟模块,这里除了可以提供时间信息外,用户还可以
设定闹钟,到时间点后可以提醒用户定时测量脉搏,本处选用串行日历时钟芯片
DS1302。与采用并行总线与单片机进行数据通信的时钟芯片相比,DS1302与单
片机的连线大为减少,极大的节省了单片机的系统资源,单片机通过读取DS130
2上面的数据可以得到实时时间。
DS1302概述
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时
时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功
能,工作电压为~。采用三线接口与CPU进行同步通信,并可采用突发
方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用
于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202
兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电
流充电的能力。
低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有
闰年补偿等多种功能。DS1302用于数据记录,特别是对某些具有特殊意义的数据
点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连
续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。
采用DS1302作为记录测控系统中的数据记录,其软硬件设计简单,时间记
录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长
时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时
间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,
经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意
义的数据,对测控系统的性能分析及正常运行具有重要的意义。传统的数据记录
方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准
确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资
源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系
统可能不允许。而在系统中采用DS1302则能很好地解决这个问题。
DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简
单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年
等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。
时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。采用三线接
口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM
数据。DS1302有主电源/后备电源双电源引脚:VCC1在单电源与电池供电的系
统中提供低电源,并提供低功率的电池备份;VCC2在双电源系统中提供主电源,
在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的情况下能保存
时间信息以及数据。DS1302由VCC1或VCC2中较大者供电。当VCC2大于
VCC1+时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1
供电。
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8
位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期
还是写周期,开始8位指定40个寄存器中哪个被访问到。在开始8个时钟周期,
把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操
作时写入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8
19
加字节数,最大可达248字节数。
如果在传送过程中置RST为低电平,则会终止本次数据传送,并且I/O引脚
变为高阻态。上电运行时,在VCC>=之前,RST脚必须保持低电平。只有
在SCLK为低电平时,才能将RST置为高电平。DS1302的内部结构图如图3-8
所示。
图3-8DS1302内部结构图
DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭
的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者
供电。当VCC2大于Vcc1+时,VCC2给DS1302供电。当VCC2小于VCC1
时,DS1302由VCC1供电。X1和X2是振荡源,外接晶振。RST是复
位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有
两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,
RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据
传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,
则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC≥,
RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O
为串行数据输入输出端(双向)。SCLK始终是输入端。图3-9为DS1302的引脚示
意图。
20
图3-9DS1302引脚示意图
VCC,GND---直流电源通过这两个引脚提供给该器件,VCC为+5V输入,
当提供的5V电源在正常范围内器件能充分地被访问,能对器件读写数据。当3V
的电池被连至该器件且VCC低于×VBAT时,对器件的读写被禁止,而计
时功能照常进行,不受低输入电压的影响。当Vcc降到低于VBAT,则RAM区
和计时器将被切换到外部电源VBAT来供电(名义上VBAT为直流电源)。
VBAT---电池输入引脚。可以是任意标准的3V锂电池或其它电源。为了器件能够
正常工作,电池电压必须限制在~之间。事实上,写保护带电压被内部
电路设置为×VBAT。
表3-2DS1302引脚功能表
引脚号引脚名称功能
1VCC2主电源
2,3X1,X2振荡源,外接32768HZ晶振
4GND地线
5RST复位/片选线
6I/O串行数据输入/输出端(双向)
7SCLK串行数据输入端
8VCC1后备电源
DS1302内部RTC和RAM地址分配
DS1302的RTC与RAM寄存器的地址分配如图3-10所示。RTC寄存器地
址位于00H到07h处。RAM寄存器地址位于08h~3Fh。在多字节存取中,当地
址指针到达3Fh,即RAM空间的最后一个单元,则下一个操作地址将翻卷到00h,
即时钟空间的开头。
21
图3-10DS1302地址分配图
DS1302的控制字如图3-11所示。控制字节的最高有效位(位7)必须是逻辑
1;如果它为逻辑0,则不能把数据写入到DS1302中。位6如果为0,则表示存
取日历时钟数据;为1表示存取RAM数据。位5~1(A4~A0)指示操作单元的
地址。最低有效位(位0)如为0,表示要进行写操作;为1表示进行读操作。控
制字节总是从最低位开始输入/输出。
图3-11控制字节的含义
为了提高对32个地址的寻址能力(地址/命令位1~5=逻辑1),可以把时钟
/日历或RAM寄存器规定为多字节(burst)方式。位6规定时钟或RAM,而位0
规定读或写。在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能
存储数据。在多字节方式中,读或写从地址0的位0开始。必须按数据传送的次
序写最先的8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必
写所有31字节。不管是否写了全部31字节,所写的每一字节都将传送至RAM。
数据读写程序如图3-12所示。
图3-12数据读写程序
22
通过读取正确的寄存器字节能获得正确的时钟和日历信息,实时时钟寄存器
如表3-3所示。通过写入正确的寄存器字节能够设置或者初始化时钟和日历。时
钟和日历寄存器中的内容均采用BCD码格式,时钟寄存器00h的位7是时钟停
止位,当该位被设置为1时,晶振失效,当该位被清零时,晶振使能。所以,在
初始化程序中,使能晶振(CH位=0)是很重要的。DS1302可以运行在12小时
或24小时模式,小时寄存器的位7被定义为作为12小时或24小时模式选择位。
当该位为高时选择12小时模式,采用12小时模式时,位5是AM/PM标志位,
该位为1表示PM。当采用24小时模式时,位5是第二个10小时位(20~23小
时)。当总线开始工作时,当前的时间信息被传送给一串二级寄存器,时间信息然
后从这些二级寄存器中读取,而时钟照常运行。当在读过程中,主寄存器内容发
生变化时,这样可以避免再次读寄存器的必要性。
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数
据位为BCD码形式,其日历、时间寄存器及其控制字见表3-2,其中奇数为读操
作,偶数为写操作。
表3-3DS1302的日历、时钟寄存器及其控制字
寄存器名命令字取值
范围
各位内容
写操作读操作76543210
秒寄存器80H81H00-59CH10SECSEC
分钟寄存器82H83H00-59010MINMIN
小时寄存器
84H85H
01-12或
00-23
2/
24
010APHRHR
日期寄存器
86H87H
01-28,29,
30,31
010DATEDATE
月份寄存器88H89H01-12000IOMMONTH
周日寄存器8AH8BH01-0700000DAY
年份寄存器8CH8DH00-9910YEARYEAR
时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止振
荡,进入低功耗的备份方式。通常在对DS1302进行写操作时(如进入时钟调整
程序),停止振荡。当它为0时,时钟将开始启动。
AM-PM/12-24[小]时方式:[小]时寄存器的位7定义为12或24[小]时方式选
择位。它为高电平时,选择12[小]时方式。在此方式下,位5是AM/PM位,此
位是高电平时表示PM,低电平表示AM,在24[小]时方式下,位5为第二个10[小]
时位(20~23h)。
DS1302控制寄存器用来控制SQW/OUT引脚的操作。
OUT:输出控制。当方波输出失效时,该位控制SQW/OUT引脚的输出。如
果SQWE=0,若OUT=1则SQW/OUT引脚的逻辑电平为1,而OUT=0则
SQW/OUT引脚的逻辑电平为0。
SQWE:方波使能。当该位被设置为逻辑1时,使能晶振输出,方波输出的
频率由RS1和RS0位的值来确定。当方波输出的频率设为1Hz,则时钟寄存器内
容将在方波的下降沿更新。
表3-4方波输出频率
23
RS1RS0SQWOUTPUT
FREQUENCY
001Hz
01KHz
10KHz
11KHz
RS:速率选择。当方波输出使能时,这些位控制方波输出的频率。表3-5列出
了方波频率与RS位的值的对应关系。
DS1302时钟电路设计
实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的
充电功能,也可以关闭充电功能,芯片采用晶振。单片机通过时序可以
读出时钟芯片内部的相关时间信息,DS1302的时钟电路如图3-13所示。
VCC2
1
X1
2
X2
3
GND
4
CE
5
I/O
6
SCLK
7
VCC1
8
U2
DS1302
10K
R2
+5V
1
2
Y1
BT1
3V
图3-13DS1302时钟电路
24
系统软件总体设计
开始
初始化
判断是否按下
功能键?
设置时间和脉搏上
下限等参数
是否按
下测量按键?
开启定时器
测量脉搏信号
计算出脉搏数
并在液晶上显示
判断是否超
过脉搏上限
或下限?
驱动蜂鸣器报警
判断是否按下
停止按键?
关闭蜂鸣器








图4-1系统流程图
主程序流程图如图4-1所示,单片机上电后先进行初始化,清楚一些参数的初值,然后
等待用户按下对应的按键并进入对应的功能,如果是则进入设置闹钟和时间以及脉搏上下限
等参数,每个循环都会判断用户是否按下测量按键,按下则开启定时器测量脉搏信号,在测
量过程中时刻判断用户是否按下停止按键,按下的停止计数,否则继续测量,测量完成后计
数出等效一分钟的脉搏次数,并显示出来,然后判断是否超过用户设定的上限次数和下限次
数,有则驱动蜂鸣器报警,没有则取消报警.
25
调用自定义
字库
设置DDRAM地
址,在第一
行显示
设置显示数
据首地址
循环量设置
取字符代码
循环完?
设置DDRAM地
址,在第一
行显示
设置显示数
据首地址
循环量设置
取字符代码
循环完?
结束
图4-2LCD1602初始化子函数流程图
首先先调用液晶自定义的字库,设置好DDRAM地址后在第一行显示,根据
程序中的数据设置显示数据的首地址并设置循环量,在循环过程中不断的取字符
代码直到终止,第二行的显示过程同一行的显示过程一样,两行显示完毕后便结
束子程序。
26
开始
复位端变高启动一
次数据传送工作
写命令字节一位
SCLK发脉冲
够8次吗?
写数据字节一位
SCLK发脉冲
够8次吗?
复位端变低
结束




图4-3时钟模块子函数流程图
时钟模块的流程图如图4-3所示,一开始先让时钟芯片的复位引脚置高进而
启动一次数据传送工作,接着写一位命令字节,接着给SCLK发送脉冲信号,一
致循环直到发送8个命令字节为止。接着是写数据进时钟芯片,首先先写入一位
数据字节,然后给SCLK引脚发送脉冲,一致循环写入8次,这样就可以把数据
写入,最终使复位引脚变低,这样就可以完成一次时钟芯片的一次操作。
程序设计原理
软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由
27
软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。
软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为
两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,
打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和
操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法
各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。
软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能
定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据
结构和数据类型问题也一并规划好。
各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选
择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编
程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就
比较难了。
软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软
件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程
序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通
常将监控程序(键盘解释程序),显示程序和打印程序等与操作
点击复制文档内容
研究报告相关推荐
文库吧 www.wenkub.com
备案图鄂ICP备17016276号-1