智能电风扇控制器

  • 格式:doc
  • 大小:219.00 KB
  • 文档页数:8

《单片机课程设计》设计报告
设计题目:
系 别:
专 业:
班级学号:
姓 名:
指导教师:
设计时间:
设计任务:利用DAC0832芯片进行数模控制,输出的电压经放大后驱
动小直流电机的速度进行数字量调节,并显示运行状态。
1. 小直流电机调速控制体统的总体方案设计
1) 系统总体结构

2) 芯片选择
主要芯片:8255A,DAC0832


本次实验用的是8255工作方式0,方式控制字为:
D7:方式控制字标识位,1--有效;
D6、D5:A口方式选择,00--方式0;01--方式1;1X--方式2;
D4:A口输入/输出选择,1--输入;0--输出;
D3:PC7~PC4输入/输出选择,1--输入;0--输出;
D2:B口方式选择,1--方式1;0--方式0;
D1:B口输入/输出选择,1--输入。0输出;
D0:PC3~PC0输入/输出选择,1--输入。0输出;

引脚功能:
DI0~DI7:8位数字信号输入端; CS*:片选端;
ILE: 数据锁存允许控制端,高电平有效;
WR1*:输入寄存器写选通控制端。
当CS*=0、ILE=1、WR1*=0时,数据信号被锁存在输入寄存器中。
XFER*:数据传送控制
WR2* :DAC寄存器写选通控制端。当XFER*=0,WR2* =0时,输入
寄存器状态传入DAC寄存器中
IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大, 输入
数字量全为“0”时,IOUT1最小。
IOUT2:D/A转换器电流输出2端,IOUT2+IOUT1=常数。
Rfb:外部反馈信号输入端, 内部已有反馈电阻Rfb,根据需要也可
外接反馈电阻。
Vcc:电源输入端,可在+5V~+15V范围内。
DGND:数字信号地。AGND:模拟信号地
3) DAC0832的主要性能指标
DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,
在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁
存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
2. 硬件电路设计
1) AT89S52单片机最小系统(见附录)
2) DAC0832与AT89S52单片机接口电路设计
使用逻辑器件实现地址译码,地址为:FF80H。(参见附录)
3) 显示电路与AT89S52单片机接口电路设计
使用逻辑器件实现地址译码,地址为:FF20H—FF23H。(参见附
录1)
3. 软件设计
1) 程序框图

4. 调试与测试结果分析
1) 实验系统连线
a) P3.2、P3.3、P3.4各接一拨码开关
b) 将DAC0832驱动电路AOUT接至直流电机
c) 将P0口接至DAC0832数字输入端
d) 将地址译码电路(FF80H)接至DAC0832片选端
2) 程序调试
程序上电时,直流电机停止不动,当来回拨动拨码开关1时,直
流电机以低速转动,同时数码管显示速度等级1;当来回拨动拨
码开关2时,直流电机以中速转动,同时数码管显示速度等级2;
当来回拨动拨码开关3时,直流电机以高速转动,同时数码管显
示速度等级3。
3) 实验结果分析
电机运行正常可实现调速,拨码开关没有消抖并不影响调速,因
为中断服务程序采用赋值的方式,拨码开关的高频抖动启动多次
中断,赋的值都相同。
5. 实验总结
课程设计是培养学生综合运用所学知识,发现、提出、分析和
解决实际问题锻炼实践能力的重要环节,是对学生实际工作能力的
具体训练和考察过程。随着科学技术发展的日新月异,单片机已经
成为当今计算机应用中空前活跃的领域,在生活中无处不在,因此
单片机的开发技术是十分重要的。
通过此次单片机课程设计,我们不仅巩固了学过的知识,而且
学到很多课本上没有的知识。这次经历是我懂得了理论与实际相结
合是很重要的,用理论知识解决实际问题,活学活用,提高自己的
实际动手能力和独立思考的能力。

附录:系统原理图和程序清单
附:源程序代码:
/************************智能电风扇***************************//*

本程序使用DAC0832实现直流电机的速度控制(三档:低速\中速\高速)
*//******************************************************************/
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTX0
ORG 000BH
LJMP INTT0
ORG 0013H
LJMP INTX1

ORG 0040H
MAIN: SETB EX0
SETB EX1
SETB IT0
SETB IT1
SETB ET0
MOV TH0,#0FFH
MOV TL0,#0FFH
MOV TMOD,#06H ;方式2(8位自动重装载)
SETB TR0
SETB EA ;外部中断0,外部中断1,定时器0(用作外部中断) 初始化

MOV DPTR,#0FF23H
MOV A,#80H
MOVX @DPTR,A ;8255模式0(直通方式)

MOV DPTR,#0FF20H
MOV A,#0FEH
MOVX @DPTR,A ;位选第一个数码管

MOV R0,#00H ;R0作为输出电压大小的存储器
MOV R1,#0C0H ;R1作为数码管输出的段码存储器
LOOP: MOV A,R0
MOV DPTR,#0FF80H
MOVX @DPTR,A ;写DAC0832

MOV A,R1
MOV DPTR,#0FF21H
MOVX @DPTR,A ;写数码管

SJMP LOOP
INTX0: MOV R1,#0F9H ;数码管显示1(速度等级1)
MOV R0,#80H ;给低速度值
RETI

INTX1: MOV R1,#0A4H ;数码管显示2(速度等级2)
MOV R0,#0B0H ;给中速度值
RETI

INTT0: MOV R1,#0B0H ;数码管显示3(速度等级3)
MOV R0,#0FFH ;给高速度值
RETI

END