家用风扇控制系统_第1页
家用风扇控制系统_第2页
家用风扇控制系统_第3页
家用风扇控制系统_第4页
家用风扇控制系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 摘 要 本文介绍了家用风扇控制器是利用基于MCS-51系列单片机程序输出相应的控制信号来控制电路,以达到调节风扇风速强弱、风扇运转状态和开关的逻辑系统,并利用定时器设定时间控制,使风扇的设计更加完善和人性化。 文章首先介绍了MCS-51系列单片机芯片,在第二章论述了总体设计过程,确定了技术指标及器件的选择,第三章着重描述了系统硬件电路设计、硬件设计框图及所使用的各种元件的功能与特性,在第四章中重点剖析了软件设计的过程,最后则是对整个系统的调试和检测。关键字:LED指示灯 定时器 单片机技术 AT98C51芯片专心-专注-专业目录摘要第一章 绪论1.1 课题背景研究的

2、意义和目的 11.2 课题研究的内容 1第二章 总体方案设计 22.1 风扇设计方案22.1.1 基于FPGA的设计22.1.2 采用PLC设计22.1.3 采用AT89C51系列单片机设计32.1.4 三种设计方案的对比32.2 风扇设计过程42.2.1 硬件设计过程42.2.2 软件设计过程4第三章 家用风扇控制器硬件设计 53.1 选用器件的介绍5 3.1.1 单片机89C525 3.1.2 AT89C52的概述5 3.1.3 AT89C52的特性5 3.2 89C82 处理器53.2.1 89C52处理器功能描述63.2.2 89C52处理器模块结构框图63.3 LED显示模块63.3

3、.1 LED指示灯功能描述63.3.2 LED指示灯原理图73.4 键盘模块73.4.1 行列式键盘结构73.4.2 行列式键盘的优点83.4.3 行列式键盘原理图83.5输入信号与输出信号的选择93.5.1 矩阵键盘输入信号93.5.2 LED指示灯输出信号9第四章 家用风扇软件设计 104.1 语言的选择104.2 编程思路114.3 主程序设计114.4 风种程序设计13 4.4.1 正常风子程序设计144.4.2 自然风子程序设计154.4.3 睡眠风子程序设计174.5 风速程序设计184.6 按键扫描程序设计194.7 延时去抖子程序设计204.8定时器0中断程序设计 204.9设

4、计的主流程图22第五章 系统的调试与仿真 235.1 单片机应用系统的一般调试235.2 Keil uVvision2简介235.3 Proteus仿真软件介绍235.4 Proteus仿真分析24总结26致谢 27参考文献 28附录129第一章 绪论1.1 课题背景研究的意义和目的风扇是由电动机驱动扇叶,加速室内空气流动与循环。在夏季作为通风、散热和仿暑降温,在冬季可作为加强室内空气循环的设备。它结构简单、使用方便,在我国目前的生活水平下,特别是广大农村及中小城市中,它是一种最经济、最实惠的仿暑降温设备。如今在各大超市及连锁卖场中看到,电风扇已一改人们印象中的传统形象,在外观和功能上都更追求

5、个性化,塔式气流尊贵典雅,卡通台扇娇巧可爱,而电脑控制、自然风、睡眠风等这些本属于空调器的功能,也被众多的电风扇厂家拿来做文章。这些外观不拘一格并且功能多样的产品已经成为今年电风扇市场中的一大亮点,这种差异化卖点虽然预示了整个电风扇行业未来的发展趋势和走向,但其价格相对普通风扇仍高出不少。风扇各项功能的实现都依赖于其内部的控制器,它是风扇中的核心部件。因而设计一款低成本、高性能的风扇控制器,不但对较好的掌握控制系统及其应用方面的知识,并具备系统设计个应用设计的能力有很大的帮助,而且具有广阔的市场前景。1.2 课题研究的内容本课题主要研究的内容是设计一款简单的家用风扇控制器。研究风扇的基本功能,

