单片机课程设计 电风扇模拟控制

上传人:pu****.1 文档编号:498166598 上传时间:2023-11-30 格式:DOCX 页数:16 大小:342.28KB
返回 下载 相关 举报
单片机课程设计 电风扇模拟控制_第1页
第1页 / 共16页
单片机课程设计 电风扇模拟控制_第2页
第2页 / 共16页
单片机课程设计 电风扇模拟控制_第3页
第3页 / 共16页
单片机课程设计 电风扇模拟控制_第4页
第4页 / 共16页
单片机课程设计 电风扇模拟控制_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机课程设计 电风扇模拟控制》由会员分享,可在线阅读,更多相关《单片机课程设计 电风扇模拟控制(16页珍藏版)》请在金锄头文库上搜索。

1、信息工程学院课程设计报告设计题目:电风扇模拟控制系统名 称: 电子信息专业基础课程设计班 级:电子1101班姓 名:王强刘绘明学 号:设计时间:2013.12.23 至 2014.01.05评语:目录一、课程设计的性质和目的3二、课程设计的要求3三、主要仪器设备及软件31、Keil 软件简介32、Proteus 绘图软件简介3四、课程设计题目及要求3五、课题分析及设计思路41、设计主要内容42、AT89C51 单片机简介43、ULN2003 简介54、直流电机简介65、数码管简介66、硬件设计框图77、硬件设计电路图78、单片机控制直流电机流程图89、软件仿真8六、程序主要代码与分析9七、实验

2、结果截图12八、心得体会13一、课程设计的性质和目的通过课程设计,进行硬件设计和程序设计的方法和技能训练,巩固在课堂 上学到的有关软件程序设计和硬件电路设计的基本知识和基本方法,通过具体 课题的训练,进一步熟悉汇编语言的结构和使用方法,掌握软硬结合的控制程 序设计,达到能独立阅读、查阅资料、编制和调试完善特定功能的目的。二、课程设计的要求1、遵循硬件设计模块化。2、要求程序设计结构化。3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。4、要求程序结构合理,语句使用得当。5、适当追求编程技巧和程序运行效率。三、主要仪器设备及软件PC机、Keil软件、Proteus绘图软件及仿真等。1

3、、 Keil 软件简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件 开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理 和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 (uVisio n)将这些部分组合在一起。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑理 解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优学 易用。用过汇编语言后再使用C来开发,体会更加

4、深刻。2、Proteus绘图软件简介Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到 单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品 的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿 真软件三合一的设计平台,其处理器模型支持8051、HC11、 PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和 MSP430等,2010年又 增加了 Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方 面,它也支持IAR、Keil和MPLAB等多种编译器。四、课程设计题目及要求课程设计

5、题目是电风扇模拟控制系统,设计要求是:1、设计3 个按键分别控制“自然风”“常风”,“睡眠风”(用直流电机的不 同转速进行模拟);2、在数码管上显示按键的区别;3、设计风扇的过热保护,即风扇运行一段时间后,暂停 5s。五、课题分析及设计思路1、设计主要内容本设计以AT89C51单片机为核心,从而建立一个控制系统,实现通过3个按 键控制直流电机的不同转速,以达到模拟风扇的“自然风”、“常风”和“睡眠 风”三种状态,并在数码管上显示三个数字表示三种状态,同时设计风扇过热保 护,运行一段时间后,暂停5S。2、AT89C51单片机简介AT89C51 是一个低功耗,高性能 CMOS8 位单片机,片内含

6、4kBytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器, 器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令 系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单 元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价 比的解决方案.AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存 储器,128 bytes的随机存取数据存储器,32个外部双向输入/输出(I/O) 口, 5个中断优先级2层中断嵌套中断, 2个16位可编程定时

7、计数器,2个全双工串 行通信口,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。 空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工 作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活 或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不 同产品的需求。AT89C51单片机的基本结构和外部引脚如下图所示。XTAL1XTAL2RST紅丄士in屁7丄PSENALEEAPQ.O/ADO P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6

