毕业论文

打赏
当前位置: 毕业论文 > 自动化 >

AT89C51单片机的电风扇控制系统设计+流程图+仿真图(4)

时间:2017-01-04 13:10来源:毕业论文
由于设计需要用到的按键数目不多,所以可以直接用AT89C51的通用I\O口,即可以直接选用AT89C51的P1口(内部有上拉电阻)作为键盘接口。对于按键只需一端


由于设计需要用到的按键数目不多,所以可以直接用AT89C51的通用I\O口,即可以直接选用AT89C51的P1口(内部有上拉电阻)作为键盘接口。对于按键只需一端接地而另一端接P1口即可。见下图7:
图 7 按键电路
4. 系统软件设计
4.1 数字温度传感器模块程序设计
本系统的程序采用C语言,采用模块化设计,整体程序由主程序和子程序构成。
图8 数字温度传感器模块程序流程图
如图8所示,主机控制DS18B20完成温度转换的工作需经过三个基本步骤:初始化、ROM操作指令、存储器操作指令。此单片机用的系统频率为12MHz。根据DS18B20初始化时序、读、写时序分别可编写4个子程序:初始化子程序、写子程序、读子程序和显示子程序。
DS18B20芯片功能命令表如下:

表2 DS18B20功能命令表
命令        功能描述      命令代码
CONVERT    开始温度转换     44H
READ SCRATCHPAD    读温度寄存器(共9字节)    BEH
READ ROM    读DS18B20序列号       33H
WRITE SCRATCHPAD    将警报温度值写如暂存器第2、3字节    4EH
MATCH ROM       匹配ROM     55H
SEARCH ROM      搜索ROM     F0H
ALARM SEARCH     警报搜索    ECH
SKIP ROM    跳过读序列号的操作    CCH
READ POWER SUPPLY    读电源供电方式:0为寄生电源,1为外电源     B4H
4.2 电机调速与控制模块程序流程
采用双向可控硅过零触发的方式,通过单片机控制双向可控硅通断,通过控制每一个控制周期间可控硅导通以及关断交流完整全波信号个数的改变调节负载功率 [6]。
因为工频电压过零时刻由INT0信号反映,因而只需在外中断0的中断服务程序中完成控制门的开启或关闭,并通过中断服务的次数对控制量n进行计数以及判断,即每中断一次,对n进行减1,如果n不等于0,则输出电平为“1”,保持打开控制门;如n=0,则输出复位电平“0”,也就是关断控制门,从而不再通过可控硅过零触发脉冲。这样就实现了可控硅的过零控制,达到按控制量控制的效果,实现速度的可调[7]。
(1)回路控制执行程序。它的任务主要是数据存储单元的初始化,确定电机的工作参数,并把它转换成“有效过零脉冲”个数;确定中断的优先级、开中断,为了保证正弦波完整,中断INT0必须确定为高一级的中断源。
(2)中断服务子程序。执行这个程序时,首先要保护现场,INT0中断标志置位,并禁止主程序修改工作参数,而后开始减1计数,判断是否要关断可
控硅,最后清除INT0中断标志位,还原初始化数据,恢复现场,中断返回。(设1秒钟通过波形数N=100)
(3)中断流程图如图9所示:
图9 电机控制模块中断响应流程图
5. 仿真与调试
图10 仿真初始
在proteus软件中连好硬件电路,开始启动调试。系统复位后,按键S1控制系统状态,当按键S1按下时,风扇处于手动控制模式,此时主要有按键S2、S3控制,它们分别控制电机的加减速,通过它们控制电风扇的档位,同时显示模块会显示现在的档位。当按键S1没有按下时,风扇处于自动控制模式,也就是温控模式,此时由温度传DS18B20以及人体红外感应控制风扇状态,此时按键并不起作用。当人体感应处于高电平时,当室内温度低于15℃时风扇停止转动;当温度在15到24℃之间时风扇转速处于抵挡转速最慢;24到33℃为中档;33℃处于最高档转速最快;温度超过40℃时蜂鸣器报警。 AT89C51单片机的电风扇控制系统设计+流程图+仿真图(4):http://www.751com.cn/zidonghua/lunwen_1783.html
------分隔线----------------------------
推荐内容