图4.3 中服程序流程
4.4 数据处理模块
当计数时间没有到达一分钟时,将计数结果顺序存放在数组内,当计数时间到一分钟时,将计数值顺序前移,即将前一分钟第一秒的计数值移除数组,而将最近一秒的计数值移入数组。流程图如下:
图4.4 数据更新模块流程图
4.5 显示模块
显示程序包括显示一秒钟内已经计数的脉冲总个数,以及达到一分钟后,点亮LED灯,数码管显示最近60秒的脉冲个数。
在此我们选用8位共阳极数码管,设置字型码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,分别表示数字0~9, P1.0、P1.1、P1.2口控制显示字位,四位数码管的最后一位显示计数和的个位,四位数码管的倒数第二位显示计数和的十位,数码管的倒数第三位显示计数和的百位,需要显示某一位时,将该位置1,其他位置0,流程图如下:
图4.5 显示模块流程图
4.6 串行数据输出
设置串口工作在方式1,采用8位通用异步接收器/发送器,允许串行接收,发送中断标志位置1,接收中断标志位置0。串行数据接口每秒钟向外发送一次计数值,一分钟内,发送当前已经计数到的脉冲总数,当计数时间超过一分钟,则向外发送最近的60秒内计数到的脉冲数。
5 系统仿真
应用仿真软件对该电路进行仿真,可以进一步分析电路的工作过程与原理,以及各个部分的电平变化。
在单片机的仿真过程中,主要用到了两个软件,一个是Keil,一个是Protues,先对这两个软件进行简单的介绍。
5.1 Keil简介
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可文护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
5.2 Protues简介
Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、MSP430、8PIC10/12/16/18/24/30/DsPIC33、086、 Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。
它具有4大功能模块:
1)智能原理图设计(ISIS)
2)完善的电路仿真功能(Prospice)
3)独特的单片机协同仿真功能(VSM)
4)实用的PCB设计平台
它还提供了丰富的资源:
1)Protues可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库;
2)Protues可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用;
3)除了现实存在的仪器外,Protues还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响;
4)Protues可提供的调试手段 Protues提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 AT89C51单片机脉搏波提取电路的设计+源程序(9):http://www.youerw.com/tongxin/lunwen_2781.html