沈阳理工大学学士学位论文
图2.7.1 显示部分连接电路
数码管的显示方式分为两种:静态显示,动态显示。
数码管静态显示也称直流驱动静态驱动是指每个数码管的每一个段码都由一个单片机的I/O引脚进行驱动,或者使用译码器进行驱动,静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O引脚多,如驱动5个数码管静态显示则需要538=40根I/O引脚来驱动,实际应用时通常增加驱动器进行驱动。
动态显示是单片机中广泛应用的显示方式,动态驱动是将所有数码管的8个显示笔划\\的同名引脚连在一起,另外为每个数码管的公共端COM增加选通控制电路,选通信号由独立的I/O引脚控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对COM端选通电路的控制。通过轮流选通各个LED数码管的COM端,使各个数码管轮流显示,这就是动态显示过程[8]。
本论文采取的显示方式是动态显示 。P0实现段选,P2.0-P2.3实现位选。
在动态显示过程中,每个数码管轮流点亮,每次时间约1~2ms,由于人的视觉暂留效果及发光二极体的余辉效应,尽管实际上各数码管并非是同时点亮的,但给人的视觉印象不会有闪烁感动态显示的效果能够节省大量的I/O引脚,而且功耗更低。
27
沈阳理工大学学士学位论文
3 热量计的软件设计
3.1 主程序流程图
主程序包括初始化、温度和流量采集、热量计算、数码管显示等主要部分组成,从该流程图可以完整的看出本系统所要实现的功能。
图3.1.1 主程序流程图
3.2 温度采集子程序流程图
温度采集子程序包括数字温度传感器DS18B20的初始化、读写、温度转换。本系统中应用两个DS18B20芯片,第一个用于测量入水温度,第二个用于测量出水温度,基于实际模型设计,入水温度应大于出水温度。
28
沈阳理工大学学士学位论文
图3.2.1 温度采集子程序流程图
3.3 热量计算子程序流程图
热量计算子程序的主要内容是:读取两个温度传感器的温度值和计数器的流量值,计算温度差,套用热量计算公式进行计算。
考虑实验室室温约为25摄氏度左右,故查阅资料K可取值约为60。 经公式Q=K*(wendu1-wendu2)*v计算,最后得出的热量值单位为10
-3J,即为耗损热量的值。
29
沈阳理工大学学士学位论文
图3.3.1 热量计算子程序流程图
3.4 数码管显示子程序流程图
采用数码管动态扫描的方式显示。
数码管显示子程序中还包括了对按键K1和K2的处理,利用循环扫描的方式进行查询是否有按键按下。
K1按下,将第一个DS18B20的温度值送至数码管显示;K2按下,将第二个DS18B20的温度值送至数码管显示;无按键按下,显示计算出的热量值。
30
沈阳理工大学学士学位论文
图3.4.1 数码管显示子程序流程图
3.5 单片机C语言开发软件Keil C51
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil几乎就不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令使用者事半功倍。
3.5.1 Keil C51操作界面介绍
31