何 静
摘 要:介绍一种基于EM78P468单片机的电脑监视器,详细阐述系统组成结构和软硬件设计。系统采用测温模块反映当前电脑CPU的温度并显示,当温度达到报警温度时则报警。采用风扇测速模块检测并显示三路风扇转速,利用按键模块实现LCD的复位,温度显示单位的转换;报警温度的设定;时间的设定;真实时间和工作时间的显示等功能。系统结构简单,功能齐全,具有低成本、低功耗、高可靠性等特点。
关键词:EM78P468单片机;LCD显示;A/D转换;电脑监视器
中图分类号:TP3681文献标识码:B
文章编号:1004-373X(2009)12-139-03
Design of Computer Monitor Based on EM78P468 Single Chip Computer
HE Jing
(Hunan University of Commerce,Changsha,410205,China)
Abstract:The computer monitor based on EM78P468 is introduced in this paper.It is expatiated on the basic frame and the design of software and hardware.It examines computer CPU temperature by temperature module.When the temperature achieves the alarm temperature,then alarming.Simultaneously examines and demonstrates the ventilator speed,Moreover,the design can realize the LCD reset,the unit conversion of temperature display,alarm temperature setting,time setting,work time and real time display by key module.The whole system has characteristics of simple structure,strong functions,low cost,low power and high reliability.
Keywords:EM78P468;LCD display;A/D conversion;computer monitor
0 引 言
在计算机技术逐渐渗入社会生活各个层面的今天,使用计算机的人越来越多。在这些人群当中,有很大一部分对电脑硬件并不熟悉,或不懂得维护。在此设计一个电脑监控器,它的功能是及时反映出电脑主机内部CPU温度及风扇运转情况等,可及时有效地对电脑进行维护。
1 系统组成及功能
1.1 系统的构成
电脑监视器由EM78P468单片机、按键模块、风扇测速模块、测温模块、显示模块、报警模块等组成,其系统总体结构框图如图1所示。
1.2 系统的主要功能
设计主要实现的功能是及时检测电脑CPU的温度,当温度达到报警温度时则报警,同时检测并显示风扇转速,当风扇不工作或工作出现故障时都可及时地从转速发现问题。另外,可显示真实时间或电脑工作时间,以确定电脑工作寿命。
图1 系统总体框图
2 系统硬件设计
系统硬件电路部分包括:EM78P468单片机、按键模块、风扇测速模块、测温模块、显示模块、报警模块。
2.1 EM78P468单片机
EM78P468是采用低功耗高速CMOS工艺设计开发出来的8位单片机。其内部有4K×13位一次性编程ROM,集成了看门狗,RAM,可编程时钟计数器,内部和外部的中断,掉电模式,LCD驱动,红外发射功能,三态双向I/O口;并且提供程序保护位来防止写入的程序被他人非法读出。其芯片为64引脚封装,工作电压为2.2~5.5 V,工作温度在0~70 ℃之间。
2.2 RC测温模块
RC测温模块实际上是通过标准电阻和待测热敏电阻的比例关系来求出当前温度。它的电路图如图3所示。电路由单片机和电阻Rs,Rm,Rd及电容C组成。
在图2中,Rs是标准电阻,用于校正和定标;Rm是被检测的热敏电阻;Rd是一个限流电阻,为了使充电电流能保证单片机不会损坏,Rd一般取500 Ω左右。可以测出标定电阻和热敏电阻的放电时间分别为ts,tm,从而Rm=tmRs/ts。再根据热敏电阻的分度表查出对应的温度。
图2 RC测温模块
2.3 报警模块
报警模块的电路图如图3所示。电路由4.7 kΩ电阻、NPN三极管和蜂鸣器构成。当温度超过报警温度时,由P67脚发出一个4 kHz的方波来驱动蜂鸣器发出报警声。
图3 报警模块
2.4 电压检测模块
电压检测模块如图4所示,通过P54脚检测当前电压来决定是否进入睡眠模式以省电。图中的Power Jack相当于一个多路开关,提供多路电源并为系统供电,当系统正常工作的时候,开关接5 V电源,P54脚通过Power Detect检测结果为高电平,由于二极管的单向导通性能,VCC左边的二极管导通,而VCC右边的二极管处于截止状态,不使用电池;当系统掉电时,Power Jack接的是地,所以P54脚通过Power Detect检测结果为低电平,VCC左边的二极管处于截止状态,而VCC右边的二极管处于导通状态,系统直接进入睡眠状态。
2.5 风扇测速模块
风扇测速模块如图5所示。系统的三路风扇分别接到三路风扇插座上面,每路风扇都由12 V电源供电;每路风扇插座的1号端口由VCC(5 V)供电,并通过Rpm接到I/O端口上。当风扇正常工作的时候,会在每个插座的1号端口输出一系列周期为毫秒级的方波,这样只要测出相应的I/O端口单位时间(1 s)内的方波个数,就可以计算出风扇转速。
图4 电压检测模块
图5 风扇测速模块
3 系统软件设计
3.1 主程序流程图
系统软件采用汇编语言编写,程序主要流程图如图6所示。系统程序主要包括了初始化、按键子程序、A/D转换子程序、报警子程序、风扇测速子程序、工作时钟子程序、显示子程序、真实时钟子程序总共8个模块,共同作用完成本系统所要实现的功能。在本系统当中,虽然按键仅只有“set”键、“up”键和“down”键3个,但这是设计中的一个难点。下面重点介绍按键子程序。
图6 系统主程序流程图
3.2 按键子程序
3.2.1 按键要求实现的功能
(1) 温度显示单位℃/℉的切换:在初始状态下,按“up”键可以切换温度的显示单位。
(2) CPU报警温度的设定:在初始状态下,按“set”键,温度显示由实际温度转换为报警温度(预设值为60 ℃&140℉)。此时,按“up”或“down”键可以设定报警温度,设定完后按“set”键锁定进入时间设定界面;当温度达到报警温度时,蜂鸣器开始报警,直到按一下“set”键后,方才能解除报警。
(3) 时间设定:在初始状态下按“set”键,温度显示由实际温度转换为报警温度(预设值为60℃&140℉),再压“set”键将进入时间设定界面,按“up”或“down”键可以调整时针的整数值,调整完时针之后再按“set”键锁定并进入分针的设定模式,同样按“up”或“down”键就可以调整它的值了,按“set”键锁定。
(4) 真实时间和工作时间的转换:在初始状态下按“down”键可以切换时间模式的显示,累计工作时间在24 h之内显示单位为时/分,超过24 h就显示为天。
(5) LCD Reset:同时按住“up”和“down”键约2 s,LCD将复位,所有值将回到出厂设置状态。
3.2.2 按键子程序流程图
通过上面的按键功能的描述,可以把按键子程序理解成为可以通过“set”键调整状态,然后每个状态下又有各自的子状态,这些子状态可以通过“up”或者“down”键来进行调整;最后还有2个特殊状态,解除警报和LCD复位。
按键子程序流程如图7所示。
4 结 语
经过现场调试和运行,本系统能及时检测电脑CPU的温度和风扇转速,当温度达到报警温度时则报警,从风扇转速可以判断风扇的情况。还可以显示电脑的工作时间,了解电脑的寿命。系统结构简单,功能齐全,具有低成本、低功耗、高可靠性等特点,实现了用户的需求。
图7 按键子程序流程图
参考文献
[1]李学海.EM78单片机实用教程——基础篇[M].北京:电子工业出版社,2003.
[2]李学海.EM78单片机实用教程——扩展篇[M].北京:电子工业出版社,2003.
[3]沈小丰.EM78系列单片机原理与应用设计[M].北京:北京航空航天大学出版社,2002.
[4]周航慈.单片机程序设计基础[M].北京:北京航空航天大学出版社,2004.
[5]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,2003.
[6]王莉.EMC单片机在粮仓库门控制系统中的应用[J].农机化研究,2007(12):170-172.
[7]王永生,全书海.EM78系列单片机的编程技巧[J].单片机与嵌入式系统应用,2005(3):72-74.