6、以实现风种、风速之间的转换。课题选用AT89C52系列单片机为芯片,在辅以其他必要的模块加以补充,其中包括LED显示模块和键盘模块。利用Keil C51调试软件和Proteus仿真软件来实现软硬件的调试和仿真第二章 总体方案设计2.1 风扇设计方案要实现整个风扇系统平稳、可靠、有序的运行,就必须了解和掌握风扇的基本工作原理及各项功能的实现流程,明确各流程的控制量,从而建立控制模型和确定控制系统的设计方案。以下是三种风扇的设计方案。2.1.1基于FPGA的设计系统基于可编程器件FPGA进行设计,用VHDL语言开发时,具有如下的特点:a. 采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐

7、步将设计的内容细化,最后完成系统硬件的整体设计。b. 采用系统早期仿真。在系统设计过程中要进行三级仿真,即行为层次仿真、RTL层次仿真和门级层次仿真。这三级仿真贯穿系统设计的全过程,从而可以在系统设计的早期发现设计中存在的问题,大大缩短系统设计的周期,节约大量的人力和物力c. 降低了硬件电路设计难度。在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表)。这一工作是相当困难和繁杂的,特别是当系统比较复杂时更是如此。而利用VHDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大降低了设计的难度,也缩短了设计的周期。d. 主要

8、设计文件是用VHDL语言编写的源程序。与传统的电路原理图相比,使用VHDL源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。当设计其他硬件电路时,可使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。其三是阅读方便。阅读程序比阅读电路原理图要更容易一些,阅读者很容易在程序中看出某一电路的工做原理和逻辑关系。而要从电路原理图中推知其工作原理则需要较多的硬件知识和经验。2.1.2 采用PLC的设计PLC硬件系统设计简洁,指令系统设计精炼。在所有的单片机品种当中,它是最容易学习、最容易应用的单片机品种之一。对于单片机的初学者来说,若选择PIC单片机作为攻入单片机王国的“突破口”,

9、将是一条最轻松的捷径,定会取得事半功倍的功效。PLC是由模仿原继电器控制原理发展起来的,二十世纪七十年代的PLC只有开关量逻辑控制,首先应用的是汽车制造行业,它以存储执行逻辑运算、顺序控制、定时、计数和运算等操作的指令;并通过数字输入和输出操作,来控制各类机械或生产过程。用户编制的控制程序表达了生产过程的工艺要求,并事先存入PLC的用户程序存储器中,运行时按存储程序的内容逐条执行,以完成工艺流程要求的操作。PLC的CPU内有指示程序步存储地址的程序计数器,在程序运行过程中,每执行一步该计数器自动加1,程序从起始步(步序号为零)起依次执行到最终步(通常为END指令),然后再返回起始步循环运算。P

10、LC每完成一次循环操作所需的时间称为一个扫描周期。不同型号的PLC,循环扫描周期在1微秒到几十微秒之间。PLC用梯形图编程,在解算逻辑方面,表现出快速的优点,在微秒量级,解算1K逻辑程序不到1毫秒。它把所有的输入都当成开关量来处理,16位(也有32位的)为一个模拟量。多年来,可编程控制器从其产生到现在,实现了接线逻辑到存储逻辑的飞跃;其功能从弱到强,实现了逻辑控制到数字控制的进步;其应用领域从小到大,实现了单体设备简单控制到胜任运动控制、过程控制及集散控制等各种任务的跨越。2.1.3 采用AT89C52系列单片机设计AT89C52系列单片机设计硬件电路的方法是采用自下而上的设计方法,即根据系统

11、对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。2.1.4 三种设计方案的对比虽然以上三类器件都可满足和实现风扇控制器的设计需求,但器件价格、体积、功耗以及器件的供电电压都是我们在设计中所需要考虑的,在满足性能指标的前提下,选用一款价格合适的器件成为我们的目标。目前市场上单片机价格有从几元到几十元。由于风扇的结构简单,功能相对单一。而VHDL设计技

12、术则不很直观,需要有EDA编程基础,通常需要有多余半年的专业培训才能掌握这们技术。选用ATMEL公司的AT89C51(供电电压+5V)单片机来设计风扇控制器完全能满足低成本和使用方便的要求。 2.2 风扇的设计过程设计一个家用风扇控制器系统,可以分为硬件设计和软件设计两个部分,从设计草图开始到样机调试成功,需要将硬件、软件结合起来考虑,才能取得较好的效果。在应用系统中,硬件和软件具有一定的互换性,即某些功能既可用硬件实现也可以用软件来完成。用硬件实现的优点是可以提高工作速度,但使电路复杂,增加了硬件的成本,而用软件代替某些硬件的功能可以使电路简化,硬件成本降低,但软件工作量增大。通过调查研究,

