的数码管,因此只需将所要显示某位的数码管选通的控制打开,数码管所在的位会显示出字形来,然而数码管的选通控制没有打开,即该数码管不会显示。数码管的动态驱动是分时轮流控制数码管(C0M)端,可以实现控制数码管的显示。能够节省大量的I/O口,并且功耗更低。
P0010P01P029P031P043P052P066P0745fegdbcdpefgdbcdpD12位数码管78Q5NPNR114.7KQ6NPNR134.7KR104.7KP24P25R124.7K
图3-8通道显示
P0011P01P0274P03P042P05110P06P0753afedgbcdpedfgbcdpedfgbcdpedfagbcdpD24位数码管12986Q1NPNR34.7KQ2NPNR54.7KQ3NPNR74.7KQ4NPNR94.7KR24.7KR44.7KR64.7KR84.7K P20P21P22
图3-9 温度显示
3.7 按键电路的设计
常用的键盘分为独立按键式键盘与行列扫描式键盘两种。独立按键式键盘用于在系统中所用的按键不多的情况,单个的按键电路与单片机的I/O 口线直接连接。而行列扫描式键盘用在系统中所需按键较多的情况,由于本设计用到的键盘数量少,单片
7 1
P23
机I/O 端口充足,故使用独立式键盘。
在单片机的应用当中,有时需要输入配置信息参数。在这些的应用当中,键盘是一个不可以缺少的部分,运用STC12C5A16AD单片机很容易就可以实现独立键盘的功能。结合本系统采用独立式按键,接口接在STC12C5A16AD单片机的P1.2、P1.3、P1.4上,总共是3个独立的按键,按键按下,电路导通,相应的功能就会得到应用,四个按键分别是S1、S2、S3,主要的功能是S1巡检,S2定点,S3退出报警。
P12s1SW-PBP13s2SW-PBP14s3SW-PB 图3-10 独立按键电路图
3.8 报警电路的设计
在单片机采集温度当超出所设定的温度500℃时,单片机系统能相应发出提醒。本设计采用蜂鸣器。蜂鸣器可用STC12C5A16AD 的P1.0口线通过设置PNP的饱和截止驱动蜂鸣器发声,应当I/O口线发出具有一定的低电平信号,即可使蜂鸣器报警。报警电路如图3-11所示。
VCCU3BUZZERR141.5KP10Q19012
图3-11 报警电路图
18
3.9 本章小结
本章内容详细地分析系统硬件电路,良好的硬件是保证系统正常工作的基础。整个硬件系统由单片机最小系统、电源电路、温度检测电路、多通道切换电路、A/D转换电路、显示电路、按键电路、报警电路组成。
系统选用STC12C5A16AD系统的MCU,保证了系统高速、稳定运行,MAX6675内置AD用来转换采集来的电压信号。
9 1
第4章 系统软件设计
软件的功能可以分为两大类:一是主程序,它是整个控制系统的核心,主要是用来协调各执行模块和操作者的关系。二是子程序,主要是用来完成各种实质性的功能AD转换、状态显示、通讯等。每一个执行软件也就是一个小的功能执行模块。
因为汇编语言程序的可读性与可移植性相对较差,使用汇编语言编写程序周期长,调试与排错也很难,为了使单片机应用程序的效率得到提高,使程序的可读性和可移植性得到改善,采用高级语言无疑是一种很好的选择。采用C语言可以提高单片机应用程序的效率,改善程序的可读性和可移植性。C语言既有面向硬件和系统、像汇编语言那样可以直接访问硬件的功能,又有高级语言面向用户、容易记忆、便于阅读和书写的优点,C语言表达能力强且应用灵活的特点。
温度检测仪的检测的程序采用模块的思想,让主程序担当协调模块之间处理的核心,设置许多的模块化的子程序,使用子程序可以让各个模块的功能能够实现,使得设计简化,当运行中出现问题时,用户可以调用子程序能够直观地检查出问题的所在,大大简化了调试,设计思路清晰,使复杂的功能实现简洁易行。
采用模块程序设计。采用自顶向下的程序设计。外部设备和外部事件尽量采用中断方式与CPU联络,这样既便于系统模块化, 也可提高程序效率。近几年推出的单片机开发系统, 有些是支持高级语言的,系统的软件设计应充分考虑到软件抗干扰措施。
本设计主要分为系统主程序的设计、显示子程序的设计、按键子程序的设计、A/D转换子程序的设计、报警子程序的设计。
4.1系统主程序的设计
温度巡检仪通电后,系统初始化完成以后,系统首先要进行切换通道,然后进行AD采集读取温度,并且执行温度比较,假如温度超过设定的上限值,将进行蜂鸣器报警并显示报警温度,如果温度没有高于设定的上限值,则通过数码管显示正常温度数据。之后扫描按键,判断按键是否按下,如果有按键触发将会进行按键处理,如果没有按键触发则返回主程序。系统总流程图如图4-1所示。
20
开始初始化切换通道AD采集读取温度温度超过上限值N显示Y蜂鸣器响进行按键处理扫描按键按键是否按下YN返回
图4-1 系统总流程图
4.2 显示子程序的设计
本设计采用两位一体的共阴数码管显示通道号,四位一体共阴数码管显示温度信息。
数码显示有静态显示和动态显示两种方式,由硬件决定了本设计采用动态显示方式,动态显示具有节约CPU 资源、节省单片机端口、显示灵活等优点。 显示模块具体要求如下:
1、能够单独显示某一位; 2、小数点能够灵活显示; 3、能够实时的显示。
通道号显示子程序流程图如图4-2所示,温度值显示子程序流程图如图4-3所示。
1 2