电风扇控制系统课程设计报告

上传人:d**** 文档编号:128959203 上传时间:2022-08-02 格式:DOCX 页数:16 大小:363.86KB
返回 下载 相关 举报
电风扇控制系统课程设计报告_第1页
第1页 / 共16页
电风扇控制系统课程设计报告_第2页
第2页 / 共16页
电风扇控制系统课程设计报告_第3页
第3页 / 共16页
点击查看更多>>
资源描述
通信与信息工程学院2012 /2013学年第一学期课程设计实验报告模块名称51单片机课程设计专业通信工程学生班级B090103 班学生学号B09010325学生姓名刘超舟指导教师林建中11摘 要本次课程设计设计一个电风扇模拟控制系统设计。基于AT89C51芯片实现了 用数码管低两位实时显示电风扇的工作状态,高位显示风类“自然风”显示“1”、 “常风”显示“2”、“睡眠风”显示“3”。低位显示风速,“低”显示“1”、 “中”显示“2”、“高”显示“3”:设置一个摇头健,通过三四两位数码管 小数点闪动反应摇头状态;设置一个定时键,触发后数码管高两位五六位动态倒 计时显示剩余的定时时间,倒计时到0风扇关闭,最终完成了设计任务。目 录1.设计要求22 Keil的使用32.1软件的打开32.2工作界面32.3电风扇实例程序设计43电风扇硬件控制系统83.1设计方案特点83.2关于AT89C51单片机的介绍83.2.1主要特性:93.2.2管脚说明:93.2.3.振荡器特性:114.设计中遇见的问题11总结12附录131.设计要求题目:电风扇模拟控制系统设计基本要求:用LED/LCD显示电风扇的工作状态(1,2,3,4四档风力),显示风类:“自然风”、“常风”和“睡眠风”。设计“自然风”、“常风”和“睡眠风”三个风类键用于设置风类;设计一个“摇头”键用于控制电机摇头。设计一个“定时”键,用于定时时间长短设置;显示格式:LED数码管/LCD屏显示方法自定2 Keil的使用学习和使用单片机,keilC51软件应该掌握,我们要通过它来编写和调试单片机程序。 keilC51软件是众多单片机应用开发的优势软件之一,它集编辑,编译,仿真于一体,支持 汇编,PLM语言和C语言的程序设计,界面友好,易学易用。2.1软件的打开双击桌面上的Keil uVision3图标或者单击屏幕左下方的“开始”一 “程 序”一 “Keil uVision3”,出现如图1.3所示界面,随后就进入了 Keil uVision3 集成环境。EkeilAn ARM* CompanyIDE for MicrocontrollersCopyright 1997-2003 Keil Softvrare, Inc. All rights reserved. This program is protected by US and international laws.ION图1.3启动Keil uVision3时的界面2.2工作界面Keil uVision2的工作界面是一种标准的Windows界面,包括:标题栏、主 菜单、标准工具栏、代码窗口等,如图1.4所示。图1.4工作界面关于该软件的使用,与学习其他软件的方法没有多大区别,当然我们也不是 每个功能都使用,没必要逐一介绍,下面举一个例子说明使用就行了,如果想详 细了解,请搜索其详细使用资料。2.3电风扇实例程序设计建立一个新工程,单击Project菜单,在弹出的下拉菜单中选中New Project 选项,如图1.5所示。图1.5选择建立工程菜单确定之后选择你要保存的路径,输入工程文件的名字,比如保存到“电风 扇”目录里,工程文件的名字为“电风扇”如下图1.6所示,然后点击保存。图1.6创建工程随后会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单 片机来选择,KeilC51几乎支持所有的单片机,由于Proteus选用AT89C52原理 图,那么选择AT89C52之后,右边栏是对这个单片机的基本的说明,然后点击确 定即可,如图1.7所示。Select Device for Target Target 1| ? XCPUVender: Atm elDevice: AT89C52厂 Use Extended Linker (U51) instead of EL51Family: MCS-51厂 Use Extended Assembleir (AX51) instead o A51Data baseDesc.ription:LjLJLjLjLJLjLJLjLJLJAT89C52AT89C55AT89C55WHAT89F51AT89F52AT89LS51AT89LS52AT89LV51AT89LV52AT39LV55AT89S4D12AT89S518051 based Full Stati c CMOS controller with Ttn-ee-Level Fr 32 I/O lines, 3 Timers/Counters, 8 Interrupts sources 8 K Flash Memory 256 Bytes On-chip RAM确定取消图1.7选择单片机的型号完成上一步骤后,工程到此就已经创建起来了,其屏幕如图1.8所示图1.8巳创建好的工程工程虽然已经创建好,即已经建立好了一个工程来管理跑电风扇这样一个项 目,但我们还没写一行程序,因此还需要建立相应的C文件或汇编文件。下面我 们就来新建一个C文件,新建之后并保存,如图1.9所示。图1.9新建C文件并保存把刚才新建的电风扇.c添加到工程来添加后的界面如图1.10所示。图1.10添加完成后的界面单击“Project”菜单,再在下拉菜单中单击“”在下图中,单击 “Output ”中单击“Create HEX File选项,使程序编译后产生HEX代码,以 便在Proteus里加载可执行代码,并单击“Target ”选项,更改晶振频率(本例 使用12M晶振),其如图1.11所示。图1.11修改晶振频率到此,设置工作已完成,下面我们将编译、链接、转换成可执行文件(HEX 的文件)。编译、链接、生成可执行文件。如图3.18所示。图1.12编译、链接、生成可执行文件图标依次单击上述图2-12所示图标,如果没有语法错误,将会生成可执行文件, 即本例可执行文件为“电风扇.hex”。3电风扇硬件控制系统3.1设计方案特点初始加电时,电风扇不加电,数码显示器显示00,只有按下“自然风”, “常风”和“睡眠风”任意按键,电风扇开始工作。同时,定时器只要不进行时 间设置,电路就将按系统默认控制负责定时工作的时间方式自动开始运行。电路允许用户随时通过按键开关设置定时关闭,触发定时开关,开始30s 倒计时,数码管高两位动态显示剩余时间。按下“摇头”键,通过三四位数码管小数点左右闪动反映摇头状态。在整个定时状态下,电路具有允许用户随时自行选择风类,风速,是否摇头。3.2关于AT89C51单片机的介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与 工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存 储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式 控制系统提供了一种灵活性高且价廉的方案。如图2.1。图2.13.2.1主要特性:与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.2.2管脚说明:VCC:供电电压。GND:接地。P0 : P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。 当P1 口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存 储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输 入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器 能接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接 收,输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高, 且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是 由于内部上拉的缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器 进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优 势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的 内容。P2 口在FLASH编程和校验时接收高八位地址信号和控制信号。P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL门电流。当P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘 故。P3 口也可作为AT89C51的一些特殊功能口,如下列所示: 口管脚备选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断0)P3.3 /INT1 (外部中断1)P3.4 T0 (记时器0外部输入)P3.5 T1 (记时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平 时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位 字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的 频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输 出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳 过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只 有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微 处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信 号将不出现。/EA/VPP :当/EA保持低电平时,则在此期间外部程序存储器 (0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内 部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程 期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2.3.振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信 号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4.设计中遇见的问题关于摇头设计要求需要指示风扇摇头状态,最开始我想通过板上的LED彩灯使用类似于流水灯的方 式表示,编程后发现按下摇头健后彩灯虽然后从左到右,从右到左的闪动,但是此时LED 数码管部分出现了全1的乱码,查看原理图发现,8个LED彩灯和8位数码管串联,改变 彩灯电平后,数码管的位选和数选也随之改变,从而出现乱码,由于硬件是做好的,该方案 不可行。因此采用了用三四两位的小数点指示摇头状态,这样不会和显示风类,风力,定时 的数码管位产生冲突。验收时候老师提出是否可以用八位数码管的小数点同时反映摇头状态,同时不影响定时,风 类,风力正常的显示。对此我的初步设计思路是:采用扫描判断的方式,比如从左到右高两 位五六位是显示定时的,若没有触发定时功能,则直接显示小数点,若在定时过程中,则进 行判断,进行替换,如将“2”替换成“2.”,依次类推,三四位没有用作其他显示,可以直 接显示小数点,一二位显示风速,风类,需要采用扫描判断。-本系统是以单片机AT89C51芯片为核心部件,实现了电风扇系统控制功能, 上网找资料,上图书馆,尽可能的了解有关于电风扇的知识。通过这次设计,使 我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单 片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌 握方面都能向前迈了一大步。本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识, 以及查阅资料,培养一种自学的能力。并且引导一种创新的思维,把学到的知识 应用到日常生活当中。在设计的过程中,不断的学习,思考和同学间的相互讨论, 运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程, 学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。 全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的 工作打下了坚实的基础。通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认 识和理解,重新让自己认识到了这门学科的在应用方面的广阔前景,并且通过知 识与应用于实践的结合更加丰富了自己的知识。扩展了知识面,不但掌握了本专 业的相关知识,而且对其他专业的知识也有所了解,而且较系统的掌握单片机应 用系统的开发过程,因而自身的综合素质有了全面的提高。经过这次一个较完整的产品设计和制作过程,对于认识到自己在知识方面存在的 不足,明确今后的学习方向是非常有益的,为将来的的就业提前打了下坚实的基 础。在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同 学的大力支持和协助,在此一并表示衷心的感谢。#include #includekeyscanmode.h” 3 “/*数码管显示编码*/ const unsigned char display_seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f;/数码管的段编码/0123456789.const unsigned char seg_position=0xef,0xdf;/数码管的位选择编码/ 56位数码管union mytime/利用这一联合体结构便于实现数码管的动态显示unsigned char time2;structunsigned char ge;unsigned char shi;split;union mytime mt;unsigned char xx,location,flag;/数 码管显示位标志#define SEG P03 “/*声明为外部变量*/ extern xdata unsigned char PA8255ADDR ;extern xdata unsigned char PB8255ADDR ;extern xdata unsigned char PC8255ADDR ;extern xdata unsigned char CON8255ADDR;void main(void)unsigned char KeyValue=0,temp=0,temp1=0,temp2=4,temp3=0,temp4=0,i,j=0,k=3;unsigned char xx=0,location=0,flag=0;/数 码管显示位标志mt.split.ge = 0;mt.split.shi = k;while(1)if(KeyValue=keyscan()!=0xff)/判断是否有按键按下,如有读取键值if(KeyValue=0|KeyValue=1|KeyValue=2|KeyValue=3)风力temp1=KeyValue风类if(KeyV alue=4IIKeyV alue=511 Key V alue=6) temp2=Key Value;if(KeyValue=7)/ 摇头( temp3+; temp3=temp3%2; if(KeyValue=12)定时(temp4+; temp4=temp4%2; if (Key V alue= 15)启动( temp+; temp=temp%2;if(temp=1)风扇启动(if(templ=O) 风力(P0=0xf9;Pl=Oxfe;if(templ1)(P0=0xa4;Pl=Oxfe;if(templ=2)(PO=OxbO;Pl=Oxfe;if(templ=3)(P0=0x99;Pl=Oxfe;SoftDelay(l);if(temp2=4) 风类P0=0xf9;P1=0xfd;if(temp2=5)P0=0xa4;P1=0xfd;if(temp2=6)P0=0xb0;P1=0xfd;SoftDelay(1);if(temp3=1)摇头if(j=200&j600)P0=0x7f;P1 =0xf7;SoftDelay(1);j+;if(j=600)j=0;if(temp4=1)定时flag+;先计数if(flag=200)flag = 0;mt.split.ge-;if(mt.split.ge=-1)mt.split.ge = 9;mt.split.shi-;15if(mt.split.shi=-1) P1=0xff;SoftDelay(l);temp=0;temp1=0;temp2=4;temp4=0;mt.split.ge = 0;mt.split.shi = k;/再显示SEG = display_segmt.timexx;/获取显示位的段码,显示顺序为 个、十、百、千位P1 = seg_positionlocation;xx+;location+;if(xx=2)/判断数码管扫描一次是否完成xx=0;location=0;SoftDelay(1);else P1=0xff;SoftDelay(1);mt.split.ge = 0;mt.split.shi = k;elseP1=0xff;/SoftDelay(1);/temp4=0;mt.split.ge = 0;mt.split.shi = k;#
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!