P1口:P1口是一个内部带有上拉电阻的8位双向I/O口;P1口缓冲器能够接收输出的4TTL门电流。P1口管脚写入1后,内部就被上拉为高,可用于输入,P1口被外部下拉为低时,就将输出电流,这因为内部上拉的缘故。
P2口:P2 是一个提供内部上拉电阻的8位双向I/O口,P2 的输出缓冲级可以驱动4 个TTL 逻辑门电路;当对端口P2写1,内部的上拉电阻就把端口拉到高电平,在此时可作输入口,当作输入口使用时,由于内部有上拉电阻,当某个引脚被外部信号拉低时就会输出一个电流。
P3口:P3口是一组带有内部上拉电阻8位双向I/O口;P3口输出缓冲级可以驱动4 个TTL逻辑门电路;当对P3口写入“1”时,它们就被内部的上拉电阻拉高并作为输入端口;这时,被外部拉低的P3 口将用上拉电阻输出电流; P3口除作为一般I/O口线外,它更重要的作用是它的第二功能;另外P3口还可以接收一些用于Flash闪速存储器编程或程序校验时的控制信号。
RST是复位输入,在振荡器工作时,RST引脚将出现两个机器周期以上的高电平使单片机完成复位。
ALE和PROG:当访问外部程序存储器和数据存储器之一时,地址锁存允许ALE就输出脉冲锁存地址的低8位字节;在一般情况下,ALE 就以时钟振荡频率的1/6 输出固定脉冲信号,进而它可对外输出时钟和用于定时;在对Flash 存储器的编程期间,该引脚用于输入编程脉冲PROG。
PSEN是程序储存允许输出,就是外部程序存储器的读选通信号,在AT89C51 由外部程序存储器取指令(或数据)时,在每个机器周期内两次PSEN 有效,即是输出两个脉冲;在此期间,当访问外部数据存储器时,就将跳过两次PSEN信号。
3.2 温度检测芯片的选择
本设计采用DS18B20温度传感器,DS18B20内部结构主要由4部分组成:64 位的ROM、非挥发的温度报警触发器TH和TL、配置寄存器和温度传感器[2]。单线数字温度传感器DS18B20具有3 引脚T0~92 小体积的封装形式;温度测量范围-55℃~+125℃;可编程9~12 位的A/D转换精度,测温分辨率能够达到0.0625℃;被测温度值用符号扩展的16 位数字量形式串行输出。工作电压支持3V~5.5V ,不仅可在远端引入,而且可采用寄生电源方式产生;DS18B20 支持“一线总线”接口,即多个DS18B20能够并联到3 根或2 根线上使用,CPU只要一根端口线就能够与诸多DS18B20 传输数字[3],占用的微处理器端口比较少,因此可节省大量引线或逻辑电路;另外还有存储用户定义报警温度等功能。
3.3 温度显示器模块设计
本设计采用LCD液晶显示器LM016L来显示当前温度值和定时剩余时间。LM016L显示器采用HD44780为控制器,HD44780控制器具有功能较强而且简单的指令集,其能够实现字符移动闪烁的功能。LM016L液晶显示器的D0~D7依次与单片机的p0.0~p0.7引脚进行连接,LM016L液晶显示器的引脚RS、RW、E引脚分别与单片机的p2.0、p2.1、p2.2引脚进行连接,实现温度显示的功能。如图3所示是液晶显示LM016L的Proteus截图。
图3 液晶显示LM016L
简单介绍一下各个引脚:
VSS:电源地。
RS:寄存器选择,低电平0时选择指令寄存器、高电平1时选择数据寄存器。
RW:读写信号线。
D0~D7:8位双向数据端。
E:使能(enable)端。
VCC:5V电源正极。
3.4 风速调制硬件模块设计
本设计采用单片机软件编程实现PWM调速的方法;PWM是脉冲宽度调制,就是按一定的规律来改变脉冲序列的脉冲宽度,实现调节输出量或波形的调节方式,在PWM驱动控制的调节时,其中最常用的是矩形波的PWM信号调节,在控制时通过调节PWM波占空比[4];占空比是指在一个周期内高电平持续时间百分比;控制电机的转动时,占空比越大,电机的转速就越快,若在一个周期内全为高电平,即占空比为100%,转速达到最大 。用单片机I/O口输出PWM信号时,采用利用软件延时的方法,即当高电平延时时间到来时,对I/O口电平进行取反,使其变为低电平,然后再延时一段时间;在低电平延时时间到来时,还对该I/O口电平取反,就这样循环就可得到PWM信号。和其它硬件或软硬件相结合的方法实现对电机调速的比较而言,采用PWM 纯软件方法来实现调速具有很大的灵活性,并且可以降低成本,充分发挥了单片机的优良功能,提供了一种对电动机转速有效调制的途径。 51单片机的家用风扇控制器设计+电路图+源码(3):http://www.751com.cn/zidonghua/lunwen_911.html