7、负压特性。电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
3。2 主控芯片STC89C51简介
STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器[ ]。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:4k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。单片机引脚如图所示。
图3-1单片机引脚
3。3 数码管显示电路
本系统的显示电路选用4位一体的共阴极数码管。数码管第一位用于显示风扇转动的档位“0”-“2”(档位为整数)和“H”(表示预设的上限)、“L”(表示预设的下限),第二位用来显示连接符“-”,最后2位数码管显示实时的温度和上、下限的温度值,但只能用整数显示,范围为0~99摄氏度。C51单片机的P0。0~P0。6口分别与数码管的端选a~f相连接,其中P0口需接一个阻值为10K的上拉电阻,从而提高P0口输出电平的稳定性。数码管的位选W1~W4分别与单片机的P2。0~P2。3口相连接,如果P2。0~P2。4中任一位中输出低电平,就选中与该位相连的数码管。该电路如图3-2所示。
图3-2数码管显示电路
3。4 风扇驱动电路论文网
本设计由单片机的I/O口输出不同占空比的PWM脉冲,通过两个三极管将信号放大,从而实现风扇的驱动与调速。
采用三个独立按键控制系统预设温度的上、下限和完成上下限与实时温度显示的转换,通过软件编程的方式向单片机输入相应的指令,从而就可以控制单片机的I/O口输出不同占空比的PWM波形来调节风扇的转速,从而实现风扇启停与转速的自动控制。当环境温度低于系统预设的下限时,风扇不转动;当环境温度居于系统预设的上限与下限之间时,风扇从档位1开始转动;当环境温度高于系统预设的上限时,风扇转动且转速增加,并且档位由1档自动切换到2档。
本设计中的风扇驱动与调速电路如图3-3所示,通过控制单片机的P1。0引脚输出不同的PWM信号,由此控制风扇直流电机的自动启停与转速调节。
图3-3风扇驱动与调速电路
4 软件设计
4。1 程序设置
程序设计部分主要包括主程序、DS18B20温度读取函数、按键扫描函数、数码管显示函数、温度比较函数以及风扇电机控制函数。首先对主程序进行初始化,温度传感器DS18B20感应外界温度,按键扫描函数则根据需要完成初值的加减设定;温度比较函数对采集到的温度与预设值进行比较分析,为电机转速的变化提供条件;风扇电机控制函数则根据温度的数值完成对电机转速及启停的控制。主程序流程图如图4-1所示。
图4-1主程序设计流程图
4。2 用KeilC51编写程序
KeilC51是美国KeilSoftware公司开发的51系列兼容单片机C语言的软件开发系统,与单片机汇编语言相比,C语言在不仅语句简单灵活,而且编写的函数模块可移植性强[ ]。随着时代的发展,单片机的开发软件也在不断发展,Keil软件是目前使用较多的开发51系列单片机的软件,它提供了包括宏汇编、C语言编辑器、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起[ ]。使用时要先建立一个工程,然后再添加文件并编写程序,编写好后在编辑调试。Keil C51的使用界面如图4-2所示。