基于单片机的电子脉搏血压计的设计_第1页
基于单片机的电子脉搏血压计的设计_第2页
基于单片机的电子脉搏血压计的设计_第3页
基于单片机的电子脉搏血压计的设计_第4页
基于单片机的电子脉搏血压计的设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的电子脉搏血压计的设计 摘 要 人们在日常生活或是医学上常常是通过测量脉搏跳动的力度和频率来检测 身体的健康状况 而普通的方法是用手按在人腕部的动脉上 根据脉搏的跳动 进行计数 这样不仅测量时间长而且精度不高 为了节省测量时间 一般不采 用长时间测量 而是几秒钟之内测出脉搏数 本文介绍一种基于 STC89C52 单 片机的电子脉搏计 通过测量腕部动脉的压力 把压力转变为电信号 送入单 片机 可以在 3 秒钟之内精确测量出每分钟脉搏数 测量结果用三位 LED 数码 管显示 并且脉搏波形通过串口送入 PC 机 实时显示脉搏波形 脉搏计是最常用的医疗检查设备之一 实时准确的脉搏测量在日常生活 患者监控 临床治疗及体育运动等方面都有着广泛的应用 脉搏测量包括瞬时 脉搏测量和平均脉搏测量 瞬时脉搏可以反映心率的快慢 同时能反映心率是 否匀齐 平均脉搏测量虽然只能反映心率的快慢 但记录方便 本文设计的电 子脉搏计可以把这两个参数在测量时都记录下来并且显示 瞬时测量结果通过 PC 机实时显示 平均脉搏测量结果通过 LED 七段数码管显示 关键词关键词 STC89C52 单片机 脉搏 串口 Based on SCM electronic pulse plan design Abstract People in daily life or medicine is often measured by the pulse frequency and strength to detect the health status of body by hand and ordinary people by the arteries in the wrist according to a pulse count thus not only beat measuring time long and accuracy is not high in order to save the measuring time generally does not use the long time measurement but a few seconds pulse count Measured This paper introduces a STC89C52 MCU based on the electronic pulse plan by measuring the pressure the wrist artery pressure into electrical signals into a single chip microcomputer can accurate measurement in three seconds per minute a pulse with measurement results number three LED digital display and pulse tube through a serial port into PCS real time display pulse waveform Pulse meter is one of the most commonly used in the medical examination device real time accurate measurement of the pulse of daily life patient monitoring clinical treatment and other aspects of sports have a wide range of applications Pulse measurements include transient pulse measurement and the average pulse measurement Instantaneous heart rate may reflect the speed of the pulse while heart rate can reflect whether the uniform homogeneous average heart rate pulse measurement can only reflect the speed though but the record of convenience This design of elec tronic pulse meter to measure these two parameters are recorded and displayed the time instantaneous measurements in real time through the PC shows that the average pulse measurements by seven segment LED digital display Keywords STC89C52 microcontroller pulse the serial interface 目 录 1 引言 1 2 总体设计思路 1 2 1 方案设计与选取 1 2 1 1 总体流程图 1 2 1 2 方案选择 1 2 2 总体电路图 2 3 硬件电路结构模块 4 3 1 单片机的选取 4 3 1 1 STC89C52 引脚功能说明 4 3 1 2 振荡电路 5 3 1 3 复位电路 5 3 2 AD 转换电路模块 6 3 2 1 ADC0809 引脚功能 6 3 2 2 ADC0809 主要特性 7 3 2 3 ADC0809 工作过程 7 3 2 4 ADC0809 与单片机接口电路 8 3 2 5 ADC0809 与 PC 机连接 9 3 3 传感器的选取 10 4 软件程序设计 13 4 1 脉搏计数模块的设计 13 4 1 1 脉搏计数程序方案的选取 13 4 1 2 脉搏计数代码设计 14 4 2 LED 数码管显示模块设计 15 4 2 1 显示模块的选取 15 4 2 2 LED 数码管与单片机的接口电路 16 4 2 3 LED 数码管驱动程序的设计 17 4 3 AD 转换模块的设计 18 4 4 串口发送程序设计 19 4 5 上位机程序及界面设计 20 4 5 1 上位机程序的设计 20 4 5 2 上位机界面的设计 21 4 6 扩展血压计功能 22 5 软硬件调试 23 6 结论 27 谢辞 28 参考文献 29 附录 30 1 1 引言 随着经济的飞速发展和人民生活水平的日益提高 有关心脑血管疾病的发病 率与死亡率正在呈逐年上升趋势 这就需要一种方便的方法来测量心脑血管的健 康状况 可以实时观测和评估人体的健康状况 从古到今中外医学界都重视从脉搏波中提取人体的健康状况 并作为临床诊 断和治疗的依据 世界上几乎所有的民族都用过摸脉来作为诊断疾病的手段 因 为脉搏处跳动压力比较明显 脉搏波所显示出的波形 压力强度 频率和节奏等 方面的综合信息 在很大程度上可以反映出人体心脑血管系统中许多生理病理的 健康状况 直接用手摸脉测量误差较大 并且无法实时观测 如果采用电子测量计 有 利于精确测量 还可以借助 PC 机进行高效 合理的判断和分析 随着集成电路技 术的发展 电子脉搏计必然向微型化 大众化 智能化的方向发展 脉搏计是最常用的医疗检查设备之一 实时准确的脉搏测量在日常生活 患 者监控 临床治疗及体育运动等方面都有着广泛的应用 脉搏测量包括瞬时脉搏 测量和平均脉搏测量 瞬时脉搏可以反映心率的快慢 同时能反映心率是否匀齐 平均脉搏测量虽然只能反映心率的快慢 但记录方便 本设计这两个参数在测量 时都会被记录并且显示 瞬时测量结果通过 PC 机实时显示 平均脉搏测量结果通 过 LED 七段数码管显示 为了适应人们生活中的需要 本文设计一款基于压电传感器的电子脉搏计 实现瞬时脉搏测量和平均脉搏测量 并将测量结果用数字显示 该电子脉搏计具 有误差小 体积小易于携带的特点 家中备有这样的一款脉搏计 就可以在日常 生活中监控自己和家人的心率变化 可以有效防止和控制多种疾病的发生和变化 达到日常保健的目的 测量范围广 测量精度高 显示采用三位十进制数显示 其设计思路是用压电传感器把待检测对象的脉搏跳动转变成电信号 但是由于 信号比较微弱 需要经过传感器内部放大整形滤波后才可以得到规则的脉冲波形 处理后的信号经过单片机定时计数后通过译码电路就可以从数码管直接读出被测 对象的脉搏数了 同时记录每一次脉搏跳动的间隔和力度 实时记录绘制曲线 分析数据 定时由基准时间产生电路完成 STC89C52 单片机构成的控制电路在 硬件的作用下控制脉搏信号放大 整形和倍频后再通过软件进入定时计数器的时 间 该基于单片机的电子脉搏计优点是制作简单 使用元器件少 工作稳定可靠 显示直观 误差不大于 1 成本低廉且能节电 2 2 总体设计思路 2 1 方案设计与选取 2 1 1 总体流程图 设计的总体流程图如图2 1所示 图 2 1 总体流程图 2 1 2 方案选择 方案1 1 信号采集 脉搏传感器将脉搏跳动的压力信号转换为与此相对应的电信号 2 放大电路 将传感器所采集到的微弱电流电压放大 可采用高输入阻抗的非 门进行放大 3 低通滤波 空气中存在的高频信号对信号采集有影响 需要进行滤除 只让 低频脉冲信号通过 对脉搏信号进行采集的时候 空气中交流工频干扰最大 根 据有源滤波的原理 在接至非门的输入与输出之间作为直流偏置电阻上并联一个 电容 4 整形电路 可用两个非门组成的施密特触发器对放大后的信号进行整形 5 计数 译码 显示 用来读出脉搏数 并以十进制数的形式由数码管显示 方案2 1 信号采集 脉搏传感器将脉搏跳动的压力信号转换为与此相对应的电信号 2 放大电路 用普通运放进行发大 为达到高输入阻抗的要求 采用同相比例 放大 3 低通滤波 在运放的反馈电阻上并联一个电容 达到滤波的效果 4 整形电路 通过集成运算放大电路运放组成的单限比较器进行脉冲整形 方案3 1 信号采集与放大 与方案 1 和方案 2 中不同的是信号的采集和放大用一个 MB 4 型传感器实现 传感器不仅能把压力信号转变为电信号 而且还能通过传感 器内部电路把信号放大输出 信号采集放大整形单片机 模数变换 数码管显示 上位机显示 3 2 波形整形 由于单片机中断不识别脉搏波 所以放大后的信号通过 555 芯片 构建的施密特触发器 将放大后的脉搏波转变为单片机实现的方波信号 3 模数变换 将信号送入模数变换后将模拟信号转变为数字信号送入单片机 为上位机波形显示部分做准备 4 数码管显示 用来读出脉搏数 并以十进制数的形式由数码管显示 通过以上方案对比观察可以得出 方案 3 中传感器的选取简单易行 节约了 许多外围电路的空间 缩小了整体电路的体积 更加便于携带 如果价格合适的 话 是最优的方案选择 波形整形部分 方案 3 中的由 555 定时器构成的施密特 触发器 电路搭构简单易行 与前两个方案相比减少了电路器件的繁琐度 采用 数码管显示 节约设计成本 而且可以实现实时显示的功能 综合考虑 设计选 择方案 3 的整体设计思路进行设计 2 2 总体电路图 总体电路图如图 2 2 所示 图 2 2 总体电路图 单片机的 P1 口八个引脚分别与 LED 数码管的八段段码显示控制端相连接 构成了片选控制端 单片机的 P3 3 P3 5 引脚分别接到 LED 数码管位选控制端 当程序控制单片机发送相应的字符时 数码管便会相应的点亮 从而实现每分钟 4 脉搏数目的显示 这就是显示模块的设计 ADDA ADDB ADDC3 位地址输入线接地 即选用 IN0 通道 模拟信号 通过 IN0 通道输入 时钟控制信号通过 CLOCK 端口输入 时钟频率选择为 500kHz A D 转换启动脉冲输入端 START 与单片机的 P2 4 引脚相连 数据输 出允许信号输入端 OE 与单片机的 P2 5 引脚相连 通过单片机的 P2 4 与 P2 5 引脚控制 ADC0809 芯片 当转换完成后数据通过 ADC0809 的 OUT1 OUT8 引脚送入单片机的 P0 0 P0 7 引脚进行处理 总体电路框图用信号发生器代替传感器模拟采集到的信号 一路送入单片机 经过单片机的处理后送 LED 数码管显示每分钟的脉搏数 一路送到 ADC0809 芯 片进行模数转换 并将转换后的信号送入单片机 信号经过单片机的处理后送到 上位机实时显示脉搏波波形 5 3 硬件电路结构模块 3 1 单片机的选取 考虑到单片机作为整体电路设计的核心工作单元 选取 STC89C52 型号的单 片机作为总处理器 STC89C52 是一种带 8K 字节闪烁可编程可擦除只读存储器 FPEROM Flash Programable and Erasable Read Only Memory 的低电压 高性能 CMOS8 的微处理器 俗称单片机 该器件采用 ATMEL 高密度非易失存储器制造 技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 其芯片引脚图如下 图 3 1 所示 图 3 1 STC89C52 芯片引脚图 STC89C52 主要功能 兼容 MCS51 指令系统 32 个双向 I O 口 3 个 16 位可 编程定时 计数器中断 2 个串行中断 2 个外部中断源 2 个读写中断口线 低功 耗空闲和掉电模式 8K 可反复擦写 Flash ROM 256x8bit 内部 RAM 时钟频率 0 到 24MHz 可编程 UART 串行通道 共 6 个中断源 3 级加密位 软件设置睡眠 和唤醒功能 3 1 1 STC89C52 引脚功能说明 1 可编程输入 输出引脚 STC89C52 单片机有 4 组 8 位的可编程 I O 口 分 别位 P0 P1 P2 P3 口 每个口有 8 根引脚 共 32 根 6 P0 口 8 位双向 I O 口线 名称为 P0 0 P0 7 P1 口 8 位准双向 I O 口线 名称为 P1 0 P1 7 P2 口 8 位准双向 I O 口线 名称为 P2 0 P2 7 P3 口 8 位准双向 I O 口线 名称为 P3 0 P3 7 2 控制引脚 RST VPP 复位引脚 引脚上出现 2 个机器周期的高电平将使 单片机复位 ALE PROG 地址锁存允许信号 PSEN 外部存储器读选通信号 EA VPP 程序存储器的内外部选通 接低电平从外部程序存储器读指令 如果接 高电平则从内部程序存储器读指令 3 外接晶振引脚 XTAL1 片内振荡电路的输入端 XTAL2 片内振荡电路 的输出端 4 电源引脚 VCC 电源输入 接 5V 电源 GND 接地线 11 3 1 2 振荡电路 单片机的时钟信号由内部振荡电路产生 振荡电路如图 3 2 所示 图 3 2 振荡电路 本系统选取的晶振频率为 12MHz 电容选择 30pF 经计算得单片机工作机器 周期为 1 s 3 1 3 复位电路 复位是单片机的初始化操作 其主要功能是把 PC 初始化为 0000H 使单片机 从 0000H 单元开始执行程序 除了进入系统的正常初始化之外 当由于程序运行 出错或操作错误使系统处于死锁状态时 为摆脱困境 也需按复位键重新启动 RST 引脚是复位信号的输入端 复位信号是高电平有效 其有效时间应持续二个 机器周期以上 若使用频率为 12MHz 的晶振 则复位信号持续时间应超过 2 s 才 能完成复位操作 1 7 复位操作有上电自动复位和按键手动复位两种方式 上电自动复位是通过外 部复位电路的电容充电来实现的 按键手动复位有电平方式和脉冲方式两种 其 中 按键电平复位是通过使复位端经电阻与 Vcc 电源接通而实现的 而按键脉冲 复位则是利用 RC 微分电路产生的正脉冲来实现的 按键电平复位电路如图 3 3 所 示 图 3 3 按键电平复位电路 上述电路图中的电容 电阻参数适用于 12MHz 晶振 能保证复位信号高电平 持续时间大于 2 个机器周期 本系统的复位电路采用按键电平复位方式 由于程序运行出错或操作错误使 系统处于死锁状态时 此方式无需重新上电 直接按键复位即可 操作简单 3 2 AD 转换电路模块 AD 转换即模数转换 就是把模拟信号转换成数字信号 以便于计算机进行 处理 目前广泛应用在单片机系统中的主要有积分型 逐次比较型 并行比较型 串并行型 调制型 电容阵列逐次比较型 压频变换型 打算采用的具体芯片型号为逐次比较型 ADC0809 AD574A 与双积分型 AD 转换器 MC14433 考虑到转换精度 速度和芯片价格 本设计采用 ADC0809 ADC0809 是美国国家半导体公司生产的 CMOS 工艺 8 通道 8 位逐 次逼近式 AD 转换器 其内部有一个 8 通道多路开关 它可以根据地址码锁存译码后的信号 只选 通 8 路模拟输入信号中的一个进行 AD 转换 ADC0809 是目前国内应用最广泛 的 8 位通用 AD 芯片 ADC0809 芯片有 28 条引脚 采用双列直插式封装 3 2 1 ADC0809 引脚功能 下面说明各引脚功能 8 IN0 IN7 8 路模拟量输入端 D0 D8 8 位数字量输出端 ADDA ADDB ADDC 3 位地址输入线 用于选通 8 路模拟输入中的一 路 START A D 转换启动脉冲输入端 输入一个正脉冲使其启动 脉冲 上升 沿使 ADC0809 复位 下降沿启动 A D 转换 EOC A D 转换结束信号输出端 当 A D 转换结束时 此端输出一个高电 平 转换期间一直为低电平 OE 数据输出允许信号输入 端 高电平有效 当 A D 转换结束时 此端输 入一个高电平 才能打开输出三态门 输出数字量 CLK 时钟脉冲输入端 要求时钟频率不高于 640KHZ REF REF 基准电压 Vcc 电源 单一 5V GND 地 13 3 2 2 ADC0809 主要特性 ADC0809 主要特性 8 路输入通道 8 位 A D 转换器 即分辨率为 8 位 具有转换启停控制端 时钟为 640kHz 时转换时间为 100 s 时钟为 500kHz 时 130 s 单个 5V 电源供电 模拟输入电压范围 0 5V 不需零点和满刻度校 准 工作温度范围为 40 85 摄氏度 低功耗 约 15mW 3 2 3 ADC0809 工作过程 首先输入 3 位地址 并使 ALE 1 将地址存入地址锁存器中 此地址经译 码选通 8 路模拟输入之一到比较器 START 上升沿将逐次逼近寄存器复位 下 降沿时启动 A D 转换 之后 EOC 输出信号变低 指示转换正在进行 直到 A D 转换完成 EOC 变为高电平 指示 A D 转换结束 结果数据已存入锁存器 这个信号可用作中断申请 当 OE 输入高电平时 输出三态门打开 转换结果 的数字量输出到数据总线上 转换数据的传送 A D 转换后得到的数据应及时传送给单片机进行处理 数 据传送的关键问题是如何确认 A D 转换的完成 因为只有确认完成后 才能进 行传送 为此可采用下述三种方式 确认 AD 转换是否完成 12 1 定时传送方式 对于一种 A D 转换其来说 转换时间作为一项技术指标是已知的和固定的 例如 ADC0809 在时钟频率为 500kHz 时转换时间为 128 s 相当于 12MHz 的 MCS 51 单片机共 128 个机器周期 可据此设计一个延时子程序 A D 转换启 动后即调用此子程序 当延迟时间到达时 转换可以确定已经完成了 接着就 9 可进行数据传送 2 查询方式 A D 转换芯片可以利用表明转换完成的状态信号 例如 ADC0809 的 EOC 端 因此可以用查询方式 查询 EOC 的状态 即可判断转换是否完成 并接着 进行数据传送 3 中断方式 用转换完成的状态信号 EOC 作为中断请求信号 以中断方式进行数据 传送 本设计采用单独通道 定时传送方式 ADDA ADDB ADDC3 位地址输入 线接地 即选用 IN0 通道输入模拟信号 经 ADC0809 转换完成后将数字信号采 用定时传送方式传入单片机进行数据处理 然后单片机把数据经过MAX232 电 平转换后送入 PC 机串口 PC 机根据所接收的数据经过 VB 界面实时绘制波形 3 2 4 ADC0809 与单片机接口电路 由于 proteus 仿真软件不支持 ADC0809 芯片仿真 所以采用 ADC0808 芯片代 替 ADC0809 其功能特性与 ADC0809 芯片相同 软件仿真时采用 ADC0808 芯片 实际硬件电路中采用 ADC0809 芯片 无论是仿真还是实际硬件其与单片机接口电 路相同 ADC0808 与单片机接口电路如图 3 4 所示 图 3 4 ADC0808 与单片机接口电路 10 由图 3 4 接口电路可以看出 ADDA ADDB ADDC3 位地址输入线接地 即选用 IN0 通道 模拟信号通过 IN0 通道输入 时钟控制信号通过 CLOCK 端 口输入 时钟频率选择为 500kHz A D 转换启动脉冲输入端 START 与单片机 的 P2 4 口相连 数据输出允许信号输入端 OE 与单片机的 P2 5 口相连 通过单 片机的 P2 4 与 P2 5 端口控制 ADC0809 芯片 当转换完成后数据通过 ADC0809 的 OUT1 OUT8 端口送入单片机的 P0 0 P0 7 进行处理 3 2 5 ADC0809 与 PC 机连接 本设计需要单片机与 PC 机间实现实时通信 PC 机内基本上都装有一个 RS 232 异步通信适配板 它的主要工作器件是可编程的 UART 芯片 从而可以使 PC 机有能力与其他具有标准 RS 232 串行通信接口的其他设备进行通信 STC89C52 单片机本身具有一个全双工的串行口 但其串行口为 TTL 电平 需要外接一个 TTL RS 232 电平转换器这样才能使单片机的串口与 PC 的 RS 232 串行口进行连接 这样便可以组成一个简单的串行通信接口 由于 PC 机的 RS 232 逻辑电平与单片机的 TTL 电平不兼容 为了实现单片机 与 PC 机的通信 必须进行电平转换 因此本设计采用由美国 MAXIM 公司生产的 MAX232 芯片 它是目前应用较为普遍的串行口电平转换器 PC 机串口输出电压 可高达 12V 若直接与单片机相连会烧坏芯片 所以要借助于 MAX232 芯片来进 行相应的电平转换 MAX232 芯片用 5V 电源供电 另外需要外接几个电容便可 以完成从 TTL 电平到 RS 232 电平的转换 仅仅需要连接 STC89C52 单片机的 RXD 和 TXD 引脚便可以实现数据的传输 12 MAX232 芯片与单片机和串口的电 路连接图如图 3 5 所示 图 3 5 MAX232 接口电路 11 在实际的焊接过程中一定要认真细心 在看好引脚序号和硬件引脚必须一致 否则当硬件焊接好后在调试过程中会遇到许多意想不到的问题 不仅需要花很长 时间去检查究竟是哪个地方出错了 如何修改 事倍功半 效果很不理想 在调试硬件时串口老是接收不到数据 在经过多次修改程序与硬件电路检查 后终于发现是 MAX232 与串口的引脚错接到引脚 8 导致了以后许多不必要的工作 量 既浪费时间又浪费精力 所以说认真细心的态度是工作中所必需的 3 3 传感器的选取 本设计中关键之处在于信号的采集 信号采集可以分为压电式信号采集或光 电式信号采集 由于光电信号采集相对误差较大 可控制度低且成本比较高 于 是本设计采用压电式传感器采取信号 考虑到的压电式传感器有压电薄膜传感器 压电陶瓷片 HK 2000 系列的脉搏传感器 MB 4 型脉搏波传感器和 SC0073 微型 脉搏传感器 SC0073 微型动态脉搏微压传感器的主要性能指标如下 压力范围 1Kpa 灵敏度 0 2mv pa 非线性度 1 F S 频率响应 1 1000HZ 标准工作电压 3V DC 扩充工作电压 1 5 6V DC 标准负载电阻 10K 扩充电阻 5K 20K 外形尺寸 SC0073 A F12 7 X 7 6 由以上性能指标可以看出 SC0073 微型动态脉搏微压传感器具有比较高的灵敏 度 非线性比较好 频率响应范围很广 但如果人体脉搏每分钟心跳少于 60 下 则有可能检测不到脉搏信号 扩充工作电压可以与单片机的工作电压相匹配 节 省了另外独立的工作电源 外形尺寸小巧轻便 价格在 60 元左右 总体来说 除 了测量脉搏范围有一点儿不足外 其他各方面的性能都值得考虑 HK 2000A 集成化脉搏传感器性能指标如下 电源电压 3 12VDC 压力量程 50 300mmHg 过载 100 倍 输出高电平 大于 VCC 1 5V 输出低电平 小于 0 2V 12 HK 2000A 集成化脉搏传感器采用高度集成化工艺将力敏元件 PVDF 压电膜 灵敏度温度补偿元件 感温元件 信号调理电路集成在传感器内 脉搏波动一次 输出一正脉冲 该产品可用于脉率检测 主要用于运动 健身器材中的心率测试 其灵敏度高 抗干扰性能强 过载能力大 一致性好 性能稳定可靠 使用寿命 长 价格在 100 元左右 HK 2000B 集成化脉搏传感器性能指标如下 电源电压 5 6VDC 压力量程 50 300mmHg 灵敏度 2000uV mmHg 灵敏度温度系数 1 10 4 精度 0 5 重复性 0 5 迟滞 0 5 过载 100 倍 HK 2000B 集成化脉搏传感器采用高度集成化工艺将力敏元件 PVDF 压电膜 灵敏度温度补偿元件 感温元件 信号调理电路电路集成在传感器内 主要应用 于无创心血管测试 中医脉象诊断 其灵敏度高 抗干扰性能强 过载能力大 一致性好 性能稳定可靠 使用寿命长 价格在 240 元左右 HK 2000C 集成化数字脉搏传感器在 HK 2000B 集成化脉搏传感器基础上增加 了程控放大电路 基线调整电路 A D 转换电路 串行通信电路 使用户使用更 方便 快捷 性能指标同 HK 2000B 集成化脉搏传感器 价格在 480 元左右 MB 4 型脉搏波传感器主要性能指标如下 1 频率响应 0 1 35Hz 2 灵敏度 2mv Pa 对于正常脉搏波信号 输出幅度可达 3 4Vp p 3 绝缘阻抗 1000M 4 输出阻抗 0 t LED 数码管采用动态扫描方式显示 相应的就需要动态扫描函数来控制 首先定义一个局部变量 通过局部变量的变化来控制 LED 数码管的位选控制端 19 和段码显示控制 当这些设定好后 要想使亮着的数码管持续时间能够满足人的 视觉暂留效果 便需要调用延时子函数使其延时时间满足需求 本设计选用的延 时时间为 1 5ms 具体程序如下所示 Scan LED 数码管扫描子函数 uchar k 定义局部变量 k for k 0 k 3 k 通过 k 控制哪个数码管显示 Discan scan con k 位选控制位送 P3 口 DiSdata dis 7 display k 字码段数据位送 P1 口 delay us 150 设定延时时间为 1 5ms 4 3 AD 转换模块的设计 虽然 ADC0809 芯片是可以用来进行 8 路信号同时输入循环检测的 但本设计 只采用单独通道进行信号转换 因为这个芯片应用普遍价格实惠 所以选用此芯 片 代码设计中采用定时传送方式 把 ADDA ADDB ADDC 三个地址输入线 都接地 即选用 IN0 通道输入模拟信号 经 ADC0809 转换完成后将数字信号采 用定时传送方式传入单片机进行数据处理 因为对于一种方式的 A D 转换其来说 转换时间是已知的和固定的 例如 ADC0809 在时钟频率为 500kHz 时转换时间为 128 s 相当于 12MHz 的 MCS 51 单片机共 128 个机器周期 可据此设计一个延时子程序 A D 转换启动后即 调用此子程序 当延迟时间到达时 转换可以确定已经完成了 接着就可进行数 据传送 程序代码设计中首先令 START 为 1 延时一段时间后将主次逼近寄存器复 位 然后再令 START 为 0 启动 AD 转换并延时 随后 EOC 输出信号变低 指示转换正在进行 直到 AD 转换完成 EOC 变为高电平 指示 AD 转换工作 结束 并将转换结果存入锁存器 接着设置 OE 为 1 打开输出三态门 并将转 化的数字量输出到数据总线上传到 P0 口 P0 口数据再送入单片机的数据缓存 单元等待处理 之后设置 OE 为 0 关闭输出三态门 具体 AD 转换子程序代码 如下所示 void ad 20 unsigned int i j 声明局部变量 i j START 1 使其逐次逼近寄存器复位 For i 0 i 5 i 延时等待复位完成 START 0 启动 AD 转换 并使 EOC 信号为低电平 For i 0 i 0 t 32 scan LED 扫描函数 uchar k for k 0 k 3 k discan scan con k 控制位送 P3 口 DiSdata dis 7 display k 数据位送 P1 口 delay us 150 串行口初始化 void init serial void TMOD 0 x20 定时器 1 方式 2 8 位自动重装 SCON 0 x40 串行工作方式 1 8 位异步通信方式 PCON 0 x00 SMOD 1 表示数据传输率加倍 TH1 0 xfd TL1 0 xfd 数据传输率 9600 fosc 11 0592MHz TR1 1 OE 1 启动定时器 1 向串口发送一个字符 void send char unsigned char x SBUF x while TI 0 TI 0 Timer0 interrupt 1 定时 T0 中断服务程序 mb n n 0 void ex int0 interrupt 0 外部中断 0 中断服务程序 33 n void dingshi TMOD 0 x02 工作方式 T0 选择方式 2 计数 TH0 T0H 装载初值 TL0 T0L PX0 1 外部中断 0 为为高优先级中断 ET0 1 允许 T0 溢出中断 EX0 1 允许外部中断 0 中断 TR0 1 启动定时计数 T0 工作 EA 1 所有的中断请求被开放 main 主函数 unsigned int i j dingshi init serial while 1 display 2 mb 10 display 1 mb 10 10 display 0 mb 100 10 scan START 1 for i 0 i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论