13、查阅资料来初定系统结构的总体方案,其中主要涉及到硬件个软件的功能划分。2.2.1 硬件设计过程a. 将整个硬件系统划分为若干功能单元电路,绘出整个系统逻辑电路图,注明各单元电路接口信号,并画出一些重要的控制信号的时序图;b. 完成各单元电路设计:包括选择合适的各类元器件和电路板设计;c. 各单元电路板装配、分调;d. 整个硬件联机调试,完成后准备与软件联调。2.2.2 软件设计过程a. 采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;b. 对各模块设计写一个详细的程序流程图;c. 根据流程图,编写源程序;d. 上机调试个模块程序;e. 各程序模块联调;f. 与硬件一起联调,最后完成

14、全部调试工作。第三章 家用风扇控制器硬件设计3.1 选用器件介绍在本次设计的主电路中采用了以Atmel公司的89C52这款功能强大的单片机作为控制核心,在辅以其他必要的模块加以补充。除了89C52之外主要采用的模块有:指示灯模块、键盘模块。3.1.1 单片机89C52本设计的核心仪器为AT89C52单片机,它是整个控制系统的大脑,要负责定时计数、LED显示、选用风种、控制风速等多项任务。可以说这块单片机的成功是否直接决定了本次风扇控制器功能的实现。3.1.2 AT89C52概述属于MCS-51系列,在一块芯片上集成了CPU, RAM, ROM, UO、定时/计数器等。同时,AT89C52可降至

15、0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。3.1.3 AT89C52的特性一个8位的CPU;8k字节闪存存储器;可寻址64K外部程序存储器和64K外部数据存储器的控制电路;具有六个中断源、两个优先级嵌套中断结构。一个片内振荡器及时钟电路;256字节RAM数据存储器;4个8位并行I0口;一个可编程的全双工串行口;三个16位定时/计数器。3.2 89C52处理器系统框图图1 总系统框图3.2.1 89C52处理器功能

16、描述采用8位单片机89C52,时钟电路使用片内时钟振荡器,具有上电复位和手动按键复位功能,外接WDG复位电路。通过并行总线外扩了128KW SRM和64K的 FLASH ROM;串行扩展:通过RS-232连接了UART口;通过跳线器可选两个IO口来虚拟I2C总线,并外接带I2C总线的EEPROM和RTC。数据总线地址总线经总线驱动后引出到总线插槽与其他模块相连。模块的译码控制电路由一片CPLD来完成。3.2.2 89C52处理器模块结构框图图2 89C52处理器模块结构框图3.3 LED显示模块指示灯L0L7受驱动芯片U3控制。可以显示8位的单片机数据输出。L7指示最高位,L0指示最低位。接通

17、电源后指示灯常亮。3.3.1 LED指示灯的功能描述在本课题的设计中定义了指示灯L0、L1、L2、L3、L5、L7。其中L0-L2指示灯表示风速的弱、中、强。指示灯L3表示自然风、L5表示正常风、L7表示睡眠风。在初始化程序中设置风种是正常风且风速是弱风。当按下K4键指示灯亮,风速按照弱中强来回切换,以此循环。当按下K8键,风种按照正常自然睡眠来回切换。当切换到自然风时,风种的指示灯亮4S,停4S。当切换到睡眠风时,弱风指示灯亮8S,停8S。以此循环。3.3.2 LED指示灯原理图图3 LED指示灯原理图3.4键盘模块独立式键盘虽然结构简单,使用方便,但每一个按键开关要占一根I/O口线,因此在

18、按键数较多时,采用行列式键盘技术。3.4.1 行列式键盘的结构如图4所示为行列式键盘的基本结构,它有键盘开关矩阵、输出(行线)锁存器、输入(列线)缓冲器三部分组成。图4 行列式键盘结构图3.4.2 行列式键盘的优点在键盘中按键数量较多时,为了减少I/O端口的占用,通常将按键排列成矩形形式,也就是常说的行列式键盘。行列式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处。当键被按下时,其交叉的行线和列线接通,相应行线或列线上的电平发生变化,从而确定被按下的功能键。采用行列式键盘的优点在于:在行列式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样一个端口可以