8、/AD6 P0.7/AD7P2.0/8P2.1/JX9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A1 斗 P2.7/A15d HI 1. d 1 di 1 T ppppppppP3.0JRXD P3.1JTXD P32巫页 P3.3JINTTP3.4JT0P3.5/T1_P3懣图2.13、ULN2003 简介在自动化密集的的场合会有很多被控元件如继电器,微型电机,风机,电磁 阀,空调,水处理等元件及设备,这些设备通常由CPU所集中控制,由于控制 系统不能直接驱动被控元件,这需要由功率电路来扩展输出电流以满足被控元件 的电流,电压。ULN2XXXX高压大

9、电流达林顿晶体管阵列系列产品就属于这类 可控大功率器件,由于这类器件功能强、应用范围语广。因此,许多公司都生产 高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品。N2003是什么原理:ULN2003也是一个7路反向器电路,即当输入端为高电平时 ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平, 继电器得电吸合。如下图所示COM70 7C图3.1ULN2003A在各种控制电路中常用它作为驱动继电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。 ULN2003的输出端允许通过IC电流 200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。输出电流大,

10、故 可以直接驱动继电器或固体继电器(SSR )等外接控制器件,也可直接驱动低压灯 泡。本实验中,ULN2003A用于驱动直流电机。4、直流电机简介直流马达指能将直流电能和机械能相互转换的电机。应用:电动自行车,电脑风扇、抽水机、吹风机、甩干机和压缩机、跑步机、 电动车、汽车方向盘驱动、电梯、DVD的驱动、大型轧钢设备、大型精密机床、 矿井卷扬机、市内电车、电缆设备、测速电机等。直流马达可分为机壳、定子和转子组成。直流电机运行时静止不动的部分称 为定子,定子的主要作用是产生磁场,运行时转动的部分称为转子,其主要作用 是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽(电枢)。5、数码管显示

11、数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各 管的亮暗组合成字符。常见数码管有10根管脚。管脚排列如下图所示。其中COM 为公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。每段发光 二极管需510mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大 小。LED数码管的ag七个发光二极管。加正电压的发光,加零电光,不同 亮暗组合就能形成不同的字形,这种组合称为字形码。I 1111111d -g C dja引脚图5.16、硬件设计框图图6.1-1J1 J5_7T7、硬件设计电路图本电路由AT89C51和

12、ULN2003A为核心。FKTTMgDI FQ2AD2 m3UD3 7D.4MD4 *D5ftD5 POlSADEP叩诚亦pS31336PT2_c_8PZDW5 耳血 P2dn PZ3AII PZWIZ P28A13 paewi- PZTAI54-S-F3.1/RD_FJ抄布psmhtTmmF3.5/T1FiJ&riR-njiinrHITT-FIJI口ui_Nzn图7.18、单片机控制直流电机流程图主程序 定位图8.19、软件仿真(1) 、把程序在Keil uVision3中调试,成功无错误后生成Hex文件。(2) 、根据电路图在proteus软件中回去电路图,检查无错误。(3)、双击89C5

13、1导入生成Hex文件。4)、点击 proteus 软件左下方的开始键,进行仿真,观察高低电平情况。六、程序主要代码与分析#include/包含 reg51.h 的头文件#define OUTPUT P1/定义输出端口 P1#define SEG P0/定义 SEG 位置sbit BUTTON1=P2A0;/声明开关1sbit BUTTON2=P2A1;/声明开关2sbit BUTTON3=P2A2;/ 声明开关 3unsigned char steps=20;/定义20步unsigned int times1=50;声明开关1的延时时间(X5ms)unsigned int times2=100

14、;unsigned int times3=150;/*1 相激励信号数组*/声明数码管的值char code excite=0x01,0x02,0x04,0x08;char code TAB3=0xf9, 0xa4, 0xb0;void step_rst(void);/声明定位函数void delay5ms(int);/声明延迟函数void debouncer(void);/声明去抖函数/主程序main()/主程序 unsigned char i;声明无符号变量iOUTPUT=0;/输出step_rst();P2=0xff;/设置输入口while(1)/while 循环开始 if (BUTTON1=0)/如果开关 1 按下 debouncer();/去抖SEG=TAB0;/数码管显示 1(正常风)for(i=0;isteps;i+)/20 步OUTPUT=excite3-i%4;delay5ms(times1);if(i=19)OUTPUT=0;/输出为 0,开始延时delay5ms(1000);/延时 5000mselse if (BUTTON2=0)/若开关 2 被按下 debouncer();/去抖SEG=TAB1;/ / 数码管显示 2f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号