智能电风扇控制器设计报告完整版(共15页).doc
精选优质文档-倾情为你奉上单片机课程设计设计报告设计题目 智能电风扇控制器设计专心-专注-专业目 录序言一、 设计任务.2二、 小直流电机调速控制系统的总体方案设计.2T6.,2.1、系统硬件总体结构.22.2、芯片选择.22.3、DAC0832芯片的主要性能指标.3三、 系统硬件电路设计.5 3.1、AT89C52单片机最小系统.5 3.2、系统程序电路主程序CUP电路图.5 3.3、DAC0832与AT89C52单片机接口电路设计.63.4、显示电路与AT89C52单片机电路设计.7四、 系统程序流程设计.7五、 调试与测试结果分析.8 5.1、实验系统连线图.85.2、程序调试,.9 5.3、实验结果分析.9六、 程序总结.9附录.10 1、实验程序.10 2、实验原理图.13一、 设计任务利用DAC0832芯片进行数/模控制,输出的电压经放大后驱动小直流电机的速度进行数字量调节,并显示运行状态DJ-XX和D/ A输出的数字量。巩固所学单片知识,熟悉试验箱的相关功能,熟练掌握Proteus仿真软件,培养系统设计的思路和科研的兴趣。实现功能如下: 风速设为从高到低3个档位,可由用户通过键盘手动设定。 实现数码管友好显示。二、小直流电机调速控制系统的总体设计方案2.1 系统硬件总体结构主程序:循环给DAC0832赋电压值,给数码管赋段驱动部分:电压值改变小直流电机转速档位调节部分:用外部中断0改变电压值大小和对应的段码值 显示部分:数码管显示档位和定时信息2.2 芯片选择1、AT89C52芯片:选用该单片机作为智能电风扇控制部件,用来实现电风扇调速核心功能。2、74LS245芯片:用来驱动数码管。3、74LS373芯片:锁存器,用来锁存输出的信号。4、74LS240芯片:八单线驱动器,缓冲输出的信号。5、DAC0832芯片:片选地址是FF80H,AOUT1插孔作为模拟量的输出。6、8255芯片:可编程并行I/O接口芯片,用以扩展单片机的IO口。7、LED数码显示管:用来显示电机旋转的速度是加速还是减速。8、741:运算放大器。2.3 DAC0832的主要性能指标 D/A转换的基本原理是应用电阻解码网络,将位数字量逐位转换为模拟量并求和,从而实现将位数字量转换为相应的模拟量。其性能指标为:()分辨率:相对分辨率,越大,分辨率越高()线性度()转换精度()建立时间()温度系数。DAC0832引脚功能图如图2.2图2.2 数模转换DAC0832引脚功能 1、DI0DI7:8位数字信号输入端; 2、!CS:片选端;ILE: 数据锁存允许控制端,高电平有效; 3、!WR1:输入寄存器写选通控制端。当!CS=0、ILE=1、!WR1=0时,数据信号被锁存在输入寄存器中。4、!XFER:数据传送控制 5、!WR2 :DAC寄存器写选通控制端。当!XFER=0,!WR2 =0时,输入寄存器状态传入DAC寄存器中 6、IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。 7、IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。 8、 RFB:外部反馈信号输入端, 内部已有反馈电阻RFB,根据需要也可外接反馈电阻。 9、VCC:电源输入端,可在+5V+15V范围内。 10、DGND:数字信号地。 11、AGND:模拟信号地8255A的主要性能指标8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。三、系统硬件电路设计3.1 AT89C52单片机最小系统:AT89C52已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。图3.1为AT89C52芯片最小系统。一方面,单片机要通过I/O口中接收输入信号,另一方面要通过I/O口控制数码管的初始化、显示方式以及要显示的字符。因此,设计必须以单片机为核心,显示器为外围设备。硬件上,单片机通过电路板电路与液晶显示电路相连;软件上,单片机要下载完整的程序对二者进行适时的控制。图3.1 AT89C52芯片最小系统图3.2 系统程序电路主程序CUP电路图:AT89C52单片机P0、P2口扩充电路图如图3.2:图3.2 AT89C52系统管脚扩充图3.3 DAC0832与AT89C52单片机接口电路设计实验电路使用逻辑器件实现地址译码,地址FF80H接入数模转换器DAC0832片选段,通过数模转换后的模拟量通过运放放大驱动电机驱动,其电路图如图3.3所示:图3.3 DAC0832与AT89C52单片机接口及电机控制电路3.4 显示电路与AT89C52单片机电路设计实验电路使用IO扩充芯片8255及锁存芯片74LS245对六个数码管选通控制显示。显示部分电路图如图3.4所示:图3.4 数码管显示部分电路图四、系统程序流程设计4.1 档位调节显示框图4.2 主程序框图 图4.2 主程序框图 五、调试与测试结果分析5.1 实验系统连线图a、P3.2、P3.3分别连按键、S1、S2b、JX0与JX2相连c、将DAC0832驱动电路AOUT接至直流电机d、将P0口接至DAC0832数字输入端e、将地址译码器电路(FF80H)接至DAC0832片选端5.2 程序调试 程序上电时,直流电机停止不动,然后打开总开关K1,当第一次来回拨动档位开关时,电动机低速转动,同时显示1;当第二次来回拨动档位开关时,电动机中速转动,同时显示2;当第三次来回拨动档位开关时,电动机高速转动,同时显示3;第四次则回到低档,即低中高三档位循环输出。5.3 实验结果分析 电机运行正常时即可实现调速现象,适当的控制按键,就可以实现所需要的效果。拨码开关必须做消除抖动的处理,因为开关抖动会导致档位及定时信息混乱。六、程序设计总结 附录1、实验程序#include <reg51.h>#include <absacc.h>#define Contadd XBYTE0xff23 /8255控制地址#define PA XBYTE0xff20 /段选信号地址#define PB XBYTE0xff21 /片选信号地址#define adc XBYTE 0xFF80 /片选指针,A/D转换电路片外地址#define uchar unsigned char#define uint unsigned intvoid wei_2(); /声明档位显示程序uchar i=2,j=0,s=0; uint count,n=0; bit flag; /定义标志位sbit K1=P34; /定义总开关的按键位uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff;/共阳极数码管段码/*延迟子程序*/void DelayMS(uint x)uchar t;while(x-) for(t=0;t<120;t+);/*主程序*/void main() Contadd=0x81; /设置8255的工作方式:PA、PB口为输出口,PC口为输入口 PB=0xff; /端口数据初始化,防止出错 adc=0x00; EA=1; /开总中断 EX0=1; /打开外部中断0 IT0=1; /设置中断0为下降沿触发 EX1=1; /打开外部中断1 IT1=1; /设置中断1为下降沿触发 while(K1=0) /判断总开关是否打开 if(flag=1) /判断档位按键是否按下 wei_2(); Else /无档位按键时,关闭数显和发动机 PB=0xff; PA=0x00; adc=0x00; /*外部中断0程序,用于档位调节*/void dangwei1() interrupt 0 DelayMS(2); /延迟,去抖动 i=(i+1)%3; /实现档位的循环 flag=1; /标志位置1/*档位显示程序*/void wei_2()switch (i) case 0:PB=0xff; PB=table1;PA=0xfe;adc=0x7f;DelayMS(2);break; /低速档位1档 case 1:PB=0xff; PB=table2;PA=0xfe;adc=0xbf;DelayMS(2);break; /中速档位2档 case 2:PB=0xff; PB=table3;PA=0xfe;adc=0xff;DelayMS(2); /高速档位3档附录2、实验原理图