基于单片机的温控风扇的设计_本科毕业论文(编辑修改稿)内容摘要:
够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 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 的一些特殊功能口。 : RXD(串行输入口) ; : TXD(串行输出口);: /INT0(外部中断 0); : /INT1(外部中断 1); : T0(记时器 0 外部输 10 入); : T1(记时器 1外部输入); : /WR(外部数据存储器写选通); :/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 保持低电平时,则在此期间外部程序存储器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 LED数码管简介 本系统选用五个 LED 数码管来进行温度显示。 LED 又 称为数码管,它主要是由 8段发光二极管组成的不同组合,其中 a~g 为数字和字符显示段, dp 为小数点的显示,通过 a~g 这 7 个发光二极管点亮的不同组合,可以显示 0~ 9 和 A~ F 共 16 个数字和字母。 LED 数码管可以分为共阴极和共阳极两种结构,如下图 5(a)和图 5(b) 所示。 共阴极结构把 8 个发光二极管阴极连在一起,共阳极结构把 8 个发光二极管阳极连在一起。 通过单片机引脚输出高低电平,可使数码管显示相应的数字或字母,这种使数码管显示字形的数据称字形码,又称段选码 [5]。 一个共阴极数码管接至单片机的电路,要想显示数字“ 7”须 a、 b、 c 这 3 个显示段发光 (即这 3 个字段为高电平)只要在 P0 口输入 00000111( 07H)即可。 这里 07H 即为数字 7 的段选码。 字形与段选码的关系见表 1 所示。 [5] 胡全 .51 单片机的数码管动态显示技术 [J] .信息技术, 20xx,13:25— 26 11 g f bae d c dpgndgnd dpgfedcbadpgfedcbaRx 8 Rx 8 数码管引脚分配图 图 5 七段 LED 数码管 表 1 7 段 LED 的段选码表 显示字符 共阴极段码 共阳极段码 显示字符 共阴极段码 共阳极段码 0 3fH C0H 8 7fH 80H 1 06H F9H 9 6fH 90H 2 5bH A4H A 77H 88H 3 4fH B0H B 7fH 83H 4 66H 99H C 39H C6H 5 6dH 92H D 3fH A1H 6 7dH 82H E 79H 86H 7 07H F8H F 71H 8EH 各部分电路设计 开关复位与晶振电路 在单片机应用系统中,除单片机本身需要复位以外,外部扩展 I/O 接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。 单片机上的 XTAL1和 XTAL2 用来外接石英晶体和微调电容,即用 来连接单片机片内 OSC 的定时反馈回路。 本设计中 开关复位与晶振电路如 图 6 所示,当按下按键开关 S1 时,系统复位一次。 其中电容 C C2 为 20pF, C3 为 10uF,电阻 R R3 为 10k,晶振为。 12 图 6 系统复位与晶振电路 数码管显示电路 本设计制作中选用 5 位共阴极数码管作为显示模块,它和单片机硬件的接口如图 8所示。 其中前 3 位数码管 DS DS DS3 用于显示温度传感器实时检测采集到的温度,可精确到 摄氏度,显示范围为 0~ 摄氏度;后 2 位数码管 DS DS5 用于显 示系统设置的初值温度,只能显示整数的温度值,显示范围为 0~99 摄氏度。 5 位数码管的段选 a、 b、 c、 d、 e、 f、 g、 dp 线分别与单片机的 ~ 口连接,其中 P0 口需接一 10K的上拉电阻,以使单片机的 P0 口能够输出高低电平。 5 位数码管的位选 W1~W5 分别与单片机的 ~ 口相连接,只要 ~ 中任一位中输出低电平,则选中与该位相连的数码管。 13 图 7 独立键盘连接电路 温度采集电路 DS18B20 数字温度传感器通过其内部计数时钟周期来的作用,实现了特有的温度测量功能。 低温系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器预先置有与 55℃相对应的一个基权值。 如果计数器计数到 0 时,高温度系数振荡周期还未结束,则表示测量的温度值高于 55℃,被预置在 55℃的温度寄存器中的值就增加 1℃,然后这个过程不断重复,直到高温度系数振荡周期结束为止。 此时温度寄存器中的值即为被测温度值,这个值以 16 位二进制形式存放在存储器中,通过主机发送存储器读命令可读出此温度值,读取时低位在前,高位在后,依次进行。 由于温度振荡器的抛物线特性的影响,其内用斜率累加器进行补偿 [6]。 DS18B20 在使用时,一般都采用单片机来实现数据采集。 只须将 DS18B20 信号线与单片机 1 位 I/O 线相连,且单片机的 1 位 I/O 线可挂接多个 DS18B20,就可实现单点或多点温度检测 [7]。 在本设计中将 DS18B20 接在 口实现温度的采集。 其与单片机 [6] 李钢 ,赵彦峰 .1Wire 总线数字温度传感器 DSI8B20 原理及应用 [J].现代电子技术, 20xx,28(21):77— 79. [7] 马云峰 .单片机与数字温度传感器 DS18B20 的接口设计 [J].计算机测量与控制, 20xx,10(4):278— 280. 14 的连接如图 9 所示。 图 8 数码管显示电路 15 图 9 温度采集电路 风扇电机驱动与调速电路 本设计中由单片机的 I/O 口输出 PWM 脉冲,通过一个达林顿反向驱动器 ULN2803驱动 12V 直流无刷风扇电机以及实现风扇电机速度的调节。 键盘控制设置温度,通过软件向单片机输入相应控制指令,由单片机通过 口输出与转速相应的 PWM 脉冲,经过 ULN2803 驱动风扇直流电机控制电路,实现电机转速与启停的自动控制 [8]。 当环境温度升高时,直流电机的转速会相应按照设定的等级有所提高;当环境温度下降时,电机的转速会相应的下降;当环境温度低于设置温度时,电机停止转动,而环境温度又高于预设温度时,电机重新启动。 电路如图 10 所示,风扇电机的一端接 12V 电源,另一端接 ULN2803 的 OUT7 引脚, ULN2803 的 IN7 引脚与单片机的 引脚相连,通过 控制单片机的 引脚输出PWM 信号,由此控制风扇直流电机的速度与启停。 系统选用的风扇电机为 12V直流无刷电机,单达林顿反向驱动器 ULN2803输入 TTL信号为 5V 或 CMOS 信号为 6~15V 时,输出的最大电压为 50V,最大电流为 500mA,工作温度范围为 0~70℃。 本系统中单片机 I/O 口 输出的 TTL 信号为 5V,因此此风扇电 [8] 王会明,侯加林 . 智能电风扇控制器的研制 [J]. 电子与自动化, 1998,5(4): 25— 26. 16 机可以用 ULN2803 来驱动。 图 10 风扇电机驱动与调速电 17 第三章 软件设计 程序设置 程序设计部分主要包括 主程序、 DS18B20 初始化函数、 DS18B20 温度转换函 数、温度读取函数、键盘扫描函数、数码管显示函数、温度处理函数以及风扇电机控制函数。 DS18B20 初始化 函数完成对 DS18B20 的初始化 ; DS18B20 温度转换函数完成对环境温度的实时采集; 温度读取函数完成主机对温度传感器数据的读取及数据换算,键盘扫描函数则根据需要完成初值的加减设定;温度处理函数对采集到的温度进行分析出理,为电机转速的变化提供条件;风扇电机控制函数则根据温度的数值完成对电机转速及启停的控制。 主程序流程图如图 11: 图 11 主程序流 程图 用 Keil C51 编写程序 Keil C51 是美国 Keil Software 公司开发的 51 系列兼容单片机 C 语言的软件开发系主程序开始 程序初始化 调用 DS18B20 初始化函数 调用 DS18B20 温度转换函数 调用温度读 取函数 调用键盘扫 描函数 调用数码管 显示函数 调用温度处 理函数 调用风扇电 机控制函数 结束 18 统,与单片机汇编语言相比, C 语言在不仅语句简单灵活,而且编写的函数模块可移植性强 [9],因而易学易用,效率高。 随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展, Keil 软件是目前 使用较多的 MCS51 系列单片机 开发 的软件。 Keil C51 软件 不仅 提供 了 丰富的库函数 ,而且它 强大的集成开发调试工具 为程序编辑调试带来便利, 在开 发大型软件时更能体现高级语言的优势。 在使用时要先建立一个工程,然后添加文件并编写程序,编写好后再编辑调试。 Keil C51 的使用界面如图 12。 图 12 Keil C51 的使用界面 用 Proteus 进行仿真 Proteus 简介 Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件。基于单片机的温控风扇的设计_本科毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。