采用EM78P468单片机的计算机监视器的设计
1 系统组成及功能
1.1 系统的构成
电脑监视器由EM78P468单片机、按键模块、风扇测速模块、测温模块、显示模块、报警模块等组成,其系统总体结构框图如图1所示。
1.2 系统的主要功能
设计主要实现的功能是及时检测电脑CPU的温度,当温度达到报警温度时则报警,同时检测并显示风扇转速,当风扇不工作或工作出现故障时都可及时地从转速发现问题。另外,可显示真实时间或电脑工作时间,以确定电脑工作寿命。
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.3 报警模块
报警模块的电路图如图3所示。电路由4.7 kΩ电阻、NPN三极管和蜂鸣器构成。当温度超过报警温度时,由P67脚发出一个4 kHz的方波来驱动蜂鸣器发出报警声。
2.4 电压检测模块
电压检测模块如图4所示,通过P54脚检测当前电压来决定是否进入睡眠模式以省电。图中的PowerJack相当于一个多路开关,提供多路电源并为系统供电,当系统正常工作的时候,开关接5 V电源,P54脚通过Power Detect检测结果为高电平,由于二极管的单向导通性能,VCC左边的二极管导通,而VCC右边的二极管处于截止状态,不使用电池;当系统掉电时,PowerJack接的是地,所以P54脚通过Power Detect检测结果为低电平,VCC左边的二极管处于截止状态,而VCC右边的二极管处于导通状态,系统直接进入睡眠状态。
2.5 风扇测速模块
风扇测速模块如图5所示。系统的三路风扇分别接到三路风扇插座上面,每路风扇都由12 V电源供电;每路风扇插座的1号端口由VCC(5 V)供电,并通过Rpm接到I/O端口上。当风扇正常工作的时候,会在每个插座的1号端口输出一系列周期为毫秒级的方波,这样只要测出相应的I/O端口单位时间(1 s)内的方波个数,就可以计算出风扇转速。
3 系统软件设计
3.1 主程序流程图
系统软件采用汇编语言编写,程序主要流程图如图6所示。系统程序主要包括了初始化、按键子程序、A/D转换子程序、报警子程序、风扇测速子程序、工作时钟子程序、显示子程序、真实时钟子程序总共8个模块,共同作用完成本系统所要实现的功能。在本系统当中,虽然按键仅只有“set”键、“up'’键和 “down”键3个,但这是设计中的一个难点。下面重点介绍按键子程序。
3.2 按键子程序
3.2.1 按键要求实现的功能
(1)温度显示单位℃/°F的切换:在初始状态下,按“up"键可以切换温度的显示单位。
(2)CPU报警温度的设定:在初始状态下,按“set”键,温度显示由实际温度转换为报警温度(预设值为60℃&140°F)。此时,按“up" 或"down"键可以设定报警温度,设定完后按“set”键锁定进入时间设定界面;当温度达到报警温度时,蜂鸣器开始报警,直到按一下“set”键后,方才能解除报警。
(3)时间设定:在初始状态下按“set”键,温度显示由实际温度转换为报警温度(预设值为60 ℃&140 °F),再压“set”键将进入时间设定界面,按“up"或“down”键可以调整时针的整数值,调整完时针之后再按“set”键锁定并进入分针的设定模式,同样按“up"或“down”键就可以调整它的值了,按“set"键锁定。
(4)真实时间和工作时间的转换:在初始状态下按“down”键可以切换时间模式的显示,累计工作时间在24 h之内显示单位为时/分,超过24 h就显示为天。
(5)LCD Reset:同时按装up"和“down”
- 基于单片机的电脑监视器设计(12-13)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)