智能电风扇控制器设计报告完整版.docx

上传人:b****7 文档编号:10459314 上传时间:2023-02-11 格式:DOCX 页数:15 大小:572.10KB
下载 相关 举报
智能电风扇控制器设计报告完整版.docx_第1页
第1页 / 共15页
智能电风扇控制器设计报告完整版.docx_第2页
第2页 / 共15页
智能电风扇控制器设计报告完整版.docx_第3页
第3页 / 共15页
智能电风扇控制器设计报告完整版.docx_第4页
第4页 / 共15页
智能电风扇控制器设计报告完整版.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

智能电风扇控制器设计报告完整版.docx

《智能电风扇控制器设计报告完整版.docx》由会员分享,可在线阅读,更多相关《智能电风扇控制器设计报告完整版.docx(15页珍藏版)》请在冰豆网上搜索。

智能电风扇控制器设计报告完整版.docx

智能电风扇控制器设计报告完整版

《单片机课程设计》设计报告

设计题目智能电风扇控制器设计

序言

一、设计任务…………………………………………..………………2

二、小直流电机调速控制系统的总体方案设计………………….….2

T6.,2.1、系统硬件总体结构…………………………………………...2

2.2、芯片选择……………………………………………….…......2

2.3、DAC0832芯片的主要性能指标……………………….…....3

三、系统硬件电路设计…………………………………..…….…..….5

3.1、AT89C52单片机最小系统………………………….…….….5

3.2、系统程序电路主程序CUP电路图….………….......................5

3.3、DAC0832与AT89C52单片机接口电路设计………….………6

3.4、显示电路与AT89C52单片机电路设计……………...…...…..7

四、系统程序流程设计…………………………………………….….7

五、调试与测试结果分析…………………………..……...………….8

5.1、实验系统连线图………………………………………....……8

5.2、程序调试…………………………………………,.……...…...9

5.3、实验结果分析……………………………………..……....…..9

六、程序总结……………………………………………...…………...9

附录…………………………………………………………..…......…...10

1、实验程序………………………………………….……............10

2、实验原理图……………………………….................................13

一、设计任务

利用DAC0832芯片进行数/模控制,输出的电压经放大后驱动小直流电机的速度进行数字量调节,并显示运行状态DJ-XX和D/A输出的数字量。

巩固所学单片知识,熟悉试验箱的相关功能,熟练掌握Proteus仿真软件,培养系统设计的思路和科研的兴趣。

实现功能如下:

1风速设为从高到低3个档位,可由用户通过键盘手动设定。

2实现数码管友好显示。

二、小直流电机调速控制系统的总体设计方案

2.1系统硬件总体结构

 

 

2.2芯片选择

1、AT89C52芯片:

选用该单片机作为智能电风扇控制部件,用来实现电风扇调速核心功能。

2、74LS245芯片:

用来驱动数码管。

3、74LS373芯片:

锁存器,用来锁存输出的信号。

4、74LS240芯片:

八单线驱动器,缓冲输出的信号。

5、DAC0832芯片:

片选地址是FF80H,AOUT1插孔作为模拟量的输出。

6、8255芯片:

可编程并行I/O接口芯片,用以扩展单片机的IO口。

7、LED数码显示管:

用来显示电机旋转的速度是加速还是减速。

8、741:

运算放大器。

2.3DAC0832的主要性能指标

 

D/A转换的基本原理是应用电阻解码网络,将N位数字量逐位转换为模拟量并求和,从而实现将N位数字量转换为相应的模拟量。

其性能指标为:

(1)分辨率:

相对分辨率=1/2N,N越大,分辨率越高(2)线性度(3)转换精度(4)建立时间(5)温度系数。

DAC0832引脚功能图如图2.2

图2.2数模转换DAC0832引脚功能

1、DI0~DI7:

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.1AT89C52单片机最小系统:

AT89C52已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。

整个系统结构紧凑,抗干扰能力强,性价比高。

图3.1为AT89C52芯片最小系统。

一方面,单片机要通过I/O口中接收输入信号,另一方面要通过I/O口控制数码管的初始化、显示方式以及要显示的字符。

因此,设计必须以单片机为核心,显示器为外围设备。

硬件上,单片机通过电路板电路与液晶显示电路相连;软件上,单片机要下载完整的程序对二者进行适时的控制。

图3.1AT89C52芯片最小系统图

3.2系统程序电路主程序CUP电路图:

AT89C52单片机P0、P2口扩充电路图如图3.2:

图3.2AT89C52系统管脚扩充图

3.3DAC0832与AT89C52单片机接口电路设计

实验电路使用逻辑器件实现地址译码,地址FF80H接入数模转换器DAC0832片选段,通过数模转换后的模拟量通过运放放大驱动电机驱动,其电路图如图3.3所示:

图3.3DAC0832与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、S2

b、JX0与JX2相连

c、将DAC0832驱动电路AOUT接至直流电机

d、将P0口接至DAC0832数字输入端

e、将地址译码器电路(FF80H)接至DAC0832片选端

5.2程序调试

程序上电时,直流电机停止不动,然后打开总开关K1,当第一次来回拨动档位开关时,电动机低速转动,同时显示1;当第二次来回拨动档位开关时,电动机中速转动,同时显示2;当第三次来回拨动档位开关时,电动机高速转动,同时显示3;第四次则回到低档,即低中高三档位循环输出。

5.3实验结果分析

电机运行正常时即可实现调速现象,适当的控制按键,就可以实现所需要的效果。

拨码开关必须做消除抖动的处理,因为开关抖动会导致档位及定时信息混乱。

 

六、程序设计总结

 

附录1、实验程序

#include

#include

#defineContaddXBYTE[0xff23]//8255控制地址

#definePAXBYTE[0xff20]//段选信号地址

#definePBXBYTE[0xff21]//片选信号地址

#defineadcXBYTE[0xFF80]//片选指针,A/D转换电路片外地址

#defineucharunsignedchar

#defineuintunsignedint

voidwei_2();//声明档位显示程序

uchari=2,j=0,s=0;

uintcount,n=0;

bitflag;//定义标志位

sbitK1=P3^4;//定义总开关的按键位

ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//共阳极数码管段码

/********************延迟子程序******************************/

voidDelayMS(uintx)

{

uchart;

while(x--)for(t=0;t<120;t++);

}

/*******************主程序***********************************/

voidmain()

{

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程序,用于档位调节**************/

voiddangwei1()interrupt0

{

DelayMS

(2);//延迟,去抖动

i=(i+1)%3;//实现档位的循环

flag=1;//标志位置1

}

/*****************档位显示程序*******************************/

voidwei_2()

{

switch(i)

{case0:

PB=0xff;

PB=table[1];PA=0xfe;adc=0x7f;DelayMS

(2);break;//低速档位1档

case1:

PB=0xff;

PB=table[2];PA=0xfe;adc=0xbf;DelayMS

(2);break;//中速档位2档

case2:

PB=0xff;

PB=table[3];PA=0xfe;adc=0xff;DelayMS

(2);//高速档位3档

}

}

附录2、实验原理图

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1