19、构成44=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出1键。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。3.4.3 行列式键盘原理图图5 44行列式键盘输入原理图3.5 输入信号与输出信号的选择 本设计选用AT89C51系列单片机为芯片,以矩阵键盘为输入信号,以LED指示灯为输出信号。3.5.1 矩阵键盘的输入信号矩阵键盘输入电路采用行列扫描法实现。将列线DIG1DIG4接输出口,行线KEY1KEY4接到输入口,采用行扫描法,先将各列线均输出低电平,读入行线上值,有低电平则表示有键按下。

20、先将某一列输出为低电平,其它列输出为高电平,用输入口来查询行线上的电平,逐次比较各行值,如果某行线上的值为0时,则表明对应列的此行按键按下。否则,接着读入下一行,直到找到该列有按下的键为止。如该列没有找到有按键按下,就按此方法逐列找下去,直到扫描完全部的列和行。键盘的行线和列线具有不同的口地址,由74138译码器生成,分别经由锁存器输出和输入,接到系统数据总线上。3.5.2 LED指示灯的输出信号在设计中按下指定键则亮相应的指示灯。课题设计中设置K0为停止键,按下该键则所有的指示灯都灭。K4键为开关键和控制风种键,按下该键则亮程序设置的相应的指示灯。K8键为风速控制键,按下该键则亮相应的风速指

21、示灯。第四章 家用风扇软件设计4.1 语言的选择在单片机应用系统研发中,应用程序设计是主要工作。采用汇编语言编写应用程序,可直接操纵系统的硬件资源,编写出质量的程序代码。但是,采用汇编语言编写比较复杂的数值计算程序就感到非常困难,又因汇编语言源程序的可读性不如高级语言源程序,若要修改程序,得花费较多的心思。从系统开发的时间来看,采用汇编语言进行单片机应用程序设计,效率不是很高。采用C语言,易于开发复杂的单片机应用程序,易于进行单片机应用程序的移植,有利于产品中的单片机重新选型,可大大加快单片机应用程序开发速度。随着单片机开发工具水平的提高,现在的单片机仿真器普遍支持C语言程序的调试,为单片机编

22、程使用C语言提供了便利的条件。C语言是一种源于编写UNIX操作系统的语言,是一种结构化语言,可产生紧凑化代码。C语言的结构是以括号而不是以字和特殊符号表示的语言。C语言可以进行很多机器级函数控制而不用汇编语言。与汇编语言相比C具有以下一些特点。对单片机的指令系统部要求了解,仅要求对MCS-51的存储器结构有初步了解寄存器的分配、不同存储器的寻址及数据类型等细节可由编译器管理程序有规范的结构,可分为不同的函数,这种方式可使程序结构化具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性关键字和运算函数可用近似于人的思维过程方式使用编程和程序调试时间显著缩短,从而提高效率提供库包含许多标准

23、子程序,具有较强的数据处理能力已编好的程序可方便的植入新程序,因而C语言具有方便的模块化编程技术C语言是一种编译型程序设计语言,它兼顾了多种程序设计语言的特点,并具备汇编语言功能。用C语言来编写目标系统软件,会大大缩短开发周期,且明显的增加软件的可读性,便于改进和扩充,以研制出规模更大、性能更完备的系统。用C语言进行MCS-51单片机程序设计是单片机开发和应用的必然趋势。单片机的程序设计应该以C语言为主,以汇编语言为辅。汇编语言掌握到只要可以读懂程序,在时间要求比较严格的模块中进行程序的优化即可。采用C语言也不用对单片机和硬件接口的结构又很深入的了解,编译器可以自动完成变量的存储单元的分配,编

