各管脚功能: VCC:供电电压。 GND:接地。
P0 口:P0 口为一个8 位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。当P1 口的管脚第一次写1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0 外部必须被拉高。
P1 口:P1 口是一个内部提供上拉电阻的8 位双向I/O 口,P1 口缓冲器能接收输出4TTL门电流。P1 口管脚写入1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地接收。
P2 口:P2 口为一个内部上拉电阻的8 位双向I/O 口,P2 口缓冲器可接收,输出4 个TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。
P3 口:P3 口管脚是8 个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89C51 的一些特殊功能口。P3.0:RXD(串行输入口);P3.1:TXD(串行输出口);P3.2:/INT0(外部中断0);P3.3:/INT1(外部中断1);P3.4:T0(记时器0 外部输入);P3.5:T1(记时器1外部输入);P3.6:/WR(外部数据存储器写选通);P3.7:/RD(外部数据存储器读选通)。 P3 口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时,ALE 只有在执行MOVX,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期
6
间,此引脚也用于施加12V 编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。
3.2 各部分电路设计 3.2.1 数码管显示电路
显示部分包括如下图5: 4个八段(共阳)数码管、PNP型三极管、电阻等。其连接方式如下:应用单片机P0口连接八段数码管,用P2口的4个端口作为数码管的片选信号输出端口,其中要用8550(PNP型)三极管做驱动。又因为P0口做I/O口时要加上拉电阻,所以我们给P0各位各加一个10K的电阻到电源。为了防止烧坏数码管,所以给数码管各段各加一个300欧姆的限流电阻。要显示的数据通过P0口送给数码管显示,通过P2口的4个端口分别对数码管进行位选,事实上数码管是间断被点亮的,只是其间断时间十分短,扫描周期在20ms以下,利用人眼视觉暂留,我们基本看不出它们的闪烁。图3-4
图3-4 显示电路
3.2.2 声响、温度采集、温度设定以及复位电路
电路如图6所示,这一部分主要是由DS18B20,四个按键、一个电容一个三极管和一个蜂鸣器等构成。声响电路在每按下按键时会响一声,当没有把DS18B20接入到电路中时,单片机就会通过蜂鸣器发出报警声音。温度采集电路主要是由DS18B20构成,它可以把采集的温度数据转化成二进制数,经过单片机处理后输出送数码管显示。温度设定主要是通过按键S1、S2|、S3来设定的。按键S1、S2、S3分别接入单片机的P1.4、P1.5、P1.6脚。S3是设定键。用于对风速调节的上限和下限值TH、TL的设置。当按下S1时,可以加1,长按可以
7
快速加1,当按下S2 时,可以减1, 长按可以快速减1。
图3-6 声响、温度采集、温度设置及复位电路
3.2.3 温控自动电路
该电路为控制风速的人工控制与温控两种方式之温控模式时的控制电路,当选择为温控时,单片机默认为弱风,当当前温度低于所设的温度下限TL时继电器1吸合,关闭风扇,当当前温度高于所设的温度上限时继电器2吸合,切换到强风档。电路如图3-7。
图3-7 温控自动电路
8
本系统的总电原理图为:
图3-9 总电原理图
9
4 软件设计
程序实现的功能是上电复位时检测温度传感器DS18B20是否存在或它工作是否正常,当不存在或工作不正常时从蜂鸣器发出报警声,提示用户检查DS18B20,安装或者更换。这部分功能由DS18B20复位与检测子程序RESET完成。当检测到传感器工作正常后,发出温度转换命令及读取温度值命令,将从DS18B20读取的二进制温度值转换为七段码在LED上显示出来。显示功能由温度显示子程序DISP1子程序实现。
4.1 主程序流程图
主程序流程图
开始 初始化 检测蜂鸣报警 N 正Y 温度转换命读温度 温度BCD码处显示温度 按键扫描及处与设定温度对比及
10