基于单片机的风扇调速器设计-本科论文(编辑修改稿)内容摘要:

因为数据总线本身可以向其供电,这样系统可靠性更高。 它的测温精确度高、更换时间短、等。 这几方面有了很大的改进。 福建农林大学东方学院计算机科学系毕业设计(论文) 7 单线( 1— wire)技术: 单线技术简单一点说就是采用单根信号线 ,是一种简单的信号交换方式。 但是它是可以进行双向传输的,并且能够传输时钟和能够传输数据。 非常适合单主机的系统设计, 主机和从机互相之间的通讯有以下三部分构成:初始化单线器件、识别单线器件和单线数据传输。 DS18B20 将收集到的环境温度值转化为数字量,直接提交给 STC89C52 进行处理,工作时必须严格遵守单总线协议的工作时序。 表 41 部分温度值与 DS18B20输出的数字量对照表 温度值 /℃ 数字输出(二进制) 数字输出(十六进制) +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H + 0000 0001 1001 0001 0191H + 0000 0000 1010 0010 00A2H + 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H 1111 1111 1111 1000 FFF8H 1111 1111 0110 1110 FF5EH 1111 1111 0110 1111 FF6FH 55 1111 1100 1001 0000 FC90H DS18B20 的 1WIRE 协议和命令 ROM 操作命令:一旦总线主机检测到应答脉冲,便可以发起 ROM 操作命令。 共有 5位 ROM 操作命令: 福建农林大学东方学院计算机科学系毕业设计(论文) 8 1: READ ROM 33H 读取激光 ROM64 位 2: MATCH ROM 55H 匹配 ROM,后跟序列号,只有匹配才能 进行操作 3: SEARCH ROM FOH 搜索 ROM 4: ALARM SEARCH ECH 告警搜索 内存操作命令:只有成功进行 ROM 操作命令后,才可以使用内存操作命令。 共 6 种内存操作命令: 1: WRITE SCRATCHPAD 4EH 写 TH, TL和配置寄存器三个字节 2: READ SCRATCHPAD BEH 读暂存寄存器共 9个字节 3: COPY SCRATCHPAD 48H 将暂存器中内容复制进 E2ROM 中 4: CONVERT T 44H 开始温度转换操作。 5: READ POWER SUPPLY B4H 读供电方式 0 为寄生电源 1 为外部供电方式 本列采用外部供电方式 软件思路为 :通过定时器 0 10S 定时取一次温度; include include sbit DQ=P3^7。 unsigned int t=0。 unsigned int tmp。 bit scan_fg=0。 //扫描标志 define DYWAIT {_nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } void delay_xms(unsigned int count) //延时函数 40M 晶震 { register unsigned char j。 while (count ) { reset_dog。 for (j=0。 j230。 j++) DYWAIT。 } } void reset() //产生复位脉冲 { unsigned int i; DQ=0; //总线拉低 福建农林大学东方学院计算机科学系毕业设计(论文) 9 i=200。 while(i0) i。 DQ=1。 //延时约 700US 拉高 产生上升沿 i=8。 while(i0) i。 //延时约 60US 等待应答脉冲 } void wait_ack() // 等待应答脉冲 { unsigned int i。 while(DQ) while(~DQ) //检测到应答 脉冲 i=8。 while(i0) i。 //延时约 60US 来产生应答脉冲 } bit read_bit() // 读一个 BIT { unsigned int i。 bit fg。 DQ=0。 i++。 //保持底至少 1US DQ=1; i++。 i++。 i++。 //延时约 20US,读时隙下降沿后 15US, DS18B20 输出数据才有效 fg=DQ。 i=16。 //读时隙不低于 60US while(i0) i。 return (b)。 } unsigned char read_byte()//读一个字节 { unsigned char i,j。 unsigned char x=0。 for(i=0。 i8。 i++) { j=read_bit()。 x=(j7)|(b1)。 //讲读出的 BIT 填到最高位,原来的值后移一位。 循环 8 次可得到福建农林大学东方学院计算机科学系毕业设计(论文) 10 一个 BYTE } return (x)。 } void write_byte(unsigned char b) //写一个字节 { unsigned int i。 unsigned char j。 bit tmp。 for(j=0。 j8。 j++) { tmp=bamp。 0x01。 //取最低位 BIT b=1。 //右移一位第二字节变最低位 BIT if(tmp) //如果为 1 { DQ=0。 i++。 i++。 i++。 DQ=1; i=16。 //整个写 1时隙不低于 60US while(i0) i。 } else//写 0 { DQ=0。 i=16。 while(i0) i。 //保持低在 60120US 之间 DQ=1。 i++。 i++。 i++。 } } void convert() //温度转换 { reset()。 //复位脉冲 wait_ack()。 //等待应答脉冲 delay_xms(1)。 福建农林大学东方学院计算机科学系毕业设计(论文) 11 write_byte(0xcc)。 //写 ROM 操作命令 SKIP ROM write_byte(0x44)。 //开始温度转换 } unsigned int read_temp(void)//读温度 { unsigned char tmphigh,tmplow。 reset()。 //复位脉冲 wait_ack()。 //等待应答脉冲 delay_xms(1)。 write_byte(0xcc)。 //写 ROM 操作命令 SKIP ROM write_byte(0xbe)。 //读暂存寄存器 tro=1。 } } 温度传感器和显示电路组成 本模块用市面上表现相对稳定而且价钱便宜的 DS18B20 作为温度传感器, STC89C52单片机作为处理器,配以 LED 的温度显示作为控制显示输出单元。 电路图如(图 42)所示。 系统工作原理如下: DS18B20 采集所处的环境温度,将检测到环境温度信息输送到 STC89C52 单片机的 口,处理后 LED 显示当前环境温度值,然后与用户设定的温度值进行判断,控制电机转数调整风速。 福建农林大学东方学院计算机科学系毕业设计(论文) 12 图 42 DS18B20温度计原理图 电机调速电路 电机调速电路是整个控制装置中的相当重要的一方面。 通过改变系统中的双向可控硅的导通角,进而使施加在电机的输入电压相应的增大或降低,这样就可以完成调节风扇的档位转速。 通过精准的设定和调整数据,系统的电机调速电路将实现 5 个档位的电风扇调速。 电机调速原理 双向可控硅的导通条件: 1)阳 阴极间加正向电压; 2)控制极 阴极之间加正向触发电压; 3) IH (可控硅的最小维持电流 ) IA (阳极电流 ) 控制电机的转数,设为 5档(。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。