24、程者就可以专注于应用软件部分的设计,大大加快软件的开发速度。另外采用C语言可以很容易地进行单片机的程序移植工作,可以方便的进行单片机的重新选型。目前使用的C语言开发工具主要是KEIL公司产品,我使用的是keil uVvision2,它是基于Windows uVision集成开发环境和dScope软件模拟调试程序。该版本把uVvision1用的模拟调试器dScope与集成开发环境无缝的结合起来,界面更友好,使用更方便,支持的单片机品种更多。4.2 编程思路该设计的主要思想是通过在初始化程序中设立两个标志位(风速标志位与风种标志位),当按键扫描程序扫描到风速按钮按下时,就对风速标志位的值进行相应的

25、修改(加1);当按键扫描程序扫描到风种按钮按下时,就对风速标志位的值进行相应的修改(加1);当按键扫描程序扫描到停止按钮按下时,就关闭单片机各端口。根据两个标志位的不同值对单片机的某些端口执行相应的操作,风速的不同对应着单片机风速输出各端口高低电平的不同,而风种的不同对应着相关的风速端口高电平的有效时间不同,从而实现风速、风种不同状态之间的转移。4.3 主程序设计系统软件主要由主程序(包括初始化程序、输入状态查询程序)、正常风输出子程序、自然风输出子程序、睡眠风输出子程序、按键扫描程序、按键执行程序与定时器0中断程序组成。主程序主要识别键功能, 判断是什么键按下, 并调用相应子程序, 完成相应

26、的功能。设置定时器工作方式,并送定时预置值;开定时器0的中断允许,风扇进入初始状态(关所有指示灯,风速输出口均为低电平)。循环调用按键扫描子程序,根据按键状态对状态标志位的值作出对应修改,并根据风速标志位的值,决定风扇是否启动。风速标志位值大于1时,表示风速键按下过,根据风种标志位的值,调用相应风种的子程序;当风速标志位值为零时,表示风速键未曾按下,风扇保持在停止状态。图6 主程序流程图void main(void) TMOD=0x01; /timer0定时,工作于方式1 TH0=0x3c; /timer1=65536-50ms/(12*(1/12MHz)=15536 TL0=0xb0; TR

27、0=0; /定时器0关闭 EA=1; /开中断允许总开关 ET0 = 1; / Enable TIMER0 Interrupt led = 0xff; /风扇停止运行 for(;) keyscan(); /调用按键扫描程序 if(level=1)/风速键有被按下风扇才启动 if(kind=0x03) sleep_wind(); /调用睡眠风子程序 if(kind=0x02) nature_wind();/调用自然风子程序 if(kind=0x01) normal_wind();/调用正常风子程序 if(level=0) /风速标志位为0时,风扇处于停转状态 kind=1;/风种标志位赋值1 l

28、ed=0xff;/风扇停止运行 4.4 风种程序设计在风种程序设计中包括了正常风子程序、自然风子程序和睡眠风子程序。当按键扫描程序扫描到风种按钮按下时,就对风速标志位的值进行相应的转换,由正常风转换到自然风再到睡眠风依次循环。图7 风种状态转换图4.4.1 正常风子程序设计图8 正常风子程序流程图static void normal_wind(void) /正常风 switch(level) /根据风速标志位的值,风扇在相应的风速连续运行 case 1:led = 0x0f6;break; /低速风 case 2:led = 0x0f5;break;/中速风case 3:led = 0x0f3

29、;break;/高速风default : break; 根据风速标志位的值,亮对应的指示灯,并使对应的风速口输出为高电平,使风扇处于不同风速下的连续运行。4.4.2自然风子程序设计 图8 自然风子程序流程图static void nature_wind(void) /自然风 if(timer0_tick=160) /自然风定时时间到8秒后定时次数清零 timer0_tick=0; /- if(timer0_tick80) /自然风时定时时间在0-4秒风扇运行 switch(level) /根据风速标志位的值,风扇在相应的风速运行 case 1: led = 0x0de;break; /低速风

30、case 2: led = 0x0dd;break;/中速风 case 3: led = 0x0db;break;/高速default : break; 根据风速标志位的值,亮对应的指示灯;根据定时次数的值,来决定对应的风速口输出是高电平还是低电平,即执行运行4S,停4S。4.4.3 睡眠风子程序设计图9 睡眠风子程序流程图static void sleep_wind(void) /睡眠风 if(timer0_tick=320) timer0_tick=0;/睡眠风定时时间到16秒后定时次数清零 /- if(timer0_tick=160) led = 0x07f; /睡眠风时定时时间在8-1

31、6秒风扇停止运行 亮对应的指示灯;根据定时次数的值,来决定低速风口输出是高电平还是低电平,即执行低速风运行8S,停8S。4.5 风速程序设计在风速程序设计中包括了弱风、中风、强风之间的循环。根据两个标志位的不同值对单片机的某些端口执行相应的操作,风速的不同对应着单片机风速输出各端口高低电平的不同,从而实现风速的转换。 图8 风速状态转换图4.6 按键扫描程序设计在本段程序中先对行进行扫描,当扫描到行线有键按下时,再对列线进行扫描,行线、列线均为0状态的键就是当前的按键。并根据扫描到的结果来判断是否有按键按下,无按键按下,则返回,有按键按下则调用标志位值修改子程序。在此子程序中,变量key_v是

32、为了保证按键每按下一次,状态标志位的值只改变一次。void keyscan(void) /按键扫描程序 line=0x00; /列线送0 key_t=row; /读入行线上的值 key_t&=0x0f; /取行线值的低四位 /- if (key_t=0x0f) /无键按下或释放 if(key_v!=key_t) key_v=key_t; /- if (key_t!=0x0f) / 表示有键按下 delay_ms(10); / 延时去抖 key_t=row; /读入行线上的值 key_t&=0x0f; /取行线上值的低四位 if(key_t!=0x0f) /判断是否确有键按下 if(key_v!

33、=key_t)/每次有键按下时,对应标志位的值只修改一次。 key_v=key_t; key_to(); /调用按键执行子程序 4.7 延时去抖子程序设计在本段程序中涉及到键的去抖问题。当用手按下一个键时,往往会出现所按键在闭合位置断开位置之间跳几下才能稳定到闭合状态的情况。在释放一个键时,也会出现类似的情况。抖动的持续时间不一,但通常不会大于10ms,若抖动问题不解决,就会引起对闭合键的多次读入,所以对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行逐行扫描,而是延时10ms后再进行。由于键按下的时间延续上百毫秒,延时后再读也不迟。当扫描到有按键时,软件延时10ms在判断该键是否仍

34、是按键,如果是则确认该键是当前的键,若不是,则把它当成是误操作处理。void delay_ms(uchar ms) / 延时毫秒12M,ms最大值255 uchar i; while(ms-) for(i = 0; i 124; i+); 4.8 定时器0中断程序设计提供定时,每执行一次定时次数值加1。static void timer0_isr(void) interrupt 1 /T0int中断号为1 TR0=0; TH0=0x3c; TL0=0xb0; TR0=1; timer0_tick+; MCS-51单片机内带有两个可编程16位定时/计数器T0和T1,两者均可变成为定时器或计数器使

35、用。MCS-51单片机 两个特殊功能寄存器TMOD和TCON,TMOD用于设置T/C的工作方式,TCON用于控制时器T0、T1的启动和停止,并包含了定时器的状态。 定时器工作方式寄存器TOMD定时器工作方式寄存器TOMD用于选择定时器的工作方式,它的高4位控制定时器T1,低4位控制定时器T0。TOMD中各位的定义如下:GATEC/TM1M0GATEC/TM1M0其中:C/:T/C功能选择位,当C/=1时为计数方式;当C/=0时为定时方式。M1M0:T/C工作方式定义位,其具体定义方式如表5所示。M1MO工作方式方式说明00013位定时/计数器01116位定时/计数器102可自动重装入的8位定时

36、/计数器113T0分为2个8位定时器,T1无此方式GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。GATE=0时,与外部中断无关,由TCON寄存器中的TRx位控制启动。当GATE=1时,由控制位TRx和引脚共同控制启动。只有在没有外部中断请求信号的情况下(即外部中断引脚=1时),才允许定时器启动。TOMD积存器在复位时被清0。定时器控制寄存器TOCNTOCN控制寄存器各位的定义如下:D7 D6 D5 D4 D3 D2 D1 D0TF1TR1TF0TR0IE1IT1IE0IE1其中:TF0(TF1):为TO(T1)定时器益出断标志位。当T0(T1)计数益出时,由硬件置位。并在

37、允许中断的情况下,发出中断请求信号,当CPU响应中断转向中断服务程序时,有硬件自动将该位清0。TR0(TR1):为T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。TCON的低4位与外部中断有关。TCON寄存器在复位时也被清0。4.9 设计的主流程图程序的流程图如下(level为风速标志,kind为风种标志)最后第五章 系统的调试与仿真5.1单片机应用系统的一般调试方法 (1)硬件调试 静态调试 动态调试 (2) 软件调试 先独立后联机 先分块后组合 先单步后连续 (3)系统联调 软、硬件能否按预定要求配合工作。系统运行中是否有潜在的设计

38、时难以预料的错误。系统的动态性能指标(包括精度、速度参数)是否满足设计要求。 (4)现场调试 5.2 Keil uVvision2简介Keil 是德国Kiel公司开发的单片机编译器,uVvision2是Keil公司关于8051系列单片机的开发工具,可以用来编译C源码、汇编源程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,是一种集成化的文件管理编译环境。集成了文件编辑处理、编译连接、项目管理、窗口、工具、引用和软件仿真调试等多种功能,是相当强大的开发工具。在uVvision2的仿真功能中,有两种仿真模式:软件模拟模式和目标板仿真调试模式。5.3 Proteus仿真软件介绍Pr

39、oteus软件是来自英国Labcenter electronic公司的EDA工具软件,除了其具有和其他EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,建立了一个完备的电子设计开发环境。Proteus产品系列也包含了革命性的VSM技术,可以对基于微控制器的设计连同所有的外围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来

40、对设计进行交互仿真。5.4 Proteus 仿真分析Proteus在设计的时候已经注意到和各种单片机编译程序的结合了,如它可以和Keil,MPLAB等编译模拟软件结合。Keil是目前世界上优秀的51单片机的汇编和C语言的开发工具,具有功能强大的软件仿真和硬件仿真功能,把这两个软件结合使用,调试软硬件就方便多了,课题设计中采用了Keil+Poteus的仿真方法。a. 正确设置Keil集成环境Proteus之间的接口,使二者成功连接。b. 在Keil里对汇编源程序进行编译、连接,就可以像在仿真仪上一样进行单步、全速调试了。随时都可以观察软硬件的互动工作的过程和结果。 图11 硬件运行时瞬间画面总

41、结在这次毕业设计中我可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在设计过程中,程序编写错误很多,程序不是这边出错就是那边漏掉。最后经过我自己的努力终于确定所有的控制状态,然后画出相对应的流程图,边写程序边检查。在检查的过程中,才能逐步完善程序。在写程序过程中,还有很多问题不能解决,查阅了许多资料,包括图书馆寻找资料,在网上搜索资料,看看别人是如何写相应的程序。然后修改所需要的程序。最后进一步完善符合我设计要求的程序。在软件使用中,我并不是一下子就很熟练使用,在设计过程中

42、遇到很多错误,就是以为只要把程序在调试软件中进行调试,没有错误就可以了.其实这是一个运行的过程。虽然,这个问题很简单,但是当时设计过程中就有点钻牛角尖,以至花了很多时间去检查硬件连接电路。最后终于在不断的询问和调试中问题得以解决。 在硬件使用中都是将相应的模块用导线连接起来。在硬件调试中由于程序的出错使调试的结果并未达到课题的要求。最后经过不断的修改和调试,终于达到了要求,完成了硬件的验收。最后通过本次设计让我学到很多课堂上学不到的知识。不但让我对单片机的知识更加根深蒂固,而且学会了用keilc51软件调试程序,用proteus画图进行仿真。通过设计也加深了我对理论知识的理解。而且在设计过程中也培养自己动手的能力。致 谢本人设计的家用风扇控制器课题及是在我的导师XXX的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的作风,深深地感染和激励着我。从课题的选择到项目的最终完成,吕老师都始终给予我细心的指导和不懈的支持。两个月来,XXX在学业上给我以精心指导,在此谨向XXX致以诚挚的谢意和崇高的敬意。在此,我还要感谢在一起愉快的度过大学生活的同学们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。在即将完成之